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 相关文章推荐
jscript之Read an Excel Spreadsheet
Jun 13 Javascript
Jquery 插件开发笔记整理
Jan 17 Javascript
JS Range HTML文档/文字内容选中、库及应用介绍
May 12 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
Nov 19 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
Sep 02 Javascript
原生的html元素选择器类似jquery选择器
Oct 15 Javascript
JavaScript中Function详解
Feb 27 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
May 28 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
Oct 29 Javascript
AngularJS基础 ng-mouseleave 指令详解
Aug 02 Javascript
Angular5给组件本身的标签添加样式class的方法
Apr 07 Javascript
小程序实现图片移动缩放效果
May 26 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
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
php购物车实现方法
2015/01/03 PHP
php实现scws中文分词搜索的方法
2015/12/25 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
Yii2中datetime类的使用
2016/12/17 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
JavaScript转换农历类实现及调用方法
2013/01/27 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
JS实现按钮颜色切换效果
2020/09/05 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
2021/01/12 Vue.js
Python去除列表中重复元素的方法
2015/03/20 Python
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
python实现各进制转换的总结大全
2017/06/18 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
python实现linux下抓包并存库功能
2018/07/18 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
从0到1使用python开发一个半自动答题小程序的实现
2020/05/12 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
触电现场处置方案
2014/05/14 职场文书
计算机系本科生求职信
2014/05/31 职场文书
研究生求职自荐书
2014/06/23 职场文书
贷款承诺书
2015/01/20 职场文书
辅导员学期工作总结
2015/08/14 职场文书
只用Python就可以制作的简单词云
2021/06/07 Python