返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript实现橱窗展示效果
  • 537
分享到

JavaScript实现橱窗展示效果

2024-04-02 19:04:59 537人浏览 八月长安
摘要

本文实例为大家分享了javascript实现橱窗展示效果的具体代码,供大家参考,具体内容如下 1.先搭架子 * { margin: 0;

本文实例为大家分享了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;
 }

<div class="box">
        <ul>
            <li>
                <img src="images/img1.jpg" alt="">
            </li>
            <li>
                <img src="images/img2.jpg" alt="">
            </li>
            <li>
                <img src="images/img3.jpg" alt="">
            </li>
            <li>
                <img src="images/img4.jpg" alt="">
            </li>
            <li>
                <img src="images/img5.jpg" alt="">
            </li>
            <li>
                <img src="images/img6.jpg" alt="">
            </li>
            <li>
                <img src="images/img7.jpg" alt="">
            </li>
            <li>
                <img src="images/img8.jpg" alt="">
            </li>
            <li>
                <img src="images/img9.jpg" alt="">
            </li>
            <li>
                <img src="images/img10.jpg" alt="">
            </li>
        </ul>
        <div class="progress">
            <div class="line"></div>
        </div>
</div>

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;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: JavaScript实现橱窗展示效果

本文链接: https://lsjlt.com/news/156743.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript实现橱窗展示效果
    本文实例为大家分享了JavaScript实现橱窗展示效果的具体代码,供大家参考,具体内容如下 1.先搭架子 * { margin: 0; ...
    99+
    2024-04-02
  • JavaScript如何实现橱窗展示效果
    这篇文章将为大家详细讲解有关JavaScript如何实现橱窗展示效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.先搭架子* {     &...
    99+
    2023-06-25
  • 纯CSS如何实现图片百叶窗展示效果
    这篇文章主要为大家展示了纯CSS如何实现图片百叶窗展示效果,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“纯CSS如何实现图片百叶窗展示效果”这篇文章吧。首先给大家看一下完成效果主要思路:其实这个百...
    99+
    2023-06-08
  • 实现jQuery弹窗效果的示例分析
    这篇文章主要介绍实现jQuery弹窗效果的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本文实例为大家分享了jQuery弹窗效果展示的具体代码,供大家参考,具体内容如下<...
    99+
    2024-04-02
  • JavaScript实现文字展开和收起效果
    列表式的文字的展开和收起的实现,供大家参考,具体内容如下 需求: 1、当文字超出目标值,则截取目标值,其他隐藏,同时显示“展开”二字和下拉箭头; 2、点击“展开”显示所有文字,同时改...
    99+
    2024-04-02
  • Html5中如何添加浏览器放大镜效果的商品橱窗
    这篇文章主要为大家展示了“Html5中如何添加浏览器放大镜效果的商品橱窗”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Html5中...
    99+
    2024-04-02
  • js如何实现3D图片展示效果
    这篇文章给大家分享的是有关js如何实现3D图片展示效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。点击左上角的按钮前后切换效果图:代码如下:<!doctype ...
    99+
    2024-04-02
  • CSS3怎么实现多背景展示效果
    本篇内容介绍了“CSS3怎么实现多背景展示效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:&l...
    99+
    2024-04-02
  • javascript效果实现
    随着互联网的不断发展和普及,网站越来越注重用户体验,其中JavaScript成为了网站开发中不可或缺的一部分。它能够为网站带来各种炫酷的效果和强大的交互功能,大大提升了网站的用户体验和互动性。下面我们就来探讨一些常见的JavaScript效...
    99+
    2023-05-17
  • Android实现悬浮窗效果
    本文实例为大家分享了Android实现悬浮窗效果的具体代码,供大家参考,具体内容如下 一、权限: <uses-permission android:name="android....
    99+
    2024-04-02
  • Android实现Window弹窗效果
    本文实例为大家分享了Android实现Window弹窗效果的具体代码,供大家参考,具体内容如下 效果图 第一步 准备弹窗的布局,新建XML文件 photo_window &l...
    99+
    2024-04-02
  • react实现Modal弹窗效果
    本文实例为大家分享了react实现Modal弹窗效果的具体代码,供大家参考,具体内容如下 一、Dialog.js文件 import React, {useMemo, useEffec...
    99+
    2024-04-02
  • HTML表格标签与JavaScript交互:实现动态数据展示效果
    ## HTML表格的基本结构及应用 HTML表格是使用表格标签来创建表格,标签定义了表格的一行,而标签则定义了单元格。每个单元格可以包含文本、图像或其他元素。表格是网页设计中常用的一种结构,主要用于显示数据,如产品列表、价格表、人员信息等...
    99+
    2024-02-11
    HTML表格 JavaScript 数据展示 DOM操作 动态交互
  • Javascript如何实现点击提示效果
    这篇文章主要介绍了Javascript如何实现点击提示效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Javascript如何实现点击提示效果文章都会有所收获,下面我们一起来看看吧。在电脑中新建一个HTML项...
    99+
    2023-07-04
  • js如何实现3D图片环展示效果
    这篇文章给大家分享的是有关js如何实现3D图片环展示效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。可对整体进行拖拽效果图:代码如下:<!DOCTYPE htm...
    99+
    2024-04-02
  • JavaScript实现弹出DIV窗口层效果代码分享
    这篇文章主要讲解了“JavaScript实现弹出DIV窗口层效果代码分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript实现弹出DIV窗口...
    99+
    2024-04-02
  • Android实现底部弹窗效果
    本文实例为大家分享了Android实现底部弹窗效果的具体代码,供大家参考,具体内容如下源代码地址:https://github.com/luoye123/Box东西很简单,我就直接亮代码了: activity_main.xml<...
    99+
    2023-05-31
    android 弹窗 roi
  • Flutter实现底部弹窗效果
    目录实现效果代码结构基本使用自定义底部弹窗总结在实际开发过程中,经常会用到底部弹窗来进行快捷操作,例如选择一个选项,选择下一步操作等等。在 Flutter 中提供了一个 showMo...
    99+
    2024-04-02
  • Vue实现简单弹窗效果
    本文实例为大家分享了Vue实现简单弹窗效果的具体代码,供大家参考,具体内容如下 选中input 弹出选项框 显示弹窗 首先要在components中新建两个组件 要实现子组件向父...
    99+
    2024-04-02
  • vue实现弹窗拖拽效果
    本文实例为大家分享了vue实现弹窗拖拽效果的具体代码,供大家参考,具体内容如下 前言 实现拖拽其实简单来说就分为三步 一、创建一个js文件 因为本身dialog窗口不具备移动拖拽能力...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作