位置: 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(图像可以分成哪些类别?)

  • 微博年度回忆怎么看(微博年度回忆怎么取消)

    微博年度回忆怎么看(微博年度回忆怎么取消)

  • 苹果自动熄灭屏幕设置(苹果自动熄灭屏幕怎么关)

    苹果自动熄灭屏幕设置(苹果自动熄灭屏幕怎么关)

  • 荣耀x10和华为畅享z的区别有哪些(荣耀X10和华为畅享50哪个好)

    荣耀x10和华为畅享z的区别有哪些(荣耀X10和华为畅享50哪个好)

  • 苹果微信怎么变黑色主题(苹果微信怎么变声)

    苹果微信怎么变黑色主题(苹果微信怎么变声)

  • 华为p40 pro+上市时间(华为p40pro上市时间)

    华为p40 pro+上市时间(华为p40pro上市时间)

  • 微信视频声音忽大忽小(微信视频声音忽高忽低)

    微信视频声音忽大忽小(微信视频声音忽高忽低)

  • qq音乐主页隐藏后能看访客吗(qq音乐主页隐藏怎么打开)

    qq音乐主页隐藏后能看访客吗(qq音乐主页隐藏怎么打开)

  • oppo手机智能侧边栏怎么不能使用了(oppo手机智能侧边栏打开了没图标)

    oppo手机智能侧边栏怎么不能使用了(oppo手机智能侧边栏打开了没图标)

  • beats耳机一个响一个不响怎么办(beats耳机一个声大一个声小)

    beats耳机一个响一个不响怎么办(beats耳机一个声大一个声小)

  • 华为预估保修期是什么意思(华为预估保修期和激活时间)

    华为预估保修期是什么意思(华为预估保修期和激活时间)

  • qq扩列老是匹配失败(qq扩列一直显示匹配失败2021)

    qq扩列老是匹配失败(qq扩列一直显示匹配失败2021)

  • 为什么手机耳机插在电脑上没有用(为什么手机耳机孔取消了)

    为什么手机耳机插在电脑上没有用(为什么手机耳机孔取消了)

  • cpu温度90度正常吗(cpu温度90度正常吗怎么解决)

    cpu温度90度正常吗(cpu温度90度正常吗怎么解决)

  • word文档字体怎么竖着排列(word文档字体怎样竖着)

    word文档字体怎么竖着排列(word文档字体怎样竖着)

  • word文档怎么创建稿纸(word文档怎么创建新样式)

    word文档怎么创建稿纸(word文档怎么创建新样式)

  • 怎样把电脑上的歌曲下载到u盘上(怎样把电脑上的微信聊天记录转移到手机上)

    怎样把电脑上的歌曲下载到u盘上(怎样把电脑上的微信聊天记录转移到手机上)

  • Reno Ace怎么设置定时开关机(oppo reno ace屏幕设置)

    Reno Ace怎么设置定时开关机(oppo reno ace屏幕设置)

  • 通常所说的cpu芯片包括(通常所说的cpu芯片包括())

    通常所说的cpu芯片包括(通常所说的cpu芯片包括())

  • 手机号能查抖音账号吗(知道手机号怎么查找抖音)

    手机号能查抖音账号吗(知道手机号怎么查找抖音)

  • 拼多多可以合并订单吗(拼多多可以合并发货吗)

    拼多多可以合并订单吗(拼多多可以合并发货吗)

  • 华为p30视频的时候可以美颜吗(华为p30视频的时钟怎么调)

    华为p30视频的时候可以美颜吗(华为p30视频的时钟怎么调)

  • 网站域名是网址吗(网站域名是指什么意思)

    网站域名是网址吗(网站域名是指什么意思)

  • 房产税的计税依据是含税还是不含税
  • 差旅费津贴怎么报税
  • 减去税率怎么算
  • 存货跌价准备在财务报表哪里看
  • 为什么要结转发出材料成本差异
  • 处置无形资产取得的收入计入
  • 增值税一般纳税人证明怎么查询
  • 工业企业生产成本包括哪些
  • 收入转本年利润的会计分录
  • 土地转让契税税率2020税率表
  • 无形资产摊销怎么计算
  • 私立医院收到投诉信
  • 多计提的费用如何做分录
  • 货款为现金如何做记账账款凭证?
  • 低值易耗品报废时
  • 汽车违章罚款在哪里缴纳
  • 不属于抵扣范围的是什么
  • 在建期间费用怎么处理?
  • 外地派人来出差怎么报备
  • 承兑汇票章不清晰 情况说明
  • 买一赠一怎么确定真假
  • 收到认证费用计入什么科目
  • 购买少数股东权益的会计处理
  • 物业公司收空调费怎么交税
  • 国外的发票怎么在中国报销
  • 公益性捐赠所得税税前扣除标准
  • 预提费用年终有余额怎么办
  • 无线路由器指示灯怎么才是正常
  • php到底是什么
  • 苹果电脑录屏带麦克风
  • 最常用的成本核算方法表
  • 集团公司交税怎么交?
  • 营改增后企业一般纳税人认定标准为
  • 事业单位接受捐赠固定资产入账
  • nerf 怎么瞄准
  • 准公益性企业
  • 房屋租赁费发票备注栏需要写什么?
  • 以前年度损益在报表哪里体现
  • vue的常见面试题
  • css添加边框阴影 立体效果
  • 季度盈利弥补亏损利润表
  • 公司代扣社保费怎么做账
  • 小微企业所得税如何填报
  • 印花税对什么征税
  • python线程间通信的几种方法
  • 减免税款的会计分录当月做吗
  • 科技公司技术服务费税率
  • 计提工资附什么单据
  • 发行的企业债券属于所有者权益吗
  • 如何完成资产负债表
  • 店面收回转让费怎么办
  • 公司的零星开支怎么做账
  • 处置无形资产属于投资活动吗
  • 跨年度冲收入,冲成本分录如何做?
  • 在建的工程收到的发票
  • 报废周转材料应负担的成本差异
  • 长期挂账的往来款税务处理
  • 考试报名费都去哪了
  • 材料采购是什么会计要素
  • 个人所得税个人申报和公司申报区别
  • 新会计准则经营租赁
  • 农产品进项税额会计分录
  • 反记账是什么
  • 物流运输公司的运营盈利模式
  • win7系统怎么更新到win10
  • 深入理解linux内核架构
  • centos 查看服务
  • wbs是什么文件
  • win7无法登录qq
  • xp如何禁用445
  • 为wdcp面板的lnmp服务器添加ipv6支持的方法介绍
  • 新闻客户端手机版下载
  • awk实现wc功能
  • python中判断数值类型
  • node用mongodb还是mysql好
  • shell脚本实例精讲
  • 减免所得税额怎样计算
  • 投资联营的房产税纳税人是谁
  • 税源管理科是干什么的工作
  • 国家土地征收管理办法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设