位置: 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怎么显示分栏符)

  • 华为手机修改时间和日期在哪里(华为手机修改时间格式)

    华为手机修改时间和日期在哪里(华为手机修改时间格式)

  • 微信如何查看自己的年度账单(微信如何查看自己的群聊)

    微信如何查看自己的年度账单(微信如何查看自己的群聊)

  • 红米k30s至尊纪念版是否有超级壁纸(红米k30s至尊纪念版)

    红米k30s至尊纪念版是否有超级壁纸(红米k30s至尊纪念版)

  • 微信群文件在哪找(微信群文件在哪里看到)

    微信群文件在哪找(微信群文件在哪里看到)

  • 快手评论赞最多什么不置顶(快手作品点赞评论多了起到什么作用)

    快手评论赞最多什么不置顶(快手作品点赞评论多了起到什么作用)

  • 为什么贴完手机膜有横纹(为什么贴完手机膜后会起泡)

    为什么贴完手机膜有横纹(为什么贴完手机膜后会起泡)

  • mate30发布会北京时间(mate30系列国内发布会)

    mate30发布会北京时间(mate30系列国内发布会)

  • 封口机不封口怎么回事(封口机不好用怎么办)

    封口机不封口怎么回事(封口机不好用怎么办)

  • 苹果无线满格上网很慢(为什么苹果wifi满格还是上不了网)

    苹果无线满格上网很慢(为什么苹果wifi满格还是上不了网)

  • 支持pcie4.0的主板(支持pcie4.0的主板可以上pcie3.0)

    支持pcie4.0的主板(支持pcie4.0的主板可以上pcie3.0)

  • pfd文档是什么意思(pf格式文件)

    pfd文档是什么意思(pf格式文件)

  • 计算机容量的基本单位(计算机容量的基本单位有哪些)

    计算机容量的基本单位(计算机容量的基本单位有哪些)

  • 亲情号码怎么设置(亲情号码怎么设置OPPO)

    亲情号码怎么设置(亲情号码怎么设置OPPO)

  • 台式电脑有没有麦克风(台式电脑有没有wifi功能)

    台式电脑有没有麦克风(台式电脑有没有wifi功能)

  • 电脑开机显示正在休眠是怎么回事(电脑开机显示正在注销是什么意思)

    电脑开机显示正在休眠是怎么回事(电脑开机显示正在注销是什么意思)

  • 快手黑名单有什么用(快手上的黑名单有什么作用)

    快手黑名单有什么用(快手上的黑名单有什么作用)

  • 小米同步的数据在哪里看(小米同步的数据在哪里找)

    小米同步的数据在哪里看(小米同步的数据在哪里找)

  • 淘宝个人主页怎么隐藏(淘宝个人主页怎么看自己)

    淘宝个人主页怎么隐藏(淘宝个人主页怎么看自己)

  • 手机返回键不好使怎么办(手机返回键怎么调出来)

    手机返回键不好使怎么办(手机返回键怎么调出来)

  • 为什么淘宝账号被保护(为什么淘宝账号改了还显示原来的)

    为什么淘宝账号被保护(为什么淘宝账号改了还显示原来的)

  • 荣耀20pro支持面部识别吗(华为荣耀20pro有没有面部识别功能)

    荣耀20pro支持面部识别吗(华为荣耀20pro有没有面部识别功能)

  • 名创优品如何加盟(名创优品怎么加会员)

    名创优品如何加盟(名创优品怎么加会员)

  • 华为荣耀8和8x的区别(华为荣耀8和华为荣耀8x区别)

    华为荣耀8和8x的区别(华为荣耀8和华为荣耀8x区别)

  • 如何使用Vscode开发Uni-app项目以及注意事项详解(vscode怎么开始编程)

    如何使用Vscode开发Uni-app项目以及注意事项详解(vscode怎么开始编程)

  • 莫尔国家公园中的天蚕蛾,加纳拉拉班加 (© Robert Thompson/Minden Pictures)(莫尔道嘎湿地公园)

    莫尔国家公园中的天蚕蛾,加纳拉拉班加 (© Robert Thompson/Minden Pictures)(莫尔道嘎湿地公园)

  • 3D相机获取点云信息的几种方法(3d点云处理算法)

    3D相机获取点云信息的几种方法(3d点云处理算法)

  • 年末发票
  • 纸质发票红冲操作流程
  • 如何判断固定资产资本化还是费用化
  • 股票分红会冲抵成本吗
  • 劳务 劳务报酬所得
  • 非贸易付汇去银行汇款流程
  • 职工差旅费现金流出属于
  • 物业公司是小规模纳税人税率是多少
  • 资产报废变现收入应开具哪种发票
  • 合同能源管理项目账务处理
  • 高温补贴能以别的形式发放吗
  • 少记财务费用如何记账
  • 本月没开票怎么报税
  • 印花税应税凭证填是还是否
  • 境外所得纳税
  • 商业折扣如何开发票
  • 协会核定的税种都有哪些?
  • 计提坏账准备需要纳税调增吗
  • 债务利息税前列支什么意思
  • 基建管理费如何进行结转?
  • 法院执行款可以开发票吗
  • 公司账户有钱怎么取出来
  • 代理进口业务受托方账务处理流程
  • 4s店 监管
  • 报销怎么打
  • windows11怎么设置默认应用
  • win11系统摄像头黑屏
  • 计算土地增值税时增值额的扣除项目包括
  • 红利所得的税法规定
  • Win10 21H1 Build 19043.1200(KB5005101)预览版更新了哪些内容(附更新日志)
  • 银行本票实际金额小于票面金额
  • windows默认网关应该设置为的地址
  • php使用方法
  • 菲律宾薄荷岛疫情最新消息
  • 开发成本属于哪个会计准则
  • php内存缓存功能怎么用
  • iotop命令 监视磁盘I/O状态
  • 促销赠品的会计处理
  • 不计入法定期间的情形包括
  • 个体户分红需要申报吗
  • 收到进项税发票
  • 织梦怎么改文字
  • php 上传
  • 资产处置损益算营业外收入吗
  • 公司采购不含税产品合法吗
  • 固定资产盘亏要改变资产原值吗
  • 家庭分割财产怎么处理
  • 完税证明可以直接做账吗
  • 海关双抬头进口增值税发票如何抵扣
  • 出口退税会计处理流程
  • 逐步测试法计算内含报酬率
  • 公司是生产企业现在要开出租赁的发票可以开吗
  • 发票免税怎么做账
  • 免税 企业
  • 无进项发票开具销项发票
  • 怎么辨别定额发票是什么项目啊
  • 企业应如何降低消费者
  • 机票行程单可以抵扣进项税吗?
  • 账簿设置方法
  • 什么是结账?结账前要做哪些准备工作?
  • mysql 死锁解决
  • crypt什么文件
  • ubuntu20桌面
  • window系统中用什么命令来跟踪路由
  • route.exe - route是什么进程 有什么用
  • centos6启动服务的命令
  • 本地电脑的网卡物理地址
  • windows7开机显示错误恢复进不去
  • win8.1系统更新
  • js设计模式有什么用
  • xcode 导入sdk
  • jquery 下拉框变更事件
  • css中文字垂直排列
  • python多进程模块
  • 利用Matplotlib对一组数据进行分析
  • python语言文件
  • jquery对象与dom对象可以相互转换
  • 江西省税务局发票查询平台官网
  • 利润表研发费用项目应根据管理费用
  • 黄金消费税如何算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设