位置: IT常识 - 正文

JS实战——轮播图(js轮播图实现思路)

编辑:rootadmin
JS实战——轮播图

目录

一、轮播图介绍

 二、原理

三、轮播图基本htm布局

四、轮播图CSS布局

五、轮播图JS布局

六、轮播图效果


一、轮播图介绍

推荐整理分享JS实战——轮播图(js轮播图实现思路),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js轮播图菜鸟教程,js中轮播图应该怎么写,js怎么实现轮播,js轮播图视频教程,js简单轮播,js轮播图视频教程,js轮播图实现简单代码,js实现轮播图效果,内容如对您有帮助,希望把文章链接给更多的朋友!

       现在我们在很多网站上都能看到轮播图,像某东、某宝、某猫等等大小型网站上都有应用。下面就是某宝上的轮播图样式。

 二、原理

  将一些图片在一行中平铺,然后计算偏移量再利用定时器实现定时轮播。

三、轮播图基本htm布局

       主要就是创建一个大盒子里面存放轮播图的图片标签,cicle标签下的div主要是为后期存放实现图片轮播下面的小圆点。

<div class="banner"><ul class="imgList"><li><img src="../1.png" alt=""></li><li><img src="../2.jpg" alt=""></li><li><img src="../3.jpg" alt=""></li><li><img src="../4.jpg" alt=""></li></ul><div class="circle"> </div></div>四、轮播图CSS布局JS实战——轮播图(js轮播图实现思路)

        定义全局,消除页面对我们创建CSS布局时的影响。布局全局样式,消除li标签自带小黑点使用定位消除高度塌陷。

* {margin: 0px;padding: 0px;}.banner {width: 600px;margin: auto;border: 10px solid greenyellow;height: 350px;position: relative;overflow: hidden;}.imgList {list-style: none;/* width: 2480px; */position: absolute;/* left:-620px; */}

           设置图片大小,让图片在我们之前设置的边框里。

.imgList img {width: 600px;height: 350px;}.imgList li {float: left;margin-right: 20px;}

        定义a标签,生成点击小圆点,产生点击前后效果对比样式。

.circle {position: absolute;bottom: 15px;left: 50%;transform: translateX(-50%);} .circle a {width: 15px;height: 15px;background: yellow;display: block;border-radius: 50%;opacity: .5;float: left;margin-right: 5px;cursor: pointer;}.circle a.hover {background: black;opacity: .8;}五、轮播图JS布局

         首先先获取元素,给父类设置整个图片的宽度,并利用设置好的CSS样式创建底部小圆点。

window.onload = function () {var imgList = document.querySelector('.imgList');var circle = document.querySelector('.circle');var thisIndex = 0;var imgListLi = imgList.children;var circleA = circle.children;var flag = true;imgList.style.width = imgList.children.length * 620 + 'px';for (var i = 0; i < imgList.children.length; i++) {var aNode = document.createElement('a');aNode.setAttribute('index', i);//设置自定义属性if (i == 0) {aNode.className = 'hover';}circle.appendChild(aNode);}

         设置监听器为点击按钮实现图片的移动,并用获取元素的方法解决点击圆点附近区域跳转的bug事件。

circle.addEventListener('click', function (e) {if (flag) {flag = false;// console.log(e.target);if (e.target.nodeName != 'A') {return false;}thisIndex = e.target.getAttribute('index');// imgList.style.left = -thisIndex * 620 + 'px';slow(imgList, -thisIndex * 620, function () {flag = true;});circleChange();}})

         利用函数和节流阀解决图片在跳转到最后一张图片无法返回第一张图片的问题,节流阀用来解决图片移动出现左右抖动横跳现象,并设置了图片自动播放功能。

function antoChange() {setInterval(function () {if (flag) {flag = false;if (thisIndex >= circleA.length) {thisIndex = 0;}slow(imgList, -thisIndex * 620, function () {flag = true;});circleChange();thisIndex++;}}, 3000);}

        剩下主要用来解决图片左右移动速度和图片移动同时图片下方小圆点同步移动,以及移动过程中小圆点样式的变化。

function circleChange() {for (var i = 0; i < circleA.length; i++) {circleA[i].className = '';}circleA[thisIndex].className = 'hover';}function slow(obj, target, callback) {obj.myInter = setInterval(function () {var offsetLeft = obj.offsetLeft;var num = (target - offsetLeft) / 10;num > 0 ? num = Math.ceil(num) : num = Math.floor(num);if (offsetLeft == target) {clearInterval(obj.myInter);callback && callback();} else {obj.style.left = offsetLeft + num + 'px';}}, 10)}antoChange();}六、轮播图效果

七、完整代码<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>轮播图</title><!-- <link rel="stylesheet" href="style.css"> --><style>* {margin: 0px;padding: 0px;}.banner {width: 600px;margin: auto;border: 10px solid greenyellow;height: 350px;position: relative;overflow: hidden;}.imgList {list-style: none;/* width: 2480px; */position: absolute;/* left:-620px; */}.imgList img {width: 600px;height: 350px;}.imgList li {float: left;margin-right: 20px;}.circle {position: absolute;bottom: 15px;left: 50%;transform: translateX(-50%);}.circle a {width: 15px;height: 15px;background: yellow;display: block;border-radius: 50%;opacity: .5;float: left;margin-right: 5px;cursor: pointer;}.circle a.hover {background: black;opacity: .8;}</style></head><body><div class="banner"><ul class="imgList"><li><img src="../1.png" alt=""></li><li><img src="../2.jpg" alt=""></li><li><img src="../3.jpg" alt=""></li><li><img src="../4.jpg" alt=""></li></ul><div class="circle"><!-- <a href=""></a> <a href=""></a> <a href=""></a> <a href=""></a> --></div></div><script>window.onload = function () {var imgList = document.querySelector('.imgList');var circle = document.querySelector('.circle');var thisIndex = 0;var imgListLi = imgList.children;var circleA = circle.children;var flag = true;imgList.style.width = imgList.children.length * 620 + 'px';for (var i = 0; i < imgList.children.length; i++) {var aNode = document.createElement('a');aNode.setAttribute('index', i);//设置自定义属性if (i == 0) {aNode.className = 'hover';}circle.appendChild(aNode);}circle.addEventListener('click', function (e) {if (flag) {flag = false;// console.log(e.target);if (e.target.nodeName != 'A') {return false;}thisIndex = e.target.getAttribute('index');// imgList.style.left = -thisIndex * 620 + 'px';slow(imgList, -thisIndex * 620, function () {flag = true;});circleChange();}})function antoChange() {setInterval(function () {if (flag) {flag = false;if (thisIndex >= circleA.length) {thisIndex = 0;}slow(imgList, -thisIndex * 620, function () {flag = true;});circleChange();thisIndex++;}}, 3000);}function circleChange() {for (var i = 0; i < circleA.length; i++) {circleA[i].className = '';}circleA[thisIndex].className = 'hover';}function slow(obj, target, callback) {obj.myInter = setInterval(function () {var offsetLeft = obj.offsetLeft;var num = (target - offsetLeft) / 10;num > 0 ? num = Math.ceil(num) : num = Math.floor(num);if (offsetLeft == target) {clearInterval(obj.myInter);callback && callback();} else {obj.style.left = offsetLeft + num + 'px';}}, 10)}antoChange();}</script></body></html>
本文链接地址:https://www.jiuchutong.com/zhishi/299004.html 转载请保留说明!

上一篇:基于深度学习的图像超分辨率——综述

下一篇:聊聊关于图像分割的损失函数 - BCEWithLogitsLoss(图像可以分成哪些类别?)

  • 简谈如何做好电商客户关系管理(如何做好电脑)

    简谈如何做好电商客户关系管理(如何做好电脑)

  • 钉钉直播开小窗播放会算时间吗(钉钉直播开小窗口刷抖音算时间吗)

    钉钉直播开小窗播放会算时间吗(钉钉直播开小窗口刷抖音算时间吗)

  • word怎么分栏(word怎么分栏打印)

    word怎么分栏(word怎么分栏打印)

  • 支付宝付款码界面黑色(支付宝付款码界面颜色怎么设置)

    支付宝付款码界面黑色(支付宝付款码界面颜色怎么设置)

  • qq邮箱密码在哪里看(QQ邮箱密码在哪设置)

    qq邮箱密码在哪里看(QQ邮箱密码在哪设置)

  • 微信撤回对方能看到吗(对方微信撤回的内容怎么能复原)

    微信撤回对方能看到吗(对方微信撤回的内容怎么能复原)

  • 微信连麦闹钟会响么(微信连麦闹钟会吵到对方吗)

    微信连麦闹钟会响么(微信连麦闹钟会吵到对方吗)

  • se2是双卡双待吗(iphonese2是双卡双待吗)

    se2是双卡双待吗(iphonese2是双卡双待吗)

  • 微信实名不满15天怎么注销(微信实名不满15天怎么注销实名)

    微信实名不满15天怎么注销(微信实名不满15天怎么注销实名)

  • 台式电脑连接不上网络怎么办(台式电脑连接不上wifi怎么解决)

    台式电脑连接不上网络怎么办(台式电脑连接不上wifi怎么解决)

  • 苹果xs关机键是哪个(苹果xs关机键不能关机)

    苹果xs关机键是哪个(苹果xs关机键不能关机)

  • 差评可以改好评吗(差评改好评步骤)

    差评可以改好评吗(差评改好评步骤)

  • 抖音同步到头条是什么意思(抖音同步到头条的作品怎么删除)

    抖音同步到头条是什么意思(抖音同步到头条的作品怎么删除)

  • 小天才z1s有打字功能吗(小天才z1s手表在哪儿设置打字)

    小天才z1s有打字功能吗(小天才z1s手表在哪儿设置打字)

  • vivox30是三星屏幕吗(vivox30是lcd屏吗)

    vivox30是三星屏幕吗(vivox30是lcd屏吗)

  • 荣耀20怎么信任软件(荣耀怎么信任应用)

    荣耀20怎么信任软件(荣耀怎么信任应用)

  • qq群退群别人能看到吗(qq群退群别人能找到我吗)

    qq群退群别人能看到吗(qq群退群别人能找到我吗)

  • 加密dns需要打开吗(加密dns打开还是关闭好)

    加密dns需要打开吗(加密dns打开还是关闭好)

  • 秋葵视频怎么下载(秋葵视频怎么下载?知道)

    秋葵视频怎么下载(秋葵视频怎么下载?知道)

  • f1.7和f2.0光圈哪个大(f17和f20光圈哪个好)

    f1.7和f2.0光圈哪个大(f17和f20光圈哪个好)

  • vivoy85全屏怎么设置返回键(vivo手机怎么设置全屏)

    vivoy85全屏怎么设置返回键(vivo手机怎么设置全屏)

  • win7iso文件怎么安装系统(win7电脑iso文件怎么打开)

    win7iso文件怎么安装系统(win7电脑iso文件怎么打开)

  • OpenPCDet 训练自己的数据集详细教程!(opencv制作训练数据集)

    OpenPCDet 训练自己的数据集详细教程!(opencv制作训练数据集)

  • Python字典的特点(python字典的特点和用处)

    Python字典的特点(python字典的特点和用处)

  • 自然人税收管理系统残疾人申报
  • 工厂道路设计图
  • 备用金要用发票做账吗
  • 金融债券的利息收入
  • 税金及附加现金流指定
  • 个人所得税年底返税
  • 信息服务费可以计入办公费吗
  • 上一会计年度什么意思
  • 企业所得税减免政策2023
  • 小规模开票给一般纳税人避税合法吗
  • 盘盈资产开具发票是否符合规定
  • 单位装修质保金扣留的会计处理
  • 允许税前扣除的利息支出
  • 发票失控怎么处罚
  • 预计退货的会计分录 东奥
  • 金融保险定义
  • 定期定额个体工商户个人所得税
  • 问10个问题
  • 购物车内广告收入应该怎么缴税?
  • 会计中包装物计入
  • 哪些外籍个人应在中国缴纳个税?
  • 营业执照办下来多久能在网上查到
  • 自己是公司法人可以给自己发工资吗
  • 分红 实缴比例
  • 固定资产抵扣的税率
  • 资本资产定价模型
  • 建材销售公司需要交哪些税
  • 购买增值税专用发票会判刑吗
  • 增值税留抵税额会计科目
  • 收到租金税率
  • linux 操作系统查看
  • 结转已经销售商品成本
  • cmos电池低是什么意思
  • PHP:xml_set_processing_instruction_handler()的用法_XML解析器函数
  • PHP中Http协议post请求参数
  • 如何网络测试
  • pqtray.exe - pqtray 是什么进程 有什么用
  • 土地使用税怎么交税
  • kernl32.dll
  • php播放本地音乐
  • 销货方开具红票,购货方怎么入账
  • 销售退回会计处理与税务处理
  • php修改ip地址
  • 转让存货属于什么收入
  • cp命令复制文件到另一个目录并改名
  • php教程 ftp 函数
  • php不同用户登录不同页面
  • 会计中利得的定义
  • 自由会计服务类工作者
  • phpcms使用教程
  • 红字发票开错可以重开吗
  • 哪些行业不适用税前加计扣除政策
  • 用友T3财务报表没有数据
  • 小微企业确定条件
  • 单位人民币卡账户的资金一律从其基本存款账户转账存入
  • 领用包装物用于包装产品的会计分录
  • 建筑业预交税金会计分录
  • 增值税专用发票和普通发票的区别
  • 代理公司代缴社保违法吗
  • 查账补缴的税的账怎么做
  • 多打的投资款怎么入账
  • 公司为员工购买汽车怎么申报
  • 教育经费支出
  • 多个客户账款明细
  • 库存商品账本填写样本
  • sql server常规错误
  • windows自带安全
  • adb.exe是什么程序
  • win10提示测试模式
  • root linux
  • windowsxp复制粘贴不可用?
  • 2015-04-04---CCAction详解(欠了大家好几天了)
  • 安卓系统滑动设置
  • 漂亮的相片超好看的
  • 判断jquery对象是否存在
  • 南京市税务局举报中心电话
  • 双公开双反馈什么意思
  • 如何挑选烟叶等级
  • 免抵退税办法不得抵扣的进项
  • 季度预缴申报表在哪里查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设