用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加载图片自适应固定大小的DIV
Sep 12 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
Dec 05 Javascript
JavaScript的各种常见函数定义方法
Sep 16 Javascript
Javascript模块化编程详解
Dec 01 Javascript
贴近用户体验的Jquery日期、时间选择插件
Aug 19 Javascript
JS动画定时器知识总结
Mar 23 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
Jun 22 Javascript
从零开始用electron手撸一个截屏工具的示例代码
Oct 10 Javascript
vue中过滤器filter的讲解
Jan 21 Javascript
基于JavaScript实现表格隔行换色
May 08 Javascript
vue中用 async/await 来处理异步操作
Jul 18 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
Aug 27 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 采集获取指定网址的内容
2010/01/05 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
2014/06/27 PHP
PDO::setAttribute讲解
2019/01/29 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
显示js对象所有属性和方法的函数
2009/10/16 Javascript
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
get(0).tagName获得作用标签示例代码
2014/10/08 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
JavaScript基础篇(6)之函数表达式闭包
2015/12/11 Javascript
Highcharts使用简例及异步动态读取数据
2015/12/30 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
2016/06/13 Javascript
快速实现jQuery多级菜单效果
2017/02/01 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
element-ui 本地化使用教程详解
2019/10/28 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
2020/02/01 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
Python多线程原理与用法详解
2018/08/20 Python
python实现windows壁纸定期更换功能
2019/01/21 Python
python简单验证码识别的实现方法
2019/05/10 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
如何为Python终端提供持久性历史记录
2019/09/03 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
Python如何实现强制数据类型转换
2019/11/22 Python
Auguste The Label官网:澳大利亚一家精品女装时尚品牌
2020/06/14 全球购物
益模软件Java笔试题
2012/03/27 面试题
怎么写有吸引力的自荐信
2013/11/17 职场文书
主持人婚宴答谢词
2014/01/28 职场文书
房地产项目策划书
2014/02/05 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
技术入股合作协议书
2016/03/21 职场文书
python脚本框架webpy模板赋值实现
2021/11/20 Python