js实现轮播图(点击小图片切换大图片+自动切换)

实现效果如下:

点击小图切换大图和轮播标题,点击左右按钮大小图和轮播标题切换,鼠标进入清除定时器,鼠标移出恢复轮播

html代码如下:

<div class="switch fl" id="jsSwitch"><div class="switch-bottom"><div class="switch-l" ><img class="switch-img" id="jsSwitchL" src="data:images/lunbo-left.png" alt=""></div><ul class="switch-list" id="jsSwitchList"><li class="switch-item active"><img class="switch-min" src="data:images/lunbo-1-min.png "></li><li class="switch-item"><img class="switch-min" src="data:images/lunbo-2.png"></li><li class="switch-item"><img class="switch-min" src="data:images/lunbo-3.png"></li><li class="switch-item"><img class="switch-min" src="data:images/lunbo-4.png"></li><li class="switch-item"><img class="switch-min" src="data:images/lunbo-5.png"></li></ul><div class="switch-r fr" ><img class="switch-img" id="jsSwitchR" src="data:images/lunbo-right.png"></img></div></div><div class="switch-title"><p class="switch-info" id="jsSwitchInfo">北京市人民检察院第十五次代表大会召开</p></div></div>

关键部分,js代码:

var num = 0;
var arrUrl = ['images/lunbo-1.png', 'images/lunbo-2-max.png', 'images/lunbo-3-max.png', 'images/lunbo-4-max.png', 'images/lunbo-5-max.png'];
var img = document.getElementById('jsSwitch');
var li = document.getElementById('jsSwitchList').children;
var left = document.getElementById('jsSwitchL');
var right = document.getElementById('jsSwitchR');
var info = document.getElementById('jsSwitchInfo');
var timer = null;//左右按钮
left.onclick = function(){num--;if (num == -1) {num = arrUrl.length - 1;}changeImg();
}
right.onclick = function(){num++;if (num == arrUrl.length) {num =  0;}changeImg();
}setTimeout(autoplay(),1000);//鼠标进入清除定时器,鼠标离开恢复
img.onmouseover = function(ev){clearInterval(timer);
};
img.onmouseout = autoplay;//点击小图片 换大图片
for (var i = 0; i < li.length; i++){li[i].index = i;li[i].onclick = function (ev) {num = this.index;changeImg();}
}//图片切换
function changeImg() {for (var i = 0; i < li.length; i++) {//判断当前li是否包含active类if(li[i].classList.contains('active')){li[i].classList.remove('active');}}//修改小图背景li[num].classList.add('active');//修改大图var currentImg = arrUrl[num];img.style.background = "url("+currentImg+") no-repeat center";//修改轮播标题info.innerText = arrInfo[num];
}
//定时器
function autoplay() {timer = setInterval(function () {num++;num %= arrUrl.length;changeImg();},2000);
}

以下是轮播全部代码,加上css代码,如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>body,html {width: 100%;height: 100%;}*{margin: 0;padding: 0;font-family: "microsoft yahei";font-weight: normal;}ol, ul, li {list-style: none;}a {text-decoration: none;color: #fff;}img {display: block;border: none;}.fl {float: left;}.fr {float: right;}.switch {position: absolute;width: 566px;height: 302px;left: -283px;margin-top: 100px;margin-left: 50%;background: url(images/lunbo-1.png) no-repeat;background-size: 566px 302px;}.switch-bottom {position: absolute;bottom: 0;width: 100%;height: 66px;background: rgba(0,0,0,0.65);}.switch-l,.switch-r {width: 45px;height: 66px;display: table-cell;vertical-align: middle;}.switch-r {margin-top: -46px;}.switch-img {margin-left: 16px;cursor: pointer;}.switch-img {margin-left: 10px;cursor: pointer;}.switch-list {float: left;width: 475px;height: 66px;margin-top: -66px;margin-left: 45px;}.switch-item {float: left;width: 95px;height: 66px;}.active {background-color: #fff;}.switch-min {margin: 5px;cursor: pointer;}.switch-title {position: absolute;bottom: 66px;width: 100%;height: 36px;background: rgba(0,0,0,0.4);}.switch-info {margin-top: 10px;margin-left: 8px;font-size: 16px;color: #fff;}</style>
</head>
<body><div class="switch fl" id="jsSwitch"><div class="switch-bottom"><div class="switch-l" ><img class="switch-img" id="jsSwitchL" src="data:images/lunbo-left.png" alt=""></div><ul class="switch-list" id="jsSwitchList"><li class="switch-item active"><img class="switch-min" src="data:images/lunbo-1-min.png "></li><li class="switch-item"><img class="switch-min" src="data:images/lunbo-2.png"></li><li class="switch-item"><img class="switch-min" src="data:images/lunbo-3.png"></li><li class="switch-item"><img class="switch-min" src="data:images/lunbo-4.png"></li><li class="switch-item"><img class="switch-min" src="data:images/lunbo-5.png"></li></ul><div class="switch-r fr" ><img class="switch-img" id="jsSwitchR" src="data:images/lunbo-right.png"></img></div></div><div class="switch-title"><p class="switch-info" id="jsSwitchInfo">北京市人民检察院第十五次代表大会召开</p></div></div><script src="jQuery.v1.11.1.min.js"></script><script>var num = 0;var arrUrl = ['images/lunbo-1.png', 'images/lunbo-2-max.png', 'images/lunbo-3-max.png', 'images/lunbo-4-max.png', 'images/lunbo-5-max.png'];var arrInfo = ['北京市人民检察院第十五次代表大会召开','北京市人民检察院','北京市人民会召开','十五次代表大会召开','北京市人民大会召开']var img = document.getElementById('jsSwitch');var li = document.getElementById('jsSwitchList').children;var left = document.getElementById('jsSwitchL');var right = document.getElementById('jsSwitchR');var info = document.getElementById('jsSwitchInfo');var timer = null;//左右按钮left.onclick = function(){num--;if (num == -1) {num = arrUrl.length - 1;}changeImg();}right.onclick = function(){num++;if (num == arrUrl.length) {num =  0;}changeImg();}setTimeout(autoplay(),1000);//鼠标进入清除定时器,鼠标离开恢复img.onmouseover = function(ev){clearInterval(timer);};img.onmouseout = autoplay;//点击小图片 换大图片for (var i = 0; i < li.length; i++){li[i].index = i;li[i].onclick = function (ev) {num = this.index;changeImg();}}//图片切换function changeImg() {for (var i = 0; i < li.length; i++) {//判断当前li是否包含active类if(li[i].classList.contains('active')){li[i].classList.remove('active');}}//修改小图背景li[num].classList.add('active');//修改大图var currentImg = arrUrl[num];img.style.background = "url("+currentImg+") no-repeat center";//修改轮播标题info.innerText = arrInfo[num];}//定时器function autoplay() {timer = setInterval(function () {num++;num %= arrUrl.length;changeImg();},2000);}</script>
</body>
</html>

js实现轮播图(点击小图片切换大图片+自动切换)相关推荐

  1. html三张图片自动轮回播放,JS -- 记一种用原生JS 完成轮播图的要领(非无穷轮回不自动切换)...

    完成一个非无穷轮回不自动切换的轮播图 只需要几张图片和两个按钮(简化) HTML部份 两个按钮,几张图片(假如有四张图) 右边按钮 左边按钮 CSS部份 动态增加删除li的class属性(native ...

  2. JS实现轮播图点击切换、按钮切换功能

    JS实现轮播图点击切换.按钮切换功能 前言 轮播图案例 总结 前言 轮播图的案例非常经典,写法也非常多,我在写一个自己用的比较多的写法,帮助大家理解,在网页的设计中,可以直接拿去用(记得换图片路径哦! ...

  3. js 轮播图中点击小圆圈图片跳到指定图片

    html代码(部分) <div class="w"><div class="main"><!--焦点图模块--><di ...

  4. 微信小程序图片放大预览效果的实现,轮播图点击放大预览

    近期很多刚学习小程序的同学,想做哪种图片点击放大,然后可以左右滑动预览的效果.我也特意去研究下,发现直接用微信程序自己的api就可以很方便的实现.今天就来教大家如何实现小程序图片点击放大的效果. 老规 ...

  5. 原生js实现轮播图——小肉包

    使用原生js实现轮播图--小肉包 今天分享一个使用原生JS实现轮播图的案例,并且配上比较详细的过程讲解,欢迎小伙伴的浏览和批评指正.静态效果图如下: 核心思想 将一些图片在一行中平铺,然后计算偏移量再 ...

  6. js轮播图(点击图片切换 定时器效果)

    轮播效果:点击上一页,下一页切换图片,设置定时器每过两秒进行自动切换 不说别的直接上代码 <!DOCTYPE html> <html> <head><titl ...

  7. 使用原生js将轮播图组件化

    代码地址如下: http://www.demodashi.com/demo/11316.html   这是一个轮播图组件,这里是代码地址,需要传入容器的id和图片地址,支持Internet Explo ...

  8. 轮播图、阅读注册协议、网页时钟、随机点名、小米搜索框、轮播图点击切换——web APIs练习

    目录 一.获取元素(DOM) 1. 随机轮播图案例 2. 阅读注册协议(定时器间歇函数的应用) 3. 轮播图定时器版 4. 网页时钟 二.事件基础(DOM) 1. 随机点名案例 2. 轮播图点击切换( ...

  9. 利用js实现轮播图(上一张,下一张,选取第几张,动画等)

    今天来说一下利用js实现轮播图效果 思路 1.首先我们要把需要用到的元素获取过来 <div class="all" id='box'><div class=&qu ...

最新文章

  1. [教程] MacBook Pro 开机密码忘记解决方法
  2. [蓝桥杯][基础练习VIP]分解质因数
  3. CentOS 6.5 安装配置Tomcat7服务器
  4. 平均15-16薪,汇量科技2021届秋招正式启动!
  5. 使用python连接kafka
  6. HDU2842之斐波那契亚数列变形,动态规划
  7. IO流-打印流 PrintStream
  8. java 代码走查_Java代码走查具体考察点
  9. 基于JS和Canvas的小球碰撞动画演示
  10. CSS3实现八方向云台控制器器样式
  11. 详细介绍SWFUpload
  12. c语言pow函数原型_C语言pow函数
  13. Multisim仿真—恒流源电路(二)
  14. Tivoli Storage Manager安装配置
  15. (转)来自一位作业辅导老师的经验分享
  16. python绘制图形沙漏_论计时沙漏对于学习python的重要性
  17. android收集备忘录恢复工具,备忘录不小心删了怎么恢复?专业恢复工具分享
  18. 热点的ap频段哪个快_AP频段2.4和5.0哪个好?有什么区别?
  19. UniApp 本地物资管理出入库系统
  20. 关于JSCH使用自义定连接池说明

热门文章

  1. 原神3D卡通动漫二次元角色模型Blender已绑骨骼
  2. 在github的简介readme中添加演示gif,附带gif制作工具
  3. PL/SQL Developer将大小写转换图标定制到工具栏
  4. 苹果屏幕使用时间怎么设置_我和iOS屏幕使用时间的斗争史
  5. 手机照片怎么降噪?能提高图片分辨率的软件有哪些?
  6. C语言笔记之个税计算
  7. solr常用查询参数意义及其简单用法
  8. 874复习第十一天-写入文件
  9. 大型门户网站密码强度检验---强弱判断实施html代码
  10. GitHub Desktop + 码云,基友搭配体验翻倍!