用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 技巧大全(新手入门篇)
May 12 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
Apr 17 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
Dec 18 Javascript
JavaScript返回网页中锚点数目的方法
Apr 03 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
Sep 06 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
Oct 10 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
Nov 18 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
Oct 24 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
Feb 08 Javascript
vue实现鼠标移过出现下拉二级菜单功能
Dec 12 Javascript
Node.js API详解之 util模块用法实例分析
May 09 Javascript
vue select 获取value和lable操作
Aug 28 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中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
微信小程序 商城开发(ecshop )简单实例
2017/04/07 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
[43:18]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
[54:10]完美世界DOTA2联赛PWL S2 Magma vs FTD 第二场 11.29
2020/12/03 DOTA
Python脚本实现12306火车票查询系统
2016/09/30 Python
Python中类型检查的详细介绍
2017/02/13 Python
详解python之配置日志的几种方式
2017/05/22 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
对Python中的@classmethod用法详解
2018/04/21 Python
python版百度语音识别功能
2019/07/09 Python
50行Python代码获取高考志愿信息的实现方法
2019/07/23 Python
基于Python实现扑克牌面试题
2019/12/11 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
python em算法的实现
2020/10/03 Python
python pymysql库的常用操作
2020/10/16 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
森海塞尔美国官网:Sennheiser耳机与耳麦
2017/07/19 全球购物
跳蚤市场口号
2014/06/13 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python