小圆圈样式轮播图

1、给图片用弹性布局横着排列,给一个一张图片大小的边框,设置overflow:hidden之后就会只显示第一张图片,其他的隐藏

2、给小圆圈和图片设置坐标用于轮播 

 HTML样式:

<div class="box">

        <div class="banner">

            <img src="https://webstatic.mihoyo.com/upload/contentweb/2022/12/09/1804282cf13c44711cf07ef6d23156fb_2308532683745949632.jpg" alt="" class="bannerimg">

            <img src="https://webstatic.mihoyo.com/upload/contentweb/2022/12/09/43c38addf5ecb4e94980b0bf6e9a40fe_3160237405274247517.jpg" alt="" class="bannerimg">

            <img src="https://webstatic.mihoyo.com/upload/contentweb/2022/12/08/a884defa3ada37446df46760b4a43f5b_4073557566560568188.jpg" alt="" class="bannerimg">

            <img src="https://webstatic.mihoyo.com/upload/contentweb/2022/11/25/9548e975d80d6edf1ad652c32d07f6b8_4774122759834469945.jpg" alt="" class="bannerimg">

        </div>

        <div class="bannerbtn">

            <button class="btn bg"></button>

            <button class="btn"></button>

            <button class="btn"></button>

            <button class="btn"></button>

        </div>

CSS样式

.box{

        width: 640px;

        height: 400px;

        margin: auto;

        overflow: hidden;

    }

    .banner{

        width: 2560px;

        display: flex;

        position: relative;

    }

    .bannerimg{

        width: 640px;

        height: 400px;

    }

    .bannerbtn{

        position: absolute;

        left: calc(50% - 40px);

        top: 380px;

    }

    .btn{

        width: 20px;

        height: 20px;

        border-radius: 50%;

        cursor: pointer;

    }

    .bg{

        background-color: pink;

    }

JS样式

// 设置小圆圈事件

        var banner = document.querySelector('.banner')

        var btn = document.querySelectorAll('.btn')

        var lastindex = 0

        for(var i=0;i<btn.length;i++){

            // 1、添加小圆圈坐标setAttribute语法:element.setAttribute(attributename属性名称,attributevalue属性值)

            btn[i].setAttribute('index',i)

            // 2、小圆圈点击事件

            btn[i].onclick = function(){

                // 3、获取坐标

                var index = this.getAttribute('index')

                // 4、移动图片 

                banner.style.transform = `translateX(${-640*index}px)`

                // 5、改变小圆圈

                this.className = 'btn bg'

                // 6、清除第一个小圆圈样式

                btn[lastindex].className = 'btn'

                // 7、将当前的小圆圈坐标设置为上一个

                lastindex = index

            }

        }

        // 设置轮播

        var index = 0

        setInterval(function(){

            index ++

            if(index>3)index=0

            // 图片轮播

            banner.style.transform = `translateX(${-640*index}px)`

            // 小圆圈跟着

            btn[index].className = 'btn bg'

            btn[lastindex].className = 'btn'

            lastindex  = index

        },1000)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,以下是一个简单的自动轮播带小圆圈轮播图的代码实现: HTML部分: ```html <div class="slider"> <div class="slider-wrapper"> <img src="image1.jpg" alt="Image 1"> <img src="image2.jpg" alt="Image 2"> <img src="image3.jpg" alt="Image 3"> </div> <div class="slider-nav"> <span class="slider-dot active"></span> <span class="slider-dot"></span> <span class="slider-dot"></span> </div> </div> ``` CSS部分: ```css .slider { position: relative; width: 100%; height: 300px; overflow: hidden; } .slider-wrapper { position: absolute; width: 300%; height: 100%; transition: left .6s ease-in-out; } .slider-wrapper img { float: left; width: 33.3333%; height: 100%; } .slider-nav { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); display: flex; justify-content: center; align-items: center; } .slider-dot { width: 10px; height: 10px; margin: 0 5px; border-radius: 50%; background-color: #ccc; cursor: pointer; transition: background-color .3s ease; } .slider-dot.active { background-color: #333; } ``` JavaScript部分: ```javascript const sliderWrapper = document.querySelector('.slider-wrapper'); const sliderImgs = sliderWrapper.querySelectorAll('img'); const sliderNav = document.querySelector('.slider-nav'); const sliderDots = sliderNav.querySelectorAll('.slider-dot'); let curSlide = 0; // 当前显示的图片的索引 let autoSlide; // 自动轮播的定时器 // 切换到指定索引的图片 function slideTo(index) { curSlide = index; sliderWrapper.style.left = -curSlide * 100 / sliderImgs.length + '%'; sliderDots.forEach((dot, i) => { dot.classList.toggle('active', i === curSlide); }); } // 切换到下一张图片 function slideNext() { slideTo((curSlide + 1) % sliderImgs.length); } // 自动轮播 function autoSlideStart() { autoSlide = setInterval(slideNext, 3000); } // 停止自动轮播 function autoSlideStop() { clearInterval(autoSlide); } // 点击小圆圈切换到对应的图片 sliderDots.forEach((dot, i) => { dot.addEventListener('click', () => { slideTo(i); autoSlideStop(); }); }); // 鼠标移入停止自动轮播,移出恢复自动轮播 sliderWrapper.addEventListener('mouseenter', autoSlideStop); sliderWrapper.addEventListener('mouseleave', autoSlideStart); // 开始自动轮播 autoSlideStart(); ``` 代码解释: 1. HTML部分包含一个 `.slider` 容器,其中包含一个 `.slider-wrapper` 容器用于包裹所有图片,以及一个 `.slider-nav` 容器用于放置小圆圈。 2. CSS部分使用绝对定位将 `.slider-wrapper` 容器定位到 `.slider` 容器的左侧,同时将其宽度设置为三倍,每张图片占据一个三分之一的宽度,通过 `left` 属性控制 `.slider-wrapper` 容器的位置来切换图片。`.slider-nav` 容器使用 flex 布局将小圆圈水平居中,同时使用 `transform` 属性将其水平居中。 3. JavaScript部分定义了三个函数,分别是 `slideTo`、`slideNext` 和 `autoSlideStart`。`slideTo` 函数用于切换到指定索引的图片,通过修改 `.slider-wrapper` 容器的 `left` 属性来实现切换。`slideNext` 函数用于切换到下一张图片,通过 `curSlide + 1` 模图片数量来实现循环轮播。`autoSlideStart` 函数用于开始自动轮播,使用 `setInterval` 函数定时调用 `slideNext` 函数。 4. 在代码中监听小圆圈的 `click` 事件,当点击小圆圈时,调用 `slideTo` 函数切换到对应的图片,并调用 `autoSlideStop` 函数停止自动轮播。 5. 在代码中监听 `.slider` 容器的 `mouseenter` 和 `mouseleave` 事件,当鼠标移入容器时,调用 `autoSlideStop` 函数停止自动轮播,当鼠标移出容器时,调用 `autoSlideStart` 函数恢复自动轮播。 6. 最后调用 `autoSlideStart` 函数开始自动轮播。 以上是一个简单的自动轮播带小圆圈轮播图的代码实现,你可以根据需要进行修改和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值