//获取轮播图的ul元素
var banner = document.getElementById('banner_ul');
//获取轮播图里的每个图片(数组)
var banner_li = document.getElementById('banner_ul').getElementsByTagName('li');
//获取轮播图底部的按钮ul元素
var banner_btn_ul = document.getElementById('banner_ul');
//获取轮播图按钮的每个按钮(数组)
var banner_btn = document.getElementById('banner_btn').getElementsByTagName('li');
// 参数node:将要获取其计算样式的元素节点
function getStyle(node) {
var style = null;
if(window.getComputedStyle) {
style = window.getComputedStyle(node,null);
}else{
style = node.currentStyle;
}
return style;
}
//通过底部按钮改变图片
//1.对底部按钮进行监视
for (var i=0;i < banner_btn.length;i++) {
banner_btn[i].onclick = function(){
btn_remove(this);
}
}
//2.获取到点击的是第几个按钮,通过索引进行变换
function btn_remove(obj){
//2.1获取点击的是第几个按钮
for (var i = 0;i < banner_btn.length; i++) {
if (banner_btn[i] == obj) {
break;
}
}
//2.2改变轮播图片left的值
for (var j = 0;j < banner_btn.length; j++) {
banner_li[j].style.left = "-" + i*1000 + "px";
}
//2.3改变颜色
setColor();
}
function Left(){
//获取当前轮播图的left位置
var cur = getStyle(banner_li[0]).left;
cur = parseInt(cur);
//因为当元素移动时,left的属性值不是一个整数
//但是仍在(-5000px ~ 0px)之间,所以还得判断left的值是不是整数
if (cur <= 0 && cur > -5000 && cur%1000==0) {
cur = cur - 1000 + "px";
//给每个轮播图里的li元素改变其left值
for (var i = 0; i < banner_li.length; i++) {
banner_li[i].style.left = cur;
}
//改变底部按钮的颜色
setColor();
}
else if (cur == -5000){
for (var i = 0; i < banner_li.length; i++) {
banner_li[i].style.left = "0px";
}
setColor();
}
}
function Right(){
//获取当前轮播图的位置
var cur = getStyle(banner_li[0]).left;
cur = parseInt(cur);
if (cur >= -5000 && cur < 0 && cur%1000==0) {
cur = cur + 1000 + "px";
for (var i = 0; i < banner_li.length; i++) {
banner_li[i].style.left = cur;
}
setColor();
}
else if (cur == 0){
for (var i = 0; i < banner_li.length; i++) {
banner_li[i].style.left = "-5000px";
}
setColor();
}
}
//改变底部按钮颜色
function setColor() {
//定义目前的中间图片所对应的那个按钮
//利用left的值除以图片的长度
var index_btn = parseInt(banner_li[0].style.left) / -1000;
//给每个按钮的透明度设为0.3
for (var i = 0; i < banner_btn.length; i++) {
banner_btn[i].style.opacity = "0.3";
}
//给目前显示图片所对应的按钮单独设置透明度
banner_btn[index_btn].style.opacity = "1";
}
//定时器
function autoPlay() {
timer = setInterval(function(){
Left();
},3000)
}
autoPlay();
//当鼠标移入路轮播图的盒子时,停止计时器,移除开始。
//(获取banner时,不能使用class获取,测试使用class获取,定时器无用)
var bigBanner = document.getElementById('banner');
bigBanner.onmouseover = function () {
clearInterval(timer);
}
bigBanner.onmouseout = function () {
autoPlay();
}
2018-11-18
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 学习 1.听书一本《终身 成长》,不知道为什么感觉自己听书的效果很差,记住的特别少。 2.看书一本《好妈妈胜过好老...
- 今天是什么日子 起床:6:00 昨日就寝:22:40 天气:雨 心情:很好 本周记录如下一 -、工作 1.完成了1...