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加ASP二级域名转向的代码
May 17 Javascript
extjs grid取到数据而不显示的解决
Dec 29 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
Jun 06 Javascript
JS实现控制文本框的内容
Jul 10 Javascript
Angular 4.x中表单Reactive Forms详解
Apr 25 Javascript
fullpage.js最后一屏滚动方式
Feb 06 Javascript
angular2 组件之间通过service互相传递的实例
Sep 30 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
Jan 09 Javascript
通过JavaScript下载文件到本地的方法(单文件)
Mar 17 Javascript
JS异步处理的进化史深入讲解
Aug 25 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
Dec 06 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
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
PHP中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
js/html光标定位的实现代码
2013/09/23 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
2016/05/23 Javascript
vue2.0使用swiper组件实现轮播效果
2017/11/27 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
jQuery实现增删改查
2020/12/22 jQuery
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
python遍历目录的方法小结
2016/04/28 Python
python邮件发送smtplib使用详解
2020/06/16 Python
解决Pycharm运行时找不到文件的问题
2018/10/29 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
2018/12/03 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
2021/01/23 Python
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
大专生自荐信
2013/10/04 职场文书
写自荐信的七个技巧
2013/10/15 职场文书
活动总结格式
2014/08/30 职场文书
学生会个人总结范文
2015/02/15 职场文书
2015年信访工作总结
2015/04/07 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
Nginx配置Https安全认证的实现
2021/05/26 Servers
python ConfigParser库的使用及遇到的坑
2022/02/12 Python