html 动态tab添加图片轮播,js让页面动起来

本文详细介绍了图片轮播的实现原理,包括HTML结构、CSS隐藏溢出以及JavaScript控制动画的方法。通过设置index属性,结合play函数进行图片位置计算和样式切换。同时,文章提到了在鼠标悬停事件中停止和恢复轮播的功能。对于play函数的优化,提出了使用变量记录上次选中项,避免遍历所有选项来改变类名,提高了效率。
摘要由CSDN通过智能技术生成

图片轮播

此处图片轮播原理:在container元素中水平放入图片,通过overflow属性将超出部分隐藏,然后通过js控制图片组left值达到轮播效果。

实现的html结构如下图:

5499eedad98158c81b103521c19a2840.gif

实现js控制动画原理如下图:

ad9c7af720884c594c0f0b7980a43b5c.gif

编写相应的函数之前我们应该知道

我们为菜单栏加入了相应的index属性,与tab选项卡的ind属性相似,我们可以通过index找到我们想要的图片的位置

我们的play函数是前面的moveStart函数和showTab函数的结合,我们通过传入的i*图片长度计算要到达的图片的位置,通过为当前元素赋予select类名改变样式

值得注意的是我们这里采用了与showTab函数不同的处理方法,我们加入了一个变量select记录上一次改变样式的选项,取代了之前的遍历所有选项改变类名的方式

与自动切换的tab选项卡相同,在鼠标滑过菜单事件时我们清除定时器,当滑出时我们以滑出的li的index属性为参数传入auto使其开始轮播

function auto(start){

clearInterval(autotimer);

var i = start;

autotimer=setInterval(function(){

console.log(i);

play(i);

i++;

if(i == img.length)

{

i=0;

}

},3000);

}

function play(i){

clearInterval(timer);

var target=-i * 490;

menu_li[select].className='';

select=i;

menu_li[select].className='select';

timer=setInterval(function(){

var speed= (target - pic.offsetLeft )/10;

speed = speed>0?Math.ceil(speed):Math.floor(speed);

if(pic.offsetLeft == target)

{

clearInterval(timer);

}

pic.style.left=pic.offsetLeft+speed+'px';

},20);

}

请大家参考我给出的play函数,自己动手写出一个play函数,再考虑能否进一步完善play函数呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值