方式一

1.先将图片信息封装成一个数组的全局变量。
2.创建一个全局变量 i 用于操作数组的下标。
3.点击上、下一个按钮时,触发函数,使 i 自增或自减
4.通过字符串拼接的方式,拼接 url。

js代码:

<script type="text/javascript">//images 用于存储图片信息。可通过下标获取var images = ["01.webp","02.webp","03.jpg","04.webp",];var i = 0;//用于操作数组的下标//点击下一个按钮时,触发的函数。function next(){i++;i = i>images.length-1 ? 0:i ;//控制i的范围在 数组元素的取值范围内。实现循环播放update(i);}function prev(){i--;i = i<0 ? images.length-1 : i ;//控制i的范围在 数组元素的取值范围内。实现循环播放update(i);}//接收不同的下标,将对应下标的图片,写进url。function update(n){var div = document.getElementById("pic_show");div.style.backgroundImage="url(img/"+images[i]+")" ;}</script>

效果截图

方式二

根据定位。
通过dom操作元素的位置,实现轮播。

js代码

<script type="text/javascript">var arr = document.getElementsByClassName("show_pic");//获取显示图片的元素。var brr = new Array(arr.length); //创建一个数组用来保存图片的定位信息。//点击下一个按钮时触发function next(){//为brr赋值for(var i=0;i<=arr.length-1;i++){brr[i] = arr[i].offsetLeft - 220 ;//获取元素的位置信息,并且改变//控制图片的循环播放if (brr[i] < -200 ){brr[i] += 1320;} //console.log(brr[i]);}//重写元素的位置for(var i =0;i<=brr.length-1;i++){arr[i].style.left= brr[i]+"px";}}//点击上一个按钮时触发function pre(){for(var i=0;i<=arr.length-1;i++){brr[i] = arr[i].offsetLeft + 220 ;//获取元素的位置信息,并且改变//控制图片的循环播放if (brr[i] > 900 ) {brr[i] -= 1320;} //console.log(brr[i]);}//重写元素的位置for(var i =0;i<=brr.length-1;i++){arr[i].style.left= brr[i]+"px";}}
</script>

页面代码

<html><head><meta charset="utf-8"><title></title></head><style type="text/css">.pic{width: 900px;height: 400px;background-color: antiquewhite;overflow: hidden; position: relative;}.show_pic{width:200px ;height: 300px;background-color: aqua;float: left;margin-top: 20px;position: absolute;/* transition: left 10s; */}.control{width: 100%;height: 30px;text-align: right;}#pic1{left: -200px;}#pic2{left: 20px;}#pic3{left: 240px;}#pic4{left: 460px;}#pic5{left: 680px;}#pic6{left: 900px;}</style><body><div class="pic"><div class="control"><button  onclick="pre();"> &lt </button><button  onclick="next();"> &gt </button></div><div class="show_pic" id="pic1">第一个</div><div class="show_pic" id="pic2">第二个</div><div class="show_pic" id="pic3">第三个</div><div class="show_pic" id="pic4">第四个</div><div class="show_pic" id="pic5">第五个</div><div class="show_pic" id="pic6">第六个</div></div></body>
</html>

运行截图

方式三

为图片设置两种样式。
1.图片的默认样式为不显示——透明度为0。
2.图片的class样式设置为显示——图片的透明度为1。
3.通过dom为图片的className属性赋值。即可实现轮播效果。

js代码

<script type="text/javascript">function prev(){// 获取ulvar ul = document.getElementById("pic_ul");//通过ul获取 里面的带有active 的<li>var li = ul.getElementsByClassName("active")[0];//将这个li设置成不显示li.className="";//获取当前li的上一个li——preLivar preLi = li.previousElementSibling;//判断preLi 的元素是否为空,若为空,则将 preLi 赋值成最后一个。实现循环if(preLi == null){var arr = ul.getElementsByTagName("li");preLi = arr[arr.length-1];}//将nextLi 设置成显示preLi.className = "active";}function next(){// 获取ulvar ul = document.getElementById("pic_ul");//通过ul获取 里面的带有active 的<li>var li = ul.getElementsByClassName("active")[0];//将这个li设置成不显示li.className="";//获取当前li的下一个li——nextLivar nextLi = li.nextElementSibling;//判断nextLi 的元素是否为空,若为空,则将 nextLi 赋值成第一个。实现循环if(nextLi == null){// 通过 ByTagName 获取到ul 下的 第一个 li。nextLi = ul.getElementsByTagName("li")[0];}//将nextLi 设置成显示nextLi.className = "active";}</script>

html代码

<html><head><meta charset="utf-8"><title></title></head><style type="text/css">*{margin: 0px;padding: 0px;}.container{width: 1260px;height: 460px;margin: 100px auto;/* background-color: #00FFFF; */position: relative;}.container ul {list-style: none;}.container ul li{position: absolute;top: 0px;opacity: 0;transition: opacity 5s; /* 过渡,设置时间长一点,方便展示*/}.container ul li.active{opacity: 1;}.container ul li>img{width: 1260px;height: 460px;} </style><body><div class="container"><ul id="pic_ul"><li class= "active" ><img src="img/01.webp" ></li><li><img src="img/02.webp" ></li><li><img src="img/03.jpg" ></li><li><img src="img/04.webp" ></li></ul></div><button type="button" onclick="prev();">pre</button><button type="button"οnclick="next();">next</button></body>
</html>

运行截图

点击按钮后,过渡时截图。

js轮播(三种方式)相关推荐

  1. 在HTML 中嵌入 JS 代码的三种方式

    一,在HTML中嵌入JS代码的第一种方式:行间事件 行间事件是指将JavaScript函数写到HTML元素中的执行事件. 1.JavaScript 是一种事件驱动型的编程语言,通常都是在发生某个事件的 ...

  2. JavaScript——关于JavaScript、在HTML中嵌入JS代码的三种方式、变量

    文章目录 JavaScript 01 关于JavaScript 1.1 JS的发展历史 1.2 JS的特性 1.3 JS的组成 1.4 JSP和JS的区别 02 在HTML中嵌入JS代码的三种方式 2 ...

  3. js 函数定义三种方式

    <p>Js 函数定义的三种方式:</p> <br> <p>方式一:function</p> <script type="te ...

  4. JS绑定事件三种方式

    三种方式 1.在DOM中直接绑定 2.在JS代码中直接绑定 3.使用事件监听函数绑定事件 一.在DOM中直接绑定 也就是直接在html标签中通过 onXXX="" 来绑定.举个例子 ...

  5. HTML嵌入JS代码的三种方式

    目录 一.HTML嵌入JS代码的第一种方式:直接加一个事件句柄跟表达式 二.HTML嵌入JS代码的第二种方式:脚本块 三.HTML嵌入JS代码的第三种方式:外部引入js文件 一.HTML嵌入JS代码的 ...

  6. js声明变量三种方式

    变量声明的三种方式: let const var var 声明与 let 相似.大部分情况下,我们可以用 let 代替 var 或者 var 代替 let,都能达到预期的效果. let和var的区别: ...

  7. 前端js文件合并三种方式

    最近在思考前端js文件该如何合并,当然不包括不能合并文件,而是我们能合并的文件,想了想应该也只有三种方式. 三个方式如下: 1. 一个大文件,所有js合并成一个大文件,所有页面都引用它. 2. 各个页 ...

  8. 点击返回页面顶部(h5、js、jQuery 三种方式)

    当页面过长时,通常会在滚动条到一定位置时设置按钮,点击可以快速返回顶部或者指定的位置处. 参考文档:jQuery中页面返回顶部的方法总结 方法一:锚点定位 当点击a标签,会直接返回到顶部:如果p标签有 ...

  9. Web前端 | HTML嵌入JS代码的三种方式

    ✅作者简介:一位材料转码农的选手,希望一起努力,一起进步!

  10. js输出的三种方式:页面输出、对话框输出、控制台输出

    1.页面输出 document.write("图片上传失败") 2.对话框输出 window.alert("图片上传失败") 必须点击确定才能进行后续操作,打断 ...

最新文章

  1. 【前端面试分享】- 寒冬求职下篇
  2. Android开发之自带阴影效果的shape
  3. SVG可伸缩的矢量图形
  4. ubuntu系统debootstrap的再三实验
  5. MongoDB 快速入门--高级
  6. Cortex-M3 (NXP LPC1788)之GPIO
  7. 清代徽州家政与乡族社会的善治
  8. 三次握手,为什么不是两次,也不是四次
  9. idea activation code记录
  10. Only one expression can be specified in the select list when the subquery is not introduced with EXI
  11. BH-02蓝牙耳机 超重低音蓝牙耳机
  12. 圣帕特里克 VoxEdit 大赛
  13. 快递停发区域查询(需指定快递公司) 接口说明
  14. 计算机专业课838,838计算机科学专业基础综合.docx
  15. Go语言环境配置 Sublime Text + GoSublime+ gocode + MarGo组合
  16. MFC TabControl插件 子对话框调用主对话框功能函数和变量
  17. 屡陷丑闻的 Facebook,试图靠 AI Bot 管住员工的嘴,可能吗?
  18. ElasticSearchTransportClient集成SearchGuard插件实现索引级别的权限管控
  19. 视频社交交友系统开发匹配功能机制讲解
  20. 普通程序员的出路是什么?

热门文章

  1. 怎样在网上赚钱?这几种都可以在网上赚到钱!
  2. 美通企业周刊 | 马明哲辞任平安CEO;麦当劳中国逐步停用塑料吸管;爱尔康创新研究中心落户温州...
  3. iOS:Github上的开源项目集合
  4. 1087 有多少不同的值
  5. 2012年第三届蓝桥杯C/C++程序设计本科B组决赛 拼音字母(编程大题)
  6. dotnetty android 交互,NET Core通过DotNetty和Lua实现MQTT通讯
  7. 微信公众号缓存的问题
  8. Linux - CentOS操作系统学习
  9. 事务执行sql脚本,错误后回滚
  10. 【BLE】蓝牙低功耗