简单html实现图片轮播,JavaScript实现简易轮播图

JavaScript实现简易轮播图

Html代码块:

1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

1.jpg

CSS代码:

* {

margin: 0;

padding: 0;

}

.container {

overflow-x: hidden;

}

.box {

height: 260px;

display: flex;

left: 0;

position: relative;

}

.box img {

flex: 1;

}

我这里使用的是弹性布局,更简洁的将图片排列,不会像float和inline-block一些问题。

JS代码:

var imgList = document.getElementsByTagName("img");//获取所有图片NodeList一个集合

var imgLength = imgList.length;//拿到集合的长度大小

var container = document.querySelector(".container");

var box = document.querySelector(".box");

var width = 360;//定义一个宽度,原本想直接获取但是发现弹性布局默认会让宽度为浏览器宽度

var timer;//设置一个全局变量的计时器

var index = 1;//索引

container.style.width = width + 'px';//设置容器的宽度

box.style.width = width * imgLength + 'px';//动态设置盒子的宽度

function startImg() {

timer = setInterval(function() {

if (index <= 5) {

box.style.left = box.offsetLeft - width + "px";

box.style.transition = ".4s";

if(index == 5){

//当index==5时候这一遍代码都会执行,所以这里单独设置当index==5时候,setTimeOut等待动画结束后触发,从而衔接.

setTimeout(function(){

box.style.left = "0px";

box.style.transition = "0s";

index = 1;

},400)}

}

index ++;

}, 3000);

}

//为容器设置鼠标移动事件

container.addEventListener("mousemove",function(){

if(timer){

clearInterval(timer);

}

})

//为容器设置鼠标移出事件

container.addEventListener("mouseleave",function(){

startImg();

})

//默认开始执行函数

startImg();

在宽度动态获取这里做的不够好,如果有小伙伴给我提个意见可好。谢谢大家欣赏!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值