用JS实现轮播图效果(二)


Posted in Javascript onJune 26, 2016

在上一篇用JS实现图片轮播效果代码(一)的基础上,增加了左右箭头的响应事件,实现了点击左右箭头也可以让图片滚动:

js代码如下:

window.onload = function(){
//轮播初始化
var lunbo = document.getElementById('content');
var imgs = lunbo.getElementsByTagName('img'); 
var uls = lunbo.getElementsByTagName('ul');
var lis = lunbo.getElementsByTagName('li');
var next = document.getElementById('next');
var prev = document.getElementById('prev');
var item = 0;
//初始状态下,一个圆圈为高亮模式
lis[0].style.fontSize = '26px';
lis[0].style.color = '#fff';
imgs[0].style.display = 'block';
//定义一个全局变量,用来进行自动轮播图片顺序的变化
var pic_index = 1;
//自动轮播.使用pic_time记录播放,可以随时使用clearInterval()清除掉。
var pic_time = setInterval(autobofang,1000);
//自动播放的事件处理
function autobofang(){
if(pic_index >= lis.length){
pic_index = 0;
}
picChange(pic_index);
pic_index++;
}
//手动轮播
for(var i=0;i<lis.length;i++){ 
lis[i].addEventListener("mouseover",change,false);
}
function change(event){ 
var event=event||window.event;
var target=event.target||event.srcElement; 
var children = target.parentNode.children; 
for(var i=0;i<children.length;i++){
if(target == children[i]){ 
picChange(i); 
} 
}
} 
//图片切换函数
function picChange(i){ 
//让所有图片都不显示,所有圆圈都为普通样式 
for(var j=0;j<imgs.length;j++){ 
imgs[j].style.display = 'none'; 
lis[j].style.fontSize = '24px';
lis[j].style.color = '#999';
}
//让选中的索引的图片显示,对应的圆圈高亮 
imgs[i].style.display = 'block'; 
lis[i].style.fontSize = '26px';
lis[i].style.color = '#fff'; 
}
//当鼠标移近图片区域内,自动播放停止
lunbo.addEventListener("mouseover",function(){
clearInterval(pic_time);
},false);
//当鼠标移出图片区域内,自动播放继续
lunbo.addEventListener("mouseout",function(){pic_time = setInterval(autobofang,1000); },false);
//后退箭头点击事件,图片会跟着点击事件不断变化 
next.addEventListener("click",movenext,false);
function movenext(){
if(item == 2){
item=0;
}
else{
item+=1;
}
picChange(item);
}
prev.addEventListener("click",moveprev,false);
function moveprev(){
if(item == 0){
item=2;
}
else{
item-=1;
} 
picChange(item);
}
}

效果图:鼠标划过箭头的效果图

用JS实现轮播图效果(二)

当鼠标点击到箭头,图片会跟着变化,下面的小圆圈也会跟着显示对应图片的高亮效果

用JS实现轮播图效果(二)

总结:

基本轮播效果已经实现,后期需要做的事:是对代码要进行精简,封装,提高运行效率。

Javascript 相关文章推荐
一次失败的jQuery优化尝试小结
Feb 06 Javascript
node.js中的path.delimiter方法使用说明
Dec 09 Javascript
2014年50个程序员最适用的免费JQuery插件
Dec 15 Javascript
jQuery解决input超多的表单提交
Aug 10 Javascript
JS简单限制textarea内输入字符数量的方法
Oct 14 Javascript
原生js实现数字字母混合验证码的简单实例
Dec 10 Javascript
jquery获取select选中值的方法分析
Dec 22 Javascript
Node.js程序中的本地文件操作用法小结
Mar 06 Javascript
bootstrap配合Masonry插件实现瀑布式布局
Jan 18 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
Nov 28 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
Aug 07 Javascript
解决iview table组件里的 固定列 表格不自适应的问题
Nov 13 Javascript
用JS实现图片轮播效果代码(一)
Jun 26 #Javascript
JavaScript中Form表单技术汇总(推荐)
Jun 26 #Javascript
jQuery滚动新闻实现代码
Jun 26 #Javascript
js css实现垂直方向自适应的三角提示菜单
Jun 26 #Javascript
JS中的进制转换以及作用
Jun 26 #Javascript
JavaScript类型系统之布尔Boolean类型详解
Jun 26 #Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
Jun 26 #Javascript
You might like
PHP 文章中的远程图片采集到本地的代码
2009/07/30 PHP
PHP可逆加密/解密函数分享
2012/09/25 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
如何用js控制frame的隐藏或显示的解决办法
2013/03/20 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
关于img的href和src取变量及赋值的方法
2014/04/28 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
2017/06/20 jQuery
CentOS环境中MySQL修改root密码方法
2018/01/07 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
python 实现字符串下标的输出功能
2020/02/13 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
几个SQL的面试题
2014/03/08 面试题
青蓝工程实施方案
2014/03/27 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
单位综合评价意见
2015/06/05 职场文书
校长新学期寄语2016
2015/12/04 职场文书
python 逐步回归算法
2021/04/06 Python
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android