轮播图效果

57 阅读1分钟
        let i = 0        let timer;        function changeStyle() {            $('img').eq(i).show().siblings().hide()            $('.indexes li').eq(i).addClass('active').siblings()                .removeClass('active')        }        function run() {            timer = setInterval(() => {                if (++i === 4) i = 0                changeStyle()            }, 2000);        }        run()        $('.indexes li').click(function () {            clearInterval(timer)            i = $(this).index()            changeStyle()            run()        })        $('.arrow.right').click(function () {            clearInterval(timer)            if (++i === 4) i = 0            changeStyle()            run()        })        $('.arrow.left').click(function () {            clearInterval(timer)            if (--i === -1) i = 3            changeStyle()            run()        })
 changeStyle()  封装了一个函数 叫changeStyle
 function changeStyle() {            $('img').eq(i).show().siblings().hide()            $('.indexes li').eq(i).addClass('active').siblings()                .removeClass('active')        } 
  $('img') 获取所有的img片图片    .eq(i) 是对应的下标值  show()显示   siblings()兄弟元素   .hide()隐藏

$('.indexes li') 获取轮播图的指示栏    eq(i)下标值   addClass('active')给active添加样式  siblings()兄弟元素    removeClass('active')清除样式

function run() {            timer = setInterval(() => {                if (++i === 4) i = 0                changeStyle()            }, 2000);        }        run()

 这一步的意义是 用定时器 每隔两秒钟进行一次     

if(++i===4)i=0 这是如果i等于4的话 那么 i=0  就意思如果img一共有四张图 那么当i===4第四张图的时候 i将=0 返回第一张 进行轮播效果

changeStyle()是上面封装的函数

run()把他调用 以便方便写

$('.indexes li').click(function () {            clearInterval(timer)            i = $(this).index()            changeStyle()            run()        })

轮播图的指示栏的点击效果

clearInterval(timer)当我点击的时候先把轮播效果停止 

i = $(this).index()当我点击某一个指示栏的时候获取对应下标值 然后获得图片

changeStyle()    run()  然后继续进行

 $('.arrow.right').click(function () {            clearInterval(timer)            if (++i === 4) i = 0            changeStyle()            run()        })        $('.arrow.left').click(function () {            clearInterval(timer)            if (--i === -1) i = 3            changeStyle()            run()        })

这是左右两边点击栏

 if (++i === 4) i = 0  这是点击右边 i++ 当i最大加到4的时候 i=0 然后重新返回第一张图

if (--i === -1) i = 3 左边点击i-- 当i减为-1的时候 那么i=3 返回到第四张图