js实现图片轮播
来源:互联网 发布:网络营销模拟软件 编辑:程序博客网 时间:2024/05/21 01:50
原生js代码实现图片轮播功能
html代码:
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>轮播图</title> <link rel="stylesheet" href="style.css"></head><body> <div class="container"> <div class="wrap" style="left: -600px;"> <img src="./image/img_road.jpg" alt="5"> <img src="./image/img_fjords.jpg" alt="1"> <img src="./image/img_forest.jpg" alt="2"> <img src="./image/img_lights.jpg" alt="3"> <img src="./image/img_mountains.jpg" alt="4"> <img src="./image/img_road.jpg" alt="5"> <img src="./image/img_fjords.jpg" alt="1"> </div> <div class="buttons"> <span class="on"></span> <span></span> <span></span> <span></span> <span></span> </div> <a href="javascript:void (0);" rel="external nofollow" class="arrow arrow_left"><</a> <a href="javascript:void (0);" rel="external nofollow" class="arrow arrow_right">></a> </div> <script src="carousel.js"></script></body></html>
css代码:
* { margin:0; padding:0; } a{ text-decoration: none; } .container { position: relative; width: 600px; height: 400px; margin:100px auto 0 auto; box-shadow: 0 0 5px rgb(180, 182, 180); overflow: hidden; } .container .wrap { position: absolute; width: 4200px; height: 400px; z-index: 1; } .container .wrap img { float: left; width: 600px; height: 400px; } .container .buttons { position: absolute; right: 5px; bottom:30px; width: 120px; height: 10px; z-index: 2; } .container .buttons span { margin-left: 5px; display: inline-block; width: 12px; height: 12px; border-radius: 50%; background-color: rgb(211, 212, 211); text-align: center; color:white; cursor: pointer; } .container .buttons span.on{ background-color: rgb(151, 150, 150); } .container .arrow { position: absolute; top: 40%; color: rgb(179, 182, 179); padding:0px 15px; border-radius: 50%; font-size: 50px; z-index: 2; display: none; } .container .arrow_left { left: 10px; } .container .arrow_right { right: 10px; } .container:hover .arrow { display: block; } .container .arrow:hover { background-color: rgba(0,0,0,0.2); }
js代码:
// 下一页function next_pic(wrap) { index++; if (index > 4) { index = 0; } showCurrentDot(wrap); var newLeft; if (wrap.style.left === "-3600px") { newLeft = -1200; } else { newLeft = parseInt(wrap.style.left) - 600; } wrap.style.left = newLeft + "px";}// 上一页function prev_pic(wrap) { index--; if (index < 0) { index = 4; } showCurrentDot(wrap); var newLeft; if (wrap.style.left === "0px") { newLeft = -2400; } else { newLeft = parseInt(wrap.style.left) + 600; } wrap.style.left = newLeft + "px";}// 定时器 --- 自动播放let timer = null;function autoPlay(wrap) { timer = setInterval(function () { next_pic(wrap); }, 2000);}// 圆点导航let index = 0;let dots = document.getElementsByTagName("span");// 显示当前是第几张图片function showCurrentDot(wrap) { for (var i = 0, len = dots.length; i < len; i++) { dots[i].className = ""; } dots[index].className = "on";}//最开始和最后的照片修整for (var i = 0, len = dots.length; i < len; i++) { (function (i) { let wrap = document.querySelector(".wrap"); dots[i].onclick = function () { var dis = index - i; if (index == 4 && parseInt(wrap.style.left) !== -3000) { dis = dis - 5; } //和使用prev和next相同,在最开始的照片5和最终的照片1在使用时会出现问题,导致符号和位数的出错,做相应地处理即可 if (index == 0 && parseInt(wrap.style.left) !== -600) { dis = 5 + dis; } wrap.style.left = (parseInt(wrap.style.left) + dis * 600) + "px"; index = i; showCurrentDot(wrap); } })(i);}function init() { var wrap = document.querySelector(".wrap"); var next = document.querySelector(".arrow_right"); var prev = document.querySelector(".arrow_left"); // 当鼠标点击上下箭头 next.onclick = function () { next_pic(wrap); } prev.onclick = function () { prev_pic(wrap); } //启动定时器 autoPlay(wrap); // 鼠标滑过 取消自动播放 var container = document.querySelector(".container"); container.onmouseenter = function () { clearInterval(timer); } container.onmouseleave = function () { autoPlay(wrap); }}window.addEventListener('load', init, false);
实现效果如下:
参考:原生js实现轮播图的示例代码
阅读全文
0 0
- js实现图片轮播
- js实现图片轮播
- js实现图片轮播
- js实现图片轮播
- js实现图片轮播
- js实现图片轮播
- js实现图片轮播
- js实现图片轮播效果
- JS图片轮播切换效果实现
- 用JS实现图片轮播
- JS实现图片轮播效果
- js实现图片轮播效果
- js实现图片轮播效果
- js实现图片左右移动轮播
- JS实现图片轮播原理
- js实现图片切换与轮播
- js实现的图片轮播
- JS实现图片动态轮播效果
- Java面试---Spring框架
- 枚举的主流使用方式
- jQuery 源码学习(一)jQuery.extend()
- Android开发之线程池使用总结
- Java过滤器(Filter)的工作原理和代码演示
- js实现图片轮播
- Composer使用总结
- 2017能源互联网和智慧能源产业领域唯一专业博览会
- jQuery(document).ready(function($) { });的几种表示方法
- java.util包
- 说三件小事
- MongoDB 入门
- 云计算和虚拟化介绍
- 【第七周项目3】负数把正数赶出队列