当前位置: 首页 > news >正文

原生js解决简单轮播图的切换

之前写过过一种轮播图的切换,是按照顺序依次点击依次更换图片,这次的图片切换主要是可以有点类似京东的轮播图,区别不同的是没有加定时器,不能自己循环,而需要点击任何一个下标,显示当前所对应的图片。

先来看看布局html和css:

1 <div id="pic">
2     <img src="" />
3     <span>数量正在加载中……</span>
4     <p>文字说明正在加载中……</p>
5     <ul id="ul"></ul>
6 </div>
 1 <style>
 2         ul { padding:0; margin:0; }
 3         li { list-style:none; }
 4         #pic { width:400px; height:500px; position:relative; margin:0 auto; background:url(img/loader_ico.gif) no-repeat center #fff; }
 5         #pic img { width:400px; height:500px; }
 6         #pic ul { width:40px; position:absolute; top:0; right:-50px; }
 7         #pic li { width:40px; height:40px; margin-bottom:4px; background:#666; }
 8         #pic .active { background:#FC3; }
 9         #pic span { top:0; }
10         #pic p { bottom:0; margin:0; }
11         #pic p,#pic span { position:absolute; left:0; width:400px; height:30px; line-height:30px; text-align:center; color:#fff; background:#000; }
12     </style>

 没有写js的效果图如下所示:

 要实现点击 右上角的li中间的图片进行切换,切换为当前所对应的图片,同时上面的数字标号和下面的文字说明也要改变,那么来看js代码:

 1 <script>
 2     window.οnlοad= function(){
 3         var oImg=document.getElementsByTagName("img")[0];
 4         var oUl=document.getElementById("ul");
 5         var oSpan=document.getElementsByTagName("span")[0];
 6         var oPtxt=document.getElementsByTagName("p")[0];
 7         var arrImg=["img/pic1.jpg","img/pic2.jpg","img/pic3.jpg","img/pic4.jpg"];
 8         var arrPtxt=["图1","图2","图3","图4"];
 9 
10         //在ul里追加li,li的数量等于数组的长度
11         for(var i=0;i<arrImg.length;i++){
12             oUl.innerHTML+="<li></li>";
13         }
14         var aLi=oUl.getElementsByTagName("li");//获取li
15 
16         for(var i=0;i<aLi.length;i++){//循环li
17             aLi[i].index=i;//索引值,当前li等于i
18 
19             aLi[i].οnclick=function(){
20                 oImg.src=arrImg[this.index];
21                 oPtxt.innerHTML=arrPtxt[this.index];
22                 oSpan.innerHTML=1+this.index+"/"+arrImg.length;
23                 for(var i=0;i<aLi.length;i++){
24                     aLi[i].className="";
25                 }
26                 this.className="active"
27             };
28 
29 
30         }
31 
32     }
33 </script>

来看效果土,不是gif的,大概看一下应该就了解了:

其实写这类轮播图的有几点思路一定要理清楚:

1.一定要获取到需要用到的id或者标签;

2.若是不知道右上角li(也有可能是下标即点击的对象)的数量的话 ,要追加出来,然后获取到它;

3.最重要的就是for循环了,循环每一个li,然后给其赋值,添加图片,一定要记得写索引,点击当前就让它获取到当前的内容;

4.这个案例中还有一个重要的是细节是右上角的li也就是点击对象需要添加激活状态的class,那么我们就可以在循环这些li的时候把它的class清空,然后每一次点击给其加上选中的class即可 。

好了,这就是今天案例的思路了,不过以后在项目中也可能会遇到同样的,那么分析的思路是一样的,希望对大家有帮助!今天就到这里了,加油!  

转载于:https://www.cnblogs.com/web001/p/7896140.html

相关文章:

  • MDCC印象之二:芒果的味道
  • ORA-00600: internal error code, arguments: [kgl-no-mutex-held]
  • exp之compress到底在压缩什么
  • 数据库的独立子查询以及数据的删除、更新和建立视图的笔记
  • 让每次弹出的div随页面的卷动而保持相对位置不变
  • 课后作业-阅读任务-阅读笔记-4
  • connect by level语法的理解
  • echarts 重新渲染(重新绘制,重新加载数据)等
  • 【转】如何恶搞朋友的电脑?超简单的vbs代码
  • 如何访问dashed filename
  • 超简洁的jquery操作页面中iframe内的dom元素
  • maven使用阿里镜像配置文件
  • 办理护照
  • h5混合开发好用的下拉刷新插件
  • 商务签证的准备(1)
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 2017-08-04 前端日报
  • 2017-09-12 前端日报
  • avalon2.2的VM生成过程
  • css属性的继承、初识值、计算值、当前值、应用值
  • dva中组件的懒加载
  • Effective Java 笔记(一)
  • Git初体验
  • gops —— Go 程序诊断分析工具
  • java取消线程实例
  • jdbc就是这么简单
  • js正则,这点儿就够用了
  • Python学习之路13-记分
  • Rancher-k8s加速安装文档
  • Spring Cloud中负载均衡器概览
  • vue.js框架原理浅析
  • 阿里云Kubernetes容器服务上体验Knative
  • 设计模式 开闭原则
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • (1)(1.13) SiK无线电高级配置(六)
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (NSDate) 时间 (time )比较
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (区间dp) (经典例题) 石子合并
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)关于pipe()的详细解析
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET命令行(CLI)常用命令
  • .NET学习教程二——.net基础定义+VS常用设置
  • .Net语言中的StringBuilder:入门到精通
  • .Net转前端开发-启航篇,如何定制博客园主题
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • :O)修改linux硬件时间
  • ??在JSP中,java和JavaScript如何交互?
  • @Autowired 与@Resource的区别
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149