用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 ui dialog实现弹窗特效的思路及代码
Aug 03 Javascript
使用js简单实现了tree树菜单
Nov 20 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
Mar 19 Javascript
JavaScript中setter和getter方法介绍
Jul 11 Javascript
BootStrap无限级分类(无限极分类封装版)
Aug 26 Javascript
bootstrap confirmation按钮提示组件使用详解
Aug 22 Javascript
Angular2 组件交互实例详解
Aug 24 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
Jan 08 Javascript
使用Vue动态生成form表单的实例代码
Apr 26 Javascript
js中时间格式化的几种方法
Jul 22 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
Mar 19 Javascript
浅谈JavaScript节流和防抖函数
Aug 25 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反转字符串函数strrev()函数的用法
2012/02/04 PHP
PHP可变函数的使用详解
2013/06/14 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
2019/10/16 PHP
Javascript 验证上传图片大小[客户端]
2009/08/01 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
vue使用echarts图表的详细方法
2018/10/22 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
[57:38]2018DOTA2亚洲邀请赛3月30日 小组赛A组 OpTic VS OG
2018/03/31 DOTA
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
python3.4 将16进制转成字符串的实例
2019/06/12 Python
如何利用pygame实现简单的五子棋游戏
2019/12/29 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
详解如何获取localStorage最大存储大小的方法
2020/05/21 HTML / CSS
Armor Lux法国官方网站:水手服装、成衣和内衣
2020/05/26 全球购物
教育学专业实习生的自我鉴定
2013/11/26 职场文书
中班上学期个人总结
2015/02/12 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python
Pytest中conftest.py的用法
2021/06/27 Python
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技