轮播图制作

视屏详情介绍:
https://www.bilibili.com/video/BV1jb411q7ax

index:

 <div class="recommendation">
            <div class="broadcast">
                <div class="container">
                    <img src="//i0.hdslb.com/bfs/archive/d340abc2f5a8197699e591947a3068cf3d105f6c.jpg@880w_388h_1c_95q" width="550px" height="242px" alt="" id="1">
                    <img src="https://i0.hdslb.com/bfs/sycp/creative_img/202102/18abd8340550be4c87be0ed096bc3b82.jpg@880w_388h_1c_95q" id="2" alt="">
                    <img src="https://i0.hdslb.com/bfs/sycp/creative_img/202102/51d78de02489aba410dd8f23f31fd38a.jpg@880w_388h_1c_95q" id="3" alt="">
                    <img src="//i0.hdslb.com/bfs/archive/b0656393d760a7b7ab797421a8edbb0a07e95bad.jpg@880w_388h_1c_95q" id="4" alt="">
                    <img src="//i0.hdslb.com/bfs/archive/e754789e7c3880e3b8445fe20e94cc65ca3badc3.jpg@880w_388h_1c_95q" id="5" alt="">
                </div>

注意:timer的值 要设置为全局变量 后面clearInterval才能访问
JavaScript:

// 轮播图制作
window.onload = function() {
    var j = 0;
    var dots = document.querySelector('.dots');
    var dot = dots.children;
    var broadcast = document.querySelector('.broadcast');
    var imgs = broadcast.firstElementChild;
    // 点及移动
    function dotsmove() {
        for (var i = 0; i < dot.length; i++) {
            if (j == i) {
                dot[i].setAttribute('class', 'dots-change');
            } else {
                dot[i].removeAttribute('class');
            }
        }
    }

    // 图片移动
    function move() {
        if (j == 0) {
            dotsmove();
            imgs.style.left = 0 + 'px';
            j = 1;
        } else if (j == 1) {
            imgs.style.left = -550 + 'px';
            dotsmove();
            j = 2;
        } else if (j == 2) {
            imgs.style.left = -1100 + 'px';
            dotsmove();
            j = 3;
        } else if (j == 3) {
            imgs.style.left = -1650 + 'px';
            dotsmove();
            j = 4;
        } else if (j == 4) {
            imgs.style.left = -2200 + 'px';
            dotsmove();
            j = 0;
        }
    }


    function automove() {
        timer = setInterval(move, 3000);
    }
    automove();
    // 鼠标放进图片停止移动 拿出图片可以移动
    broadcast.addEventListener('mouseover', () => {
        clearInterval(timer);
    })
    broadcast.addEventListener('mouseout', automove())

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是制作HTML网页轮播图的步骤和代码示例: 1. HTML结构 ```html <div class="slider"> <ul class="slider-list"> <li><img src="img/1.jpg" alt=""></li> <li><img src="img/2.jpg" alt=""></li> <li><img src="img/3.jpg" alt=""></li> <li><img src="img/4.jpg" alt=""></li> <li><img src="img/5.jpg" alt=""></li> </ul> <ol class="slider-nav"></ol> <a href="javascript:;" class="slider-arrow slider-arrow-left"><</a> <a href="javascript:;" class="slider-arrow slider-arrow-right">></a> </div> ``` 2. CSS样式 ```css .slider { position: relative; width: 600px; height: 400px; overflow: hidden; } .slider-list { position: absolute; left: 0; top: 0; width: 3000px; height: 400px; } .slider-list li { float: left; width: 600px; height: 400px; } .slider-nav { position: absolute; right: 10px; bottom: 10px; z-index: 1; } .slider-nav li { float: left; width: 10px; height: 10px; margin-right: 5px; background-color: #ccc; border-radius: 50%; cursor: pointer; } .slider-nav li.active { background-color: #f40; } .slider-arrow { position: absolute; top: 50%; margin-top: -20px; width: 40px; height: 40px; line-height: 40px; text-align: center; font-size: 30px; color: #fff; background-color: rgba(0, 0, 0, 0.3); cursor: pointer; z-index: 1; } .slider-arrow-left { left: 10px; } .slider-arrow-right { right: 10px; } ``` 3. JavaScript代码 ```javascript var slider = document.querySelector('.slider'); var sliderList = slider.querySelector('.slider-list'); var sliderNav = slider.querySelector('.slider-nav'); var sliderArrows = slider.querySelectorAll('.slider-arrow'); var focusWidth = slider.offsetWidth; var timer = null; var num = 0; // 动态生成小圆圈 for (var i = 0; i < sliderList.children.length; i++) { var li = document.createElement('li'); li.setAttribute('data-index', i); sliderNav.appendChild(li); } // 设置第一个小圆圈为选中状态 sliderNav.children[0].classList.add('active'); // 将第一张图片复制一份放在最后 var firstImg = sliderList.children[0].cloneNode(true); sliderList.appendChild(firstImg); // 点击小圆圈切换图片 sliderNav.addEventListener('click', function (e) { if (e.target.tagName.toLowerCase() === 'li') { var index = e.target.getAttribute('data-index'); num = index; animate(sliderList, -index * focusWidth); setActiveNav(index); } }); // 点击左右箭头切换图片 for (var i = 0; i < sliderArrows.length; i++) { sliderArrows[i].addEventListener('click', function () { if (this.classList.contains('slider-arrow-left')) { num--; if (num < 0) { sliderList.style.left = -sliderList.children.length * focusWidth + 'px'; num = sliderList.children.length - 2; } animate(sliderList, -num * focusWidth); setActiveNav(num); } else if (this.classList.contains('slider-arrow-right')) { num++; if (num > sliderList.children.length - 1) { sliderList.style.left = 0; num = 1; } animate(sliderList, -num * focusWidth); setActiveNav(num); } }); } // 自动轮播 timer = setInterval(function () { sliderArrows[1].click(); }, 2000); // 鼠标移入停止轮播,移出继续轮播 slider.addEventListener('mouseenter', function () { clearInterval(timer); }); slider.addEventListener('mouseleave', function () { timer = setInterval(function () { sliderArrows[1].click(); }, 2000); }); // 设置小圆圈选中状态 function setActiveNav(index) { for (var i = 0; i < sliderNav.children.length; i++) { sliderNav.children[i].classList.remove('active'); } sliderNav.children[index % sliderNav.children.length].classList.add('active'); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值