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 相关文章推荐
document.all与WEB标准
May 13 Javascript
基于JQuery的列表拖动排序实现代码
Oct 01 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
Aug 31 Javascript
jQuery中的on与bind绑定事件区别实例详解
Feb 28 Javascript
vue如何实现observer和watcher源码解析
Mar 09 Javascript
angularjs路由传值$routeParams详解
Sep 05 Javascript
webpack4.x打包过程详解
Jul 18 Javascript
微信小程序静默登录的实现代码
Jan 08 Javascript
JavaScript代码简化技巧实例解析
Sep 09 Javascript
js通过canvas生成图片缩略图
Oct 02 Javascript
前端vue如何使用高德地图
Nov 05 Javascript
JS代码实现页面切换效果
Jan 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数据流应用的一个简单实例
2012/09/14 PHP
php防止sql注入之过滤分页参数实例
2014/11/03 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
Javascript中innerHTML用法实例分析
2015/01/12 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
将python代码和注释分离的方法
2018/04/21 Python
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
flask session组件的使用示例
2018/12/25 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
Python logging设置和logger解析
2019/08/28 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
Vrbo英国:预订度假屋
2020/08/19 全球购物
某公司的.net工程师面试题笔试题
2013/11/22 面试题
技术总监个人的自我评价范文
2013/12/18 职场文书
总经理文秘岗位职责
2014/02/03 职场文书
幼儿园大班家长评语
2014/04/17 职场文书
邓小平理论心得体会
2014/09/09 职场文书
2014年学校党建工作汇报材料
2014/11/02 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
小升初自荐信范文
2015/03/05 职场文书
学生通报表扬范文
2015/05/04 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书