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 相关文章推荐
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
Jun 24 Javascript
控制input输入框中提示信息的显示和隐藏的方法
Feb 12 Javascript
新手快速学习JavaScript免费教程资源汇总
Jun 25 Javascript
微信小程序 用户数据解密详细介绍
Jan 09 Javascript
js实现不提示直接关闭网页窗口
Mar 30 Javascript
浅谈angular.js跨域post解决方案
Aug 30 Javascript
Cpage.js给组件绑定事件的实现代码
Aug 31 Javascript
记React connect的几种写法(小结)
Sep 18 Javascript
你了解vue3.0响应式数据怎么实现吗
Jun 07 Javascript
vue登录页面cookie的使用及页面跳转代码
Jul 10 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
Jul 28 Javascript
JS实现页面侧边栏效果探究
Jan 08 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生成和获取XML格式数据的方法
2016/03/04 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
js的touch事件的实际引用
2014/10/13 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
创建一个类Person的简单实例
2016/05/17 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
jQuery与JavaScript节点创建方法的对比
2016/11/18 Javascript
实例解析Array和String方法
2016/12/14 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
vue-router之nuxt动态路由设置的两种方法小结
2018/09/26 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
全面了解python中的类,对象,方法,属性
2016/09/11 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
python实现将列表中各个值快速赋值给多个变量
2020/04/02 Python
10个示例带你掌握python中的元组
2020/11/23 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
小学生自我评价范例
2013/09/24 职场文书
经济与贸易专业应届生求职信
2013/11/19 职场文书
医校毕业生自我鉴定
2014/01/25 职场文书
生物制药自我鉴定
2014/01/25 职场文书
后勤部经理岗位职责
2014/02/23 职场文书
入职担保书范文
2014/05/21 职场文书
暂住证证明
2015/06/19 职场文书
python实现简单倒计时功能
2021/04/21 Python
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery