<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
div {
width: 1400px;
margin: auto;
box-sizing: border-box;
border: 3px black solid;
position: relative;
height: 514px;
overflow: hidden;
}
ul {
list-style: none;
display: flex;
width: 8400px;
position: absolute;
height: 514px;
}
ul li {
width: 1400px;
}
ul li img {
width: 100%;
}
p span {
display: inline-block;
width: 10px;
height: 10px;
margin: 0 10px;
background-color: black;
}
p {
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: 20px;
}
.blu {
background: blue;
}
</style>
</head>
<body>
<div>
<ul>
<li><img src="images/51894802361d50eeb12316.jpg" alt=""></li>
<li><img src="images/26623103960ec0e55846c7.jpg" alt=""></li>
<li><img src="images/46565237261d50f4269719.jpg" alt=""></li>
<li><img src="images/51912058060a32c55f0d23.jpg" alt=""></li>
<li><img src="images/91990417062a143b9b51d3.jpg" alt=""></li>
<li><img src="images/51894802361d50eeb12316.jpg" alt=""></li>
</ul>
<p><span class="blu"></span><span></span><span></span><span></span><span></span></p>
</div>
<button>上一张</button>
<button>下一张</button>
</body>
</html>
<script>
var btn = document.querySelectorAll('button');
var uls = document.querySelector('ul');
var divs = document.querySelector('div');
var spans = document.querySelectorAll('p span');
var index = 0;
var b = true;
//
function scroll(flag) {
b = false;
if (index == uls.children.length - 1) {
index = 0;
uls.style.left = 0 + 'px'
}
if (flag) {
index++;
} else {
index--;
}
if (index < 0) {
index = 4;
uls.style.left = -7000 + 'px';
}
for (var i = 0; i < spans.length; i++) {
spans[i].className = '';
}
if (index == 5) {
spans[0].className = 'blu';
} else {
spans[index].className = 'blu';
}
console.log(index);
animates(uls, -index * uls.children[0].offsetWidth, flag);
}
//封装动画函数
function animates(obj, target, flag) {
// clearInterval(obj.timAm);
obj.timAm = setInterval(function () {
var cur = obj.offsetLeft;//
//判断左还是右
if (flag) {
cur -= 50
} else {
cur += 50
}
if (flag ? cur > target : cur < target) {
obj.style.left = cur + 'px';
} else {
b = true;
clearInterval(obj.timAm);
obj.style.left = target + 'px'
}
}, 10);
}
btn[1].addEventListener('click', function () {
if (b) {
scroll(true);
}
})
btn[0].addEventListener('click', function () {
if (b) {
scroll(false);
}
});
function zidong() {
if (b) {
scroll(true);
}
}
//自动轮播
var test = setInterval(zidong, 1500);
divs.addEventListener('mouseover', function () {
// console.log('鼠标移上关闭自动轮播');
this.style.cursor = 'pointer';
clearInterval(test);
})
divs.addEventListener('mouseout', function () {
//console.log('鼠标移走开启自动轮播');
test = setInterval(zidong, 1500);
})
//小圆点
for (var j = 0; j < spans.length; j++) {
spans[j].setAttribute('ac', j);
spans[j].addEventListener('click', function () {
for (var k = 0; k < spans.length; k++) {
spans[k].className = '';
}
if (b) {
var ac = this.getAttribute('ac');
console.log(ac);
index = ac - 1;
scroll(true);
this.className = 'blu';
}
})
}
console.log(-(uls.offsetWidth - uls.children[0].offsetWidth));
</script>
js实现无缝轮播
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 无论用什么语言开发可视化界面,都有一个叫轮播图的东西。我们现在有个需求,如图: 左右切换按钮默认为隐藏,当鼠标进入...