JavaScript如何实现橱窗展示效果
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章将为大家详细讲解有关JavaScript如何实现橱窗展示效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.先搭架子* { marg
千家信息网最后更新 2025年02月03日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安全错误
数据库的锁怎样保障安全
数据库临时表变大
怎么建立spss数据库
蓝海灵豚打开数据库时发生异常
服务器支持iscsi
铜器鉴定网络安全
数据库系统教程知识点总结
甘肃语音网络技术服务询问报价
鑫康网络技术服务有限公司
会议服务器装什么硬盘
网络安全是站上风口吗
网络安全审查网络产品
软件开发包括网页吗
数据库基础及应用樊重俊
新零售软件开发哪家好
银行网络安全攻防演练
员工网络安全知识答题
网络安全保障工作整改报告
彩票系统彩票软件开发
手机设置网络安全宣传周
三友游戏软件开发公司
徐汇区无线网络技术价格对比
省级贸易数据库
台达服务器报警AL15怎么处理
三维Gis应用软件开发
原阳租房软件开发
如何在spss中建立数据库
中国的互联网服务器受别国制约吗
网络安全教育主题会议
泰州迅天网络技术有限公司
网络安全人才行业失衡