轮播图详细制作思路与过程

图片轮播我们经常在众多网站中看到,各种轮播特效有着非常美观炫酷的视觉效果。很多初学js的小伙伴都很心生向往。我也不例外,所以在此分享个写轮播图的思路和过程,有不足之处请多多指教,相互学习。

一.轮播图制作思路:

就是通过修改每一张图片的透明度,让其每隔一段时间将其中的某一张图片透明度设为1,显示出来;而其它的设为0,不显示。从而实现一种图片轮流播放的效果。
思路比较简单:
1.首先让一组图片绝对定位,让其重叠在一起,
2.通过js获取相应的标签,为后面的步骤做铺垫
3、然后制作手动轮播:点击小方块按钮,显示相应图片。
(1)通过设置图片的透明度变化来控制图片的显示效果。(更简单的效果是直接修改display属性,用display:block让该图片显示出来,而设置display:none就可以把其他的图片隐藏起来,这两种方法原理相同。)
(2)当点击小圆点时使它相对应的图片显示并且当前li的背景颜色设置为白色;
4、点击左右箭头,实现向前向后轮播图片。

二.具体代码实现

首先来看Html结构代码:

<div class="box"><ul id="boxul"><li><img src="data:images/f1.jpg" alt=""></li><li><img src="data:images/f2.jpg" alt=""></li><li><img src="data:images/f3.jpg" alt=""></li><li><img src="data:images/f4.jpg" alt=""></li><li><img src="data:images/f5.jpg" alt=""></li></ul><ol  id="boxol"><li class="current">1</li><li>2</li><li>3</li><li>4</li><li>5</li></ol><div class="prev" id="prev">prev</div><div class="next" id="next">next</div></div>

对其进行样式调整之后,图片都在同一个位置,可以先给第一图片设置为显示,其它的图片设为不显示。

下面来看js的代码:

  *{padding: 0;margin: 0;}/* 长按标签会有蓝色背景 */*::selection {background: none;}li{list-style: none;}/* 子绝父相 */.box{width: 800px;height: 500px;margin: 50px auto;position: relative;}/* 设置所有的图片不显示 */.box ul li {width: 800px;height: 500px;position: absolute;opacity: 0;/* 过度显示图片 */transition: all .8s;}/* 设置第一张图片可见 */.box ul li:first-child {opacity: 1;}/*左右箭头*/.prev,.next {width: 80px;height: 40px;position: absolute;/* 背景色 */background-color: rgba(0, 0, 0, .7);/* 文字设置 */color: white;text-align: center;line-height: 40px;/* 位置 */top: 50%;margin-top: -20px;/* 鼠标移上去的效果 */cursor: pointer;}.next{right: 0;}.prev:active,.next:active {background-color: rgba(0, 0, 0, .5);}.prev:hover,.next:hover{background-color: rgba(0, 0, 0, .6);}/* 小方块的位置 */.box ol{position: absolute;right: 50px;bottom: 20px;}.box ol li {width: 20px;height: 20px;border: 1px solid #ccc;float: left;text-align: center;line-height: 20px;cursor: pointer;}.current{background-color: yellow;}img{width: 800px;height: 500px;}

js的具体代码如下:

 //1.1获取ul元素var boxul = document.getElementById("boxul")var lis = boxul.querySelectorAll("li")console.log(lis.length);//1.2获取olvar boxol = document.getElementById("boxol")//获取Ol下面的livar ol_lis = boxol.querySelectorAll("li")//console.log(ol_lis);//获得箭头var prev = document.getElementById("prev")var next = document.getElementById("next")//给ol的li添加点击事件for(var i = 0 ;i<ol_lis.length;i++){// console.log(i);//给oll的i设置indexol_lis[i].setAttribute("index",i)ol_lis[i].onclick = function(){for(var i = 0 ;i<ol_lis.length;i++){ol_lis[i].className = ""lis[i].style.opacity = 0}this.className = "current"var index = parseInt(this.getAttribute("index"))lis[index].style.opacity = 1}}//console.log(ol_lis);//2.给next按钮注册点击事件,让所有的li的透明度变为0,让当前的透明度变为1var index = 0;var old_li = lis[0]var new_linext.onclick = function(){index++// 到5时,切到第一张图if(index == lis.length){index = 0}old_li.style.opacity = 0new_li = lis[index]new_li.style.opacity = 1old_li = new_li//ol下li的颜色变化for(var i =0;i<lis.length;i++){ol_lis[i].className = ""}ol_lis[index].className = "current"}//3.给上一个按钮注册点击事件,让所有的li的透明度变为0,让当前的透明度变为1// console.log(index);// old_li.style.opacity =0// new_li = lis[index]// new_li.style.opacity = 1prev.onclick = function(){// 从第一张图到下标为4的图if(index == 0){index = lis.length}index--old_li.style.opacity = 0new_li = lis[index]new_li.style.opacity = 1old_li = new_li//ol下li的颜色变化for(var i =0;i<lis.length;i++){ol_lis[i].className = ""}ol_lis[index].className = "current"}

这里面实现的时候结合了css3的transition属性,让图片的切换有一个过渡效果

三、相关知识点。

1、获取DOM元素:
(1)document.getElementsById():通过id获取对象,id是唯一的,可以不获取。
(2)document.getElementsByClassName():通过class属性获取对象。
(3)document.getElementsByTagName():通过标签名获取对象。
(4)document.querySelectorAll():可通过所有获取。
2、(1)onmouseover():鼠标移上时事件;
(2)onmouseout():鼠标移开时事件;
3、onclick():单击事件。

轮播图详细制作思路与过程相关推荐

  1. 第一节 安卓自定义轮播图的制作

    专栏目录 第一节 自定义轮播图的制作 第二节 底部导航栏菜单,炫酷菜单动画,背景变暗.按钮焦点获取 第三节 适配Android10的拍照.从相册获取代码,包括完整的权限申请和图片地址获取 第四节 百度 ...

  2. 猫耳FM轮播图模型制作

    猫耳FM轮播图模型制作 今天咱们来研究一下猫耳FM的轮播图,它的轮播效果和往常的有些不同.先来看看它的效果~ 可以看到它的切换效果的特别之处---相隔多个图片之间的切换时,当前图片到目标图片的切换是直 ...

  3. 网站中轮播图的制作方法

    制作思路 将轮播图分为三个部分,分别为视口区,滚动区和图片. 1.视口区.即可看见图片的地方,将其固定不动. 2.滚动区.该区域需要产生图片轮流出现的效果,因而需要给此区域添加动画效果.宽度为所有图片 ...

  4. HTML轮播图的制作【此处小编的代码部分并没有加入JavaScript部分】

    在浏览一些网站的页面时,我们经常能看到图片不断播放的效果,在HTML当中就可以制作出来,由于小编目前还没有完全掌握JavaScript,做出来的效果可能没有轮播效果,这个小编会在以后将轮播效果的加入进 ...

  5. jQuery轮播图(详细注释)

    js渣渣也能简单做出 在理想情况下用 吧外层div的class名起为banner   ul li的布局 下面是css代码放图片的li记得浮动: .banner {width: 15rem;height ...

  6. html怎么做产品轮播图,商品轮播图是什么意思(html轮播图怎么制作)

    但轮播图对用户真的有意义吗?或者它只是设计者用来偷懒,将内容一股脑塞进去的工具呢? 不论将这个问题抛向谁,他们都会告诉你,"轮播图就是个反面模式(anti-pattern)."轮播 ...

  7. web 完整轮播图 前端 轮播图 详细

    web 完整轮播图 前端 轮播图 预览: 应用 HTML + CSS + JS HTML CSS JS 预览: 应用 HTML + CSS + JS JS代码分析如下: html代码比较简短,这里用j ...

  8. 原生JS制作最简单轮播图(超清晰思路)

    使用html+css将页面制作完毕后,完成页面自动轮播,左右箭头点击图片改变,下方小按钮悬浮更改图片. 制作思路: CSS: 1.鼠标进入banner后左右箭头出现. .banner:hover #l ...

  9. 老徐WEB:最简单详细的轮播图原理和制作过程(一)

    老徐利用空闲时间,制作了一个最简单的轮播图,主要介绍轮播图的原理和制作过程,只要大家能认真看完这篇文章,并理解文中内容,就能完全掌握轮播图的制作了.之后工作中碰到复杂的轮播图,自己也能思考制作出来了. ...

最新文章

  1. flask学习笔记之blueprint
  2. python怎么安装matplotlib-[Python]一步步安装numpy,matplotlib
  3. .NET Core3.1升级.NET5,坑还真不少...
  4. 哈夫曼算法证明+哈夫曼编码译码程序实现
  5. javascript TypedArray
  6. Android中View转换为Bitmap及getDrawingCache=null的解决方法
  7. *** ERROR L107: ADDRESS SPACE OVERFLOW
  8. 小宇java_小马哥的 Java 项目实战营
  9. 第十届全国大学生智能汽车竞赛获奖名单
  10. VM14Pro下打开虚拟机黑屏及其衍生问题的解决方案
  11. 70周年国庆,34个省级行政区前来祝贺
  12. Qt安装QtCharts | 超简便方法
  13. 一刀工具箱 - 古诗文查询
  14. 经常流鼻血不是上火,可能是寄生水蛭钻进了你的鼻腔
  15. 很好的--张量(Tensor)的技术以及它在不同场景中的应用--转载贪心科技
  16. 【工程源码】CYUSB3014芯片使用EEPROM无法下载固件说明
  17. ACM 比赛 训练记录(持续更新)
  18. 为什么只能取出购票信息单_如何换取购票信息单 取票取出的是购票信息单
  19. Cesium之粒子---简单粒子特效
  20. 厘米与像素的单位转换

热门文章

  1. ios:Layer 异步绘制
  2. 奥的斯服务器显示shutdown,奥的斯XIZI/OTIS 21VF/300VF…故障代码表
  3. 串口通信协议数据处理二
  4. 五一黄金周期间,北京、上海、长沙、青岛、厦门入围最热门城市
  5. 高手的Blog 及ACM 好的网站
  6. 怎么拷贝计算机桌面,怎么把电脑浏览器里的软件复制到桌面
  7. P1071 潜伏者(JAVA语言)
  8. 瓴羊Quick BI在线电子表格,数据分析人员高效工作“神器”
  9. 京东api商品详情接口
  10. 数商云橡胶行业一体化解决方案丨提高产业链协同,实现稳定发展