JavaScript如何实现橱窗展示效果
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,这篇文章将为大家详细讲解有关JavaScript如何实现橱窗展示效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.先搭架子* { marg
千家信息网最后更新 2025年11月15日JavaScript如何实现橱窗展示效果
这篇文章将为大家详细讲解有关JavaScript如何实现橱窗展示效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
1.先搭架子
* { margin: 0; padding: 0; } .box { width: 800px; height: 190px; border: 1px solid #000; margin: 100px auto; } ul { list-style: none; display: flex; } ul img { vertical-align: top; } .progress { width: 100%; height: 30px; background: #ccc; } .progress>.line { width: 100px; height: 100%; background: orange; border-radius: 15px; }2.逻辑部分
拿到需要操作的元素
计算ul的宽度
设置ul的宽度
计算滚动条的宽度
设置滚动条的宽度
监听鼠标按下的事件
拿到滚动条当前的位置
拿到鼠标在滚动条中按下的位置
监听鼠标移动事件
拿到鼠标在滚动条中移动之后的位置
计算偏移位
安全校验
重新设置滚动条的位置
计算图片的滚动距离
重新设置图片的位置
.box { overflow: hidden; } ul { position: relative; } .progress { position: relative; } .progress>.line { position: absolute; left: 0; top: 0; }//1.拿到需要操作的元素const oUl = document.querySelector("ul");const oItems = oUl.querySelectorAll("li");const oProgress = document.querySelector(".progress");const oLine = document.querySelector(".line");const oBox = document.querySelector(".box"); //2.计算ul的宽度const ulWidth = oItems[0].offsetWidth * oItems.length; //3.设置ul的宽度oUl.style.width = ulWidth + 'px'; //4.计算滚动条的宽度// 滚动条的宽度/滚动条滚动范围 = 容器的宽度/内容的范围const progressWidth = oProgress.offsetWidth;const boxWidth = oBox.offsetWidth;const lineWidth = boxWidth / ulWidth * progressWidth; //5.设置滚动条的宽度oLine.style.width = lineWidth + 'px';// 计算滚动条最大能够滚动的范围const maxLineX = progressWidth - lineWidth;// 计算图片最大能够滚动的范围const maxImgX = boxWidth - ulWidth; //6.监听鼠标按下的事件oLine.onmousedown = function(e) {e = e || window.e;//a.拿到滚动条当前的位置let begin = parseFloat(oLine.style.left) || 0; //b.拿到鼠标在滚动条中按下的位置let mouseX = e.pageX - oBox.offsetLeft; //7.监听鼠标移动事件oLine.onmousemove = function(e) {e = e || window.e;//c.拿到鼠标在滚动条中移动之后的位置let moveMouseX = e.pageX - oBox.offsetLeft; //d.计算偏移位let offsetX = moveMouseX - mouseX + begin; //e.安全校验offsetX = offsetX < 0 ? 0 : offsetX;offsetX = offsetX > maxLineX ? maxLineX : offsetX; //f.重新设置滚动条的位置oLine.style.left = offsetX + 'px'; //g.计算图片的滚动距离// 滚动条滚动的距离 / 滚动条最大能够滚动的范围 = 图片滚动的距离 / 图片最大能够滚动的范围// 滚动条滚动的距离 / 滚动条最大能够滚动的范围 * 图片最大能够滚动的范围 = 图片滚动的距离const imgOffsetX = offsetX / maxLineX * maxImgX; // h.重新设置图片的位置 oUl.style.left = imgOffsetX + "px"; }; }; _document.onmouseup = function() { oLine.onmousemove = null;}关于"JavaScript如何实现橱窗展示效果"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
位置
宽度
图片
范围
鼠标
最大
事件
监听
移动
篇文章
效果
橱窗
安全
元素
内容
更多
偏移
不错
实用
搭架子
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
昆明教育台网络安全直播
网络安全意识是
天英软件开发
默拉克服务器如何设置运行天数
数据库 ACE
河源阿里巴巴云数据库
加强网络安全队伍建设
图片服务器 架构
数据库缓存满打不开
泉州铁客互联网科技
青少年社交网络安全
数据库逻辑设计应首先
巴鲁夫传感器内部数据库
数据库删除了怎么恢复
数据库管理系统归为什么软件
数据库管理系统课题
企业网络安全培训会议纪要
控制软件开发公司吗
手机app销售库存软件开发
大话西游2服务器查询
网络安全自身感知
轻量云服务器域名不稳定
安徽手机软件开发定制费用
淘宝的服务器的ip
游戏公司服务器维修
如何恢复网站的数据库
服务器启动一直弹日志进不去
四年级小学生网络安全演讲稿
服务器主板上面有没有驱动
广州新华互联网科技学校食谱价格