淡入淡出轮播图

渐现轮播图

这是一个原生手撸渐现型的轮播图

  • 淡入淡出
  • 移入移出
  • 添加前后按钮
  • *添加小图(动画效果)

一言不合就上代码

js代码块

document.addEventListener('DOMContentLoaded',function(){
            let focus = document.querySelector('#focus');
            let bigpic = focus.querySelector('#bigpic');
            let bigItems = bigpic.children;
            let small_wrap = bigpic.nextElementSibling;
            let smallpic = document.querySelector('#smallpic');
            let bigItems1 = smallpic.children;
            let baseWidth = bigItems1[0].offsetWidth;
            smallpic.style.width = baseWidth*bigItems1.length + 'px';
             let len = bigItems.length;
            let index = 0;
            let lastIndex = 0;
            for(let i=0;i<len;i++){
                if(i!==index){
                    animation(bigItems[i],'opacity',0);
                    animation(bigItems1[i],'opacity',0.3);
                }
            }
            let timer = setInterval(autoPlay,2000);
            let btnPrev = document.createElement('btnPrev');
            btnPrev.className = 'prev';
            btnPrev.innerHTML = '&lt;';
            focus.appendChild(btnPrev);
            let btnNext = document.createElement('btnNext');
            btnNext.className = 'next';
            btnNext.innerHTML = '&gt;';
            focus.appendChild(btnNext);
            focus.onclick = e=>{
                e = e || window.event;
                var target = e.target || e.srcElement;
                if(target.className.toLowerCase()==='prev'){
                    index--;
                    showImg();
                }
                if(target.className.toLowerCase()==='next'){
                    index++;
                    showImg();
                }
            }
            focus.onmouseenter = ()=>{
                clearInterval(timer);
            }
            focus.onmouseleave = ()=>{
                timer = setInterval(autoPlay,2000);
            }
            function autoPlay(){
                index++;
                showImg();
            }
            function showImg(){
                if(index >= len){
                    index = 0;
                }else if(index < 0){
                    index = len - 1;
                }
                animation(bigItems[index],'opacity',1);
                animation(bigItems[lastIndex],'opacity',0);
                animate(smallpic,{left:-baseWidth*index});
                animation(bigItems1[index],'opacity',1);
                animation(bigItems1[lastIndex],'opacity',0.3);
                lastIndex = index;
            }
        });

html代码块

<div id="focus">
        <ul id="bigpic">
            <li><img src="img/001.jpg"></li>
            <li><img src="img/002.jpg"></li>
            <li><img src="img/003.jpg"></li>
            <li><img src="img/001.jpg"></li>
            <li><img src="img/002.jpg"></li>
            <li><img src="img/003.jpg"></li>
            <li><img src="img/001.jpg"></li>
        </ul>
        <div class="small_wrap">
           <ul id="smallpic">
               <li><img src="img/001.jpg"></li>
               <li><img src="img/002.jpg"></li>
               <li><img src="img/003.jpg"></li>
               <li><img src="img/001.jpg"></li>
               <li><img src="img/002.jpg"></li>
               <li><img src="img/003.jpg"></li>
               <li><img src="img/001.jpg"></li>
           </ul>
       </div>
    </div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值