用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 相关文章推荐
js技巧--转义符&quot;\&quot;的妙用
Jan 09 Javascript
JavaScript中的数组特性介绍
Dec 30 Javascript
js获取微信版本号的方法
May 12 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
Jul 06 Javascript
BootStrap下jQuery自动完成的样式调整
May 30 Javascript
Popup弹出框添加数据实现方法
Oct 27 Javascript
Less 安装及基本用法
May 05 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
Sep 27 Javascript
vue-cli 3.x配置跨域代理的实现方法
Apr 12 Javascript
使用Vue.observable()进行状态管理的实例代码详解
May 26 Javascript
Vuex中的Mutations的具体使用方法
Jun 01 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
Dec 14 Vue.js
用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
《星际争霸重制版》兵种对比图鉴
2020/03/02 星际争霸
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
Yii2.0 RESTful API 基础配置教程详解
2018/12/26 PHP
ext 同步和异步示例代码
2009/09/18 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
模拟select的代码
2011/10/19 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
JavaScript实现一个简易的计算器实例代码
2018/05/10 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
flask框架路由常用定义方式总结
2019/07/23 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
python 5个实用的技巧
2020/09/27 Python
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
《春天来了》教学反思
2014/04/07 职场文书
领导干部对照检查材料
2014/08/24 职场文书
卡特教练观后感
2015/06/08 职场文书
2015年中秋寄语
2015/07/31 职场文书
靠谱准确的求职信
2019/04/02 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书
python中Matplotlib绘制直线的实例代码
2021/07/04 Python