html设置图片左右轮播js,js实现左右切换轮播图思路

我们在 CSS 阶段就已经接触到轮播图。通过轮播图我们可以达到一些好玩的特效,但使用 CSS 做出来的轮播图只有左右切换,渐变切换和简单的点击切换。局限性较大,观看效果也不佳。但当我们接触 js 之后,你就发现使用js来实现轮播图后,在看CSS实现轮播的效果就是...。我想说啥你知道的。废话不多说,咱们一起看看如何使用js来实现轮播效果。

(本文以阴阳师中“平安世界”模块的轮播图为例)

这个轮播图,我们通过两大模块构成;左右点击模块和姓名点击模块。然后在两者相关联来达到最终的效果。

在使用js实现轮播图的效果前,先使用HTML和CSS完善这一模块的布局。

本轮播图使用8张图片。每次出现两张。我们在使用HTML和CSS布局时可以先把第一组的两张图片放好位置。其他的放在两边隐藏起来。需要使用的时候在出现移动到中间。

左右点击切换模块:

我们通过对左右按钮进行点击监听。在点击后做出反应。左右点击的思路一样。我们先说一下右边按钮点击事件。

当我们点击右边按钮后,我们通过对点击次数进行累计。此处我使用初始化常量然后累加最后通过判断来达到循环效果

对每一张图片进行编码,以此来达到循环切换图片的效果。在切换图片时,我们可以使用排他思想。当点击按钮切换下一张图片的时候,我们可以先遍历所有的图片,把所有的图片移动到两边,然后将要移动的图片移动到中央来达到切换效果

在移动的过程中的动画和定时器设置的延迟可以自己添加一下。

左边按钮的原理和右边一样反操作即可。注意常量要使用一个。否则两个按钮都只能单方向运动,可能还会出现其他问题。

本次现讲一下左右切换的思路。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的htmljs实现轮播效果,并添加了左右tab切换的代码: HTML代码: ```html <div id="slider"> <img class="slide" src="image1.jpg"> <img class="slide" src="image2.jpg"> <img class="slide" src="image3.jpg"> <img class="slide" src="image4.jpg"> <img class="slide" src="image5.jpg"> </div> <div id="tabs"> <div class="tab active"></div> <div class="tab"></div> <div class="tab"></div> <div class="tab"></div> <div class="tab"></div> </div> ``` CSS代码: ```css #slider { width: 600px; height: 400px; overflow: hidden; position: relative; } .slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1s ease-in-out; } .slide.active { opacity: 1; } #tabs { margin-top: 10px; display: flex; justify-content: center; } .tab { width: 20px; height: 20px; border-radius: 50%; background-color: gray; margin: 0 5px; cursor: pointer; } .tab.active { background-color: black; } ``` JS代码: ```javascript var slides = document.querySelectorAll('.slide'); var tabs = document.querySelectorAll('.tab'); var current = 0; function reset() { for (var i = 0; i < slides.length; i++) { slides[i].classList.remove('active'); tabs[i].classList.remove('active'); } } function startSlide() { reset(); slides[0].classList.add('active'); tabs[0].classList.add('active'); } function slideLeft() { reset(); current--; if (current < 0) { current = slides.length - 1; } slides[current].classList.add('active'); tabs[current].classList.add('active'); } function slideRight() { reset(); current++; if (current > slides.length - 1) { current = 0; } slides[current].classList.add('active'); tabs[current].classList.add('active'); } tabs.forEach(function(tab, index) { tab.addEventListener('click', function() { reset(); current = index; slides[current].classList.add('active'); tabs[current].classList.add('active'); }); }); startSlide(); setInterval(function() { slideRight(); }, 5000); ``` 解释一下代码: 1. HTML代码中,我们使用`<div>`来包含轮播图,使用`<img>`来展示每张图片。同时,我们使用一个`<div>`来包含tab标签,通过CSS实现tab标签样式,并使用JS实现tab的切换效果。 2. CSS代码中,我们设置`#slider`的宽高、overflow属性为隐藏,并将每张图片的position属性设置为绝对定位,使它们可以重叠在一起,然后使用opacity和transition属性让它们可以淡入淡出切换。 3. JS代码中,我们使用`querySelectorAll()`方法获取轮播图和tab标签,然后定义了一些函数,如`reset()`函数用于重置轮播图和tab标签的状态,`startSlide()`函数用于开始轮播,`slideLeft()`和`slideRight()`函数用于左右切换。我们通过循环遍历tab标签,并使用`addEventListener()`方法监听tab标签的点击事件,然后调用`reset()`函数和设置轮播图和tab标签的`active`类来实现tab的切换效果。最后,我们使用`setInterval()`方法来设置定时器,使轮播图可以自动切换

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值