JS轮播图的实现方法2


Posted in Javascript onAugust 25, 2020

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

需求:

自动轮播,鼠标移入轮播停止、移出继续,小圆点点击切图,左右箭头切图

效果图:

![轮播图]

JS轮播图的实现方法2

思路:

JS轮播图的实现方法2

将所有需要轮播的图片横向排列,可视区大小设置为只能显示一张图片,给容器设置移出隐藏后,可视区之外的部分被隐藏,这样我们就只能看见一张图片。
轮播实现是改变整个图片画幅的left值或者margin-left 值,当点击时移动整个画幅单个图片的宽度即可实现滚动到下一张。
后面功能实现顺序依旧是写法一里的思路。

HTML部分:

<div id="banner">
 <div class="w">
<!-- 左右箭头-->
 <span class="iconfont icon-zuojiantou"></span>
 <span class="iconfont icon-youjiantou"></span>
<!-- 轮播图-->
 <ul >
 <li><img src="img/1.jpg" alt=""></li>
 <li><img src="img/2.jpg" alt=""></li>
 <li><img src="img/3.jpg" alt=""></li>
 </ul>
<!-- /小圆点-->
 <ol id="circleContainer">

 </ol>
 </div>
</div>

CSS部分:

<style>
 *{
 margin: 0;
 padding: 0;
 list-style: none;
 }
 .w {
 width: 1000px;
 height: 600px;
 margin: 100px auto 0;
 position: relative;
 overflow: hidden;
 }
 ul {
 width: 1000%;
 transition: all .5s ease-in-out;
 }
 ul li {
 float: left;
 width: 1000px;
 }
 ul li img {
 width: 100%;
 height: 600px;
 }
 .iconfont {
 color: white;
 position: absolute;
 font-size: 30px;
 top: calc(50% - 15px);
 background-color: rgba(216, 216, 216, 0.23);
 border-top-right-radius: 50%;
 border-bottom-right-radius: 50%;
 cursor: pointer;
 }
 .iconfont:hover {
 color: palegreen;
 }
 .icon-zuojiantou {
 left: 0;
 }
 .icon-youjiantou {
 right: 0;
 }
 #circleContainer {
 position: absolute;
 bottom: 10px;
 left: calc(50% - 30px);
 }
 #circleContainer li {
 display: inline-block;
 width: 20px;
 height: 20px;
 border-radius: 50%;
 background-color: white;
 margin-right: 5px;
 }
 #circleContainer .change {
 background-color: palegreen;
 }
</style>

JS部分:

<script>
 let timer = setInterval(function () {
 arrow_r.onclick();
 },2000);
 let w = document.querySelector(".w");
 w.addEventListener("mouseenter",function () {
 clearInterval(timer);
 });
 w.addEventListener("mouseleave",function () {
 clearInterval(timer);
 timer = setInterval(function () {
 arrow_r.onclick();
 },2000);
 });
 //获取元素
 let ul = document.querySelector("ul");
 let ol = document.querySelector("#circleContainer");
 let arrow_r = document.querySelector(".icon-youjiantou");
 let arrow_l = document.querySelector(".icon-zuojiantou");
 let ImgWidth = ul.children[0].offsetWidth;
 let location_i = 0 ;
 // 创建小圆点 动态生成小圆点,图片增加时小圆点也随之增加
 for (let i = 0; i<ul.children.length;i++){
 let li = document.createElement("li");
 li.setAttribute("index",i);
 li.addEventListener("click",function () {
 let index = this.getAttribute("index");
 move(ul,index);
 location_i = index ;
 });
 ol.appendChild(li);
 }

 let liclone = ul.children[0].cloneNode(true);
 ul.appendChild(liclone);
 // 轮播函数
 function move(targetObj,n) {
 if (n === targetObj.children.length ) {
 targetObj.style.marginLeft = "0px";
 n = 0;
 }
 targetObj.style.marginLeft = -n * ImgWidth +"px";
 for (let i =0 ;i<ol.children.length;i++){
 ol.children[i].className = "";
 }
 n === 3 ? ol.children[0].className = "change": ol.children[n].className = "change";

 }
 ol.children[0].className = "change";
 // 右箭头点击
 arrow_r.onclick = function () {
 if (location_i === 3) {
 location_i = 0 ;
 ul.style.marginLeft = "0px" ;
 }
 location_i++;
 move(ul,location_i);

 };
 // 左箭头点击
 arrow_l.addEventListener("click",function () {
 if (location_i == 0) {
 location_i = ul.children.length -1 ;
 }
 location_i--;
 move(ul,location_i);
 })
</script>

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

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

Javascript 相关文章推荐
js时间戳格式化成日期格式的多种方法
Nov 11 Javascript
jquery自动切换tabs选项卡的具体实现
Dec 24 Javascript
jQuery中操控hidden、disable等无值属性的方法
Jan 06 Javascript
js实现选中复选框文字变色的方法
Aug 14 Javascript
jquery图片轮播特效代码分享
Apr 20 Javascript
JS延时提示框实现方法详解
Nov 26 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
Dec 10 Javascript
JavaScript中两个字符串的匹配
Jun 08 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
Mar 08 Javascript
JavaScript 过滤关键字
Mar 20 Javascript
spring+angular实现导出excel的实现代码
Feb 27 Javascript
如何手写简易的 Vue Router
Oct 10 Javascript
JS轮播图的实现方法
Aug 24 #Javascript
js 函数性能比较方法
Aug 24 #Javascript
JavaScript实现简单验证码
Aug 24 #Javascript
JavaScript经典案例之简易计算器
Aug 24 #Javascript
原生js实现拖拽移动与缩放效果
Aug 24 #Javascript
JavaScript实现拖拽和缩放效果
Aug 24 #Javascript
Jquery 获取相同NAME 或者id删除行操作
Aug 24 #jQuery
You might like
关于php curl获取301或302转向的网址问题的解决方法
2011/06/02 PHP
ThinkPHP模板比较标签用法详解
2014/06/30 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
javascript操作css属性
2013/12/30 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
JS与HTML结合使用marquee标签实现无缝滚动效果代码
2016/07/05 Javascript
Vue.js使用v-show和v-if的注意事项
2016/12/13 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
Node在Controller层进行数据校验的过程详解
2020/08/28 Javascript
解决vue初始化项目一直停在downloading template的问题
2020/11/09 Javascript
js实现碰撞检测
2021/01/29 Javascript
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
2018/12/05 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
使用python批量转换文件编码为UTF-8的实现
2020/04/03 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
CSS3制作苹果风格键盘特效
2015/02/26 HTML / CSS
劳资专员岗位职责
2013/12/27 职场文书
给酒店员工的表扬信
2014/01/11 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang
详解PHP用mb_string处理windows中文字符
2021/05/26 PHP