JS轮播图实现简单代码


Posted in Javascript onFebruary 19, 2021

本文实例为大家分享了js轮播图实现代码,供大家参考,具体内容如下

思路:

1、首先要有个盛放图片的容器,设置为单幅图片的宽高,且overflow:hidden,这样保证每次可以只显示一个图片
2、Container内有个放图片的list进行position的定位 ,其中的图片采用float的方式,同时当图片进行轮播时,改变list的Left值使得其显示的图片发生变化。
3、图片的轮播使用定时器,通过定时器改变list的Left值是的图片循环展示
4、当鼠标滑动到图片上时,清除定时器,图片停止轮播,当鼠标移出时继续进行轮播
5、图片上有一组小圆点用于与当前显示的图片相对应,同时可以通过点击的方式查看对应的图片
6、图片可以通过点击进行左右滑动显示

代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>轮播图</title>
 <style type="text/css">
 .container{
 margin:0 auto;
 width:600px;
 height:400px;
 position: relative;
 overflow: hidden;
 border:4px solid gray;
 box-shadow: 3px 3px 5px gray;
 border-radius:10px;
 }
 .list{
 width:4200px;
 height:400px;
 position: absolute;
 top:0px;
 }
 img{
 float:left;
 width:600px;
 height:400px;
 }
 .dots{
 position: absolute;
 left:40%;
 bottom:30px;
 list-style: none;
 }
 .dots li{
 float:left;
 width:8px;
 height:8px;
 border-radius: 50%;
 background: gray;
 margin-left:5px
 }
 .dots .active{
 background: white;
 }
 .pre,.next{
 position: absolute;
 top:40%;
 font-size:40px;
 color:white;
 text-align:center;
 background: rgba(128,128,128,0.5);
 /* display:none;*/
 }
 .pre{
 left:30px;
 }
 .next{
 right:30px;
 }
 </style>
</head>
<body>
 <div class="container">
 <div class="list" style=" left:-600px;">
 <img src="img/5.jpg">
 <img src="img/1.jpg">
 <img src="img/2.jpg">
 <img src="img/3.jpg">
 <img src="img/4.jpg">
 <img src="img/5.jpg">
 <img src="img/1.jpg">
 </div>
 <ul class="dots">
 <li index=1 class="active dot"></li>
 <li index=2 class="dot"></li>
 <li index=3 class="dot"></li>
 <li index=4 class="dot"></li>
 <li index=5 class="dot"></li>
 </ul>
 <div class="pre"><</div>
 <div class="next">></div>
 </div>
<script type="text/javascript">
 var index=1,timer;
 function init(){
 eventBind();
 autoPlay();
 }
 init();
 function autoPlay(){
 timer =setInterval(function () {
 animation(-600);
 dotIndex(true);
 },1000)
 }
 function stopAutoPlay() {
 clearInterval(timer);
 }
 function dotIndex(add){
 if(add){
 index++;
 }
 else{
 index--;
 }
 if(index>5){
 index = 1;
 }
 if(index<1){
 index = 5;
 }
 dotActive();
 }
 function dotActive() {
 var dots = document.getElementsByClassName("dot");
 var len = dots.length;
 for(var i=0 ;i<len ;i++){
 dots[i].className = "dot";
 }

 for(var i=0;i<len;i++){
 /*此处可以不用parseInt,当不用全等时*/
 if(index === parseInt(dots[i].getAttribute("index"))){
 dots[i].className = "dot active";
 }
 }
 }
 function eventBind(){
 /*点的点击事件*/
 var dots = document.getElementsByClassName("dot");
 var len = dots.length;
 for(var i=0;i<len;i++){
 (function(j){
 dots[j].onclick = function(e){
 var ind = parseInt(dots[j].getAttribute("index"));
 animation((index - ind)*(-600));/*显示点击的图片*/
 index = ind;
 dotActive();
 }
 })(i)
 }
 /*容器的hover事件*/
 var con = document.getElementsByClassName("container")[0];
 /*鼠标移动到容器上时,停止制动滑动,离开时继续滚动*/
 con.onmouseover = function (e) {
 stopAutoPlay();
 }
 con.onmouseout =function(e){
 autoPlay();
 }
 /*箭头事件的绑定*/
 var pre = document.getElementsByClassName("pre")[0];
 var next = document.getElementsByClassName("next")[0];
 pre.onclick = function (e) {
 dotIndex(false);
 animation(600);
 }
 next.onclick = function (e) {
 dotIndex(true);
 animation(-600);
 }
 }
 function animation(offset){
 var lists = document.getElementsByClassName("list")[0];
 var left = parseInt(lists.style.left.slice(0,lists.style.left.indexOf("p"))) + offset;
 if(left<-3000){
 lists.style.left = "-600px";
 }
 else if(left>-600){
 lists.style.left = "-3000px";
 }
 else{
 lists.style.left = left+"px";
 }
 }

</script>
</body>
</html>

精彩专题分享:jQuery图片轮播 JavaScript图片轮播 Bootstrap图片轮播

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JQuery 实现的自定义对话框
Mar 24 Javascript
jQuery validate 中文API 附validate.js中文api手册
Jul 31 Javascript
JavaScript定义类或函数的几种方式小结
Jan 09 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
Jul 30 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
Aug 24 Javascript
解决JavaScript数字精度丢失问题的方法
Dec 03 Javascript
理解JavaScript表单的基础知识
Jan 25 Javascript
javascript实现滚动效果的数字时钟实例
Jul 21 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
Apr 16 Javascript
微信小程序云开发详细教程
May 16 Javascript
webpack常用构建优化策略小结
Nov 21 Javascript
JS监听Esc 键触发事键
Apr 14 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
Aug 23 #Javascript
JavaScript实现的数字与字符串转换功能示例
Aug 23 #Javascript
最基础的vue.js双向绑定操作
Aug 23 #Javascript
vue组件实现文字居中对齐的方法
Aug 23 #Javascript
React+react-dropzone+node.js实现图片上传的示例代码
Aug 23 #Javascript
深入理解React中何时使用箭头函数
Aug 23 #Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
Aug 23 #jQuery
You might like
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
javascript iframe编程相关代码
2009/12/28 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
2013/01/23 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
2018/08/31 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
原生JS实现留言板功能
2020/02/08 Javascript
简单了解JavaScript作用域
2020/07/31 Javascript
python实现学生信息管理系统
2020/04/05 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
Django给admin添加Action的步骤详解
2019/05/01 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
浅谈PyTorch中in-place operation的含义
2020/06/27 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
2014年计算机专业个人自我评价
2014/01/19 职场文书
生日主持词
2014/03/20 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
队列队形口号
2015/12/25 职场文书