Javascript实现图片轮播效果(二)图片序列节点的控制实现


Posted in Javascript onFebruary 17, 2016

推荐阅读:Jquery代码实现图片轮播效果(一)

在上篇文章给大家介绍了Javascript实现图片轮播效果(一)让图片跳动起来,这里我们实现图片序列节点的跳转实现.在图片跳转的同时,我们一般需要知道他跳转的是哪个位置,这里就是图片序列节点需要跟图片一同显示.下面我们就直接作分析.

在没讲正文之前先给大家展示效果图:

Javascript实现图片轮播效果(二)图片序列节点的控制实现

在HTML,CSS代码结构中我们需要加入一个图片序列是否选中的样式

#slider ol li a.active{
background-color: #ffffff;
color: #ff0000;
}

JS代码中我们需要对上一篇文章的JS代码做一些改变和增加,这里首先要改变的是将跳转的代码做一次封装,封装到一个方法中,然后返回setInterval的值.这个主要是为序列节点实现一些功能.

然后在跳转代码中,改变相应的序列节点的样式,为了能够展示跳转的位置.

//图片节点
var slider = document.getElementById("slider");
var imgul = slider.getElementsByTagName("ul")[0];
var imglis = imgul.getElementsByTagName("li");
var len = imglis.length;
//图片序列节点
var numol = slider.getElementsByTagName("ol")[0];
var numlinks = numol.getElementsByTagName("a");
//共享序列
var index = 0;
//图片跳转,图片跳转的同时,改变序列节点的跳转
var jump = function () {
return setInterval(function(){
if(index >= len){
index = 0;
}
//图片跳转
imgul.style.left = - (800 * index) + "px";
//改变序列节点样式:首先要清除所有的链接的样式,然后在激活对应的序列节点样式
for (var i = 0; i < len; i++) {
numlinks[i].setAttribute("class","");
}
numlinks[index].setAttribute("class","active");
index++;
},2000);
};
var jumpindex = jump();

这里还需要加入序列节点的hover状态下的控制.

hover后图片跳转应该停止,应停留在hover下的图片展示这里序列节点的数目与图片的数目是相对应的,因此可以通过当前序列节点所在的位置来改变其他的状态.

当鼠标离开序列节点后,应当让图片继续自动跳转.

//增加序列节点的hover控制: 1. hover后要禁止图片的跳转,显示在当前的图片上,这里就需要清除跳转 2.hover离开后,在当前的图片上做图片的跳转
for (var i = 0; i < len; i++){
//hover
numlinks[i].onmouseover = function () {
clearInterval(jumpindex);
for (var i = 0; i < len; i++) {
numlinks[i].setAttribute("class","");
if (numlinks[i] === this){
index = i;
}
}
imgul.style.left = - (800 * index) + "px";
numlinks[index].setAttribute("class","active");
}
//out
numlinks[i].onmouseout = function(){
jumpindex = jump();
}
}

这样我们就完成了第二步的效果.到此本文的全部叙述也就给大家介绍完了,希望对大家有所帮助。

Javascript 相关文章推荐
商城常用滚动的焦点图效果代码简单实用
Mar 28 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
Mar 26 Javascript
js比较日期大小的方法
May 12 Javascript
包含中国城市的javascript对象实例
Aug 03 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
Dec 04 Javascript
js弹出窗口返回值的简单实例
May 28 Javascript
JavaScript中instanceof运算符的使用示例
Jun 08 Javascript
BootStrap实现树形目录组件代码详解
Jun 21 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
Sep 12 Javascript
js按条件生成随机json:randomjson实现方法
Apr 07 Javascript
shiro授权的实现原理
Sep 21 Javascript
jQuery实现的隔行变色功能【案例】
Feb 18 jQuery
Bootstrap中CSS的使用方法
Feb 17 #Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
Feb 17 #Javascript
基于javascript简单实现对身份证校验
Jan 25 #Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
Feb 17 #Javascript
Bootstrap布局组件应用实例讲解
Feb 17 #Javascript
深入php面向对象、模式与实践
Feb 16 #Javascript
三个js循环的关键字示例(for与while)
Feb 16 #Javascript
You might like
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
为原生js Array增加each方法
2012/04/07 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
4种JavaScript实现简单tab选项卡切换的方法
2016/01/06 Javascript
js HTML5多媒体影音播放
2016/10/17 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
2019/04/28 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
详解vue或uni-app的跨域问题解决方案
2020/02/21 Javascript
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
在Python中marshal对象序列化的相关知识
2015/07/01 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
Python验证码截取识别代码实例
2020/05/16 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
html5 音乐播放器 audio 标签使用概述
2013/07/15 HTML / CSS
英国在线发型和美容产品商店:Beauty Cutie
2019/04/27 全球购物
金士达面试非笔试
2012/03/14 面试题
九州传奇上机题
2014/07/10 面试题
市场营销求职信范文
2014/02/21 职场文书
质量整改报告范文
2014/11/08 职场文书
保安辞职信范文
2015/02/28 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
Django集成富文本编辑器summernote的实现步骤
2021/05/31 Python
MySQL数据库 安全管理
2022/05/06 MySQL
MySQL深分页问题解决思路
2022/12/24 MySQL