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 相关文章推荐
javascript concat数组累加 示例
Sep 03 Javascript
js 浏览本地文件夹系统示例代码
Oct 24 Javascript
js检测输入内容全为空格的方法
May 03 Javascript
自己用jQuery写了一个图片的马赛克消失效果
May 04 Javascript
上传图片js判断图片尺寸和格式兼容IE
Sep 01 Javascript
AngularJS 表达式详解及实例代码
Sep 14 Javascript
详解webpack-dev-server的简单使用
Apr 02 Javascript
angularJS1 url中携带参数的获取方法
Oct 09 Javascript
layui数据表格跨行自动合并的例子
Sep 02 Javascript
JavaScript Window浏览器对象模型原理解析
May 30 Javascript
angular中的post请求处理示例详解
Jun 30 Javascript
Vue filter 过滤器、以及在table中的使用介绍
Sep 07 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
Windows下PHP5和Apache的安装与配置
2006/09/05 PHP
PHP中上传大体积文件时需要的设置
2006/10/09 PHP
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
PHP获取一段文本显示点阵宽度和高度的方法
2015/03/12 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
PHP自定义多进制的方法
2016/11/03 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
jquery对表单操作2
2011/04/06 Javascript
js window.print实现打印特定控件或内容
2013/09/16 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
2015/12/06 Javascript
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
Angular6封装http请求的步骤详解
2018/08/13 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
python方法生成txt标签文件的实例代码
2018/05/10 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
Django给admin添加Action的步骤详解
2019/05/01 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
python暴力解压rar加密文件过程详解
2019/07/05 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
python 使用openpyxl读取excel数据
2021/02/18 Python
写好自荐信要注意的问题
2013/11/10 职场文书
超市业务员岗位职责
2013/12/05 职场文书
办公室前台的岗位职责
2013/12/20 职场文书
七年级政治教学反思
2014/02/03 职场文书
班级学习计划书
2014/04/27 职场文书
售后客服个人自我评价
2014/09/14 职场文书
公司授权委托书范本
2014/09/18 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
借款民事起诉状范文
2015/05/19 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技