js实现橱窗展示效果


Posted in Javascript onJanuary 11, 2020

本文实例为大家分享了js实现橱窗展示的具体代码,供大家参考,具体内容如下

思路

1、获取需要的标签

2、求出滚动条的长度(公式:滚动条长度 = ( 盒子的宽度 / 内容的宽度) * 盒子的宽度)

3、监听鼠标按下事件:3 设置起始位置

4、监听鼠标的移动:

4.1求出移动的位置
4.2判断滚动条的位置(防超出)
4.3 移动滚动条、商品滚动(公式:内容走的距离 = (内容的长度 - 盒子的长度) / (盒子长度 - 滚动条的长度) * 滚动条走的距离);

5、监听鼠标的离开事件:把鼠标的移动事件设置为无即可。

<script>
    window.onload = function (){
      //1.获取需要的标签
      var box = document.getElementById("box");
      var box_top = box.children[0];
      var box_bottom = box.children[1];
      var mask = box_bottom.children[0];
      //2.获取滚动条长度
      // 滚动条长度 = ( 盒子的宽度 / 内容的宽度) * 盒子的宽度
      var mask_length = (box.offsetWidth /box_top.offsetWidth) * box.offsetWidth;
      mask.style.width = mask_length + "px";
      //3.监听鼠标按下的事件
      mask.onmousedown = function (event){
        var event = event || window.event;
        //3.1设置起始位置
        var beginX = event.clientX - mask.offsetLeft;
        //3.2 监听鼠标的移动
        document.onmousemove =function (event){
          var event = event || window.event;
          //3.2.1求移动的位置
          var endX = event.clientX - beginX;

          //3.2.2处理边界值
          if(endX < 0){
            endX = 0
          }else if(endX >= box.offsetWidth - mask.offsetWidth){
            endX = box.offsetWidth - mask.offsetWidth;
          }
          //3.2.3让滚动条滚动
          mask.style.left = endX + "px";

          //3.2.4 让商品随着滚动
          //公式:内容走的距离 = (内容的长度 - 盒子的长度) / (盒子长度 - 滚动条的长度) * 滚动条走的距离
          var content_len = (box_top.offsetWidth - box.offsetWidth) / (box.offsetWidth - mask.offsetWidth) * endX;
          box_top.style.left = -content_len + "px";

          return false;
        };
        document.onmouseup = function (){
          document.onmousemove = null;
        }
      }
    }
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
$()JS小技巧
Jul 21 Javascript
JS正则表达式获取分组内容的方法详解
Nov 15 Javascript
Angular.js如何从PHP读取后台数据
Mar 24 Javascript
jQuery操作动态生成的内容的方法
May 28 Javascript
javascript input输入框模糊提示功能的实现
Sep 25 Javascript
使用js获取伪元素的content实例
Oct 24 Javascript
使用Bootrap和Vue实现仿百度搜索功能
Oct 26 Javascript
用node.js写一个jenkins发版脚本
May 21 Javascript
JS实现随机抽选获奖者
Nov 07 Javascript
详细分析vue响应式原理
Jun 22 Javascript
使用React-Router实现前端路由鉴权的示例代码
Jul 26 Javascript
JavaScript实现串行请求的示例代码
Sep 14 Javascript
vue实现购物车选择功能
Jan 10 #Javascript
webpack proxy 使用(代理的使用)
Jan 10 #Javascript
基于vue-draggable 实现三级拖动排序效果
Jan 10 #Javascript
bootstrap实现嵌套模态框的实例代码
Jan 10 #Javascript
jQuery操作动画完整实例分析
Jan 10 #jQuery
基于JavaScript判断两个对象内容是否相等
Jan 10 #Javascript
jQuery操作事件完整实例分析
Jan 10 #jQuery
You might like
php的计数器程序
2006/10/09 PHP
深入解析php模板技术原理【一】
2008/01/10 PHP
PHP页面间传递参数实例代码
2008/06/05 PHP
PHP通用分页类page.php[仿google分页]
2008/08/31 PHP
php获取文件内容最后一行示例
2014/01/09 PHP
PHP中开启gzip压缩的2种方法
2015/01/31 PHP
php带抄送和密件抄送的邮件发送方法
2015/03/20 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
jquery 插件开发备注
2010/08/27 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
2016/04/26 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
Vue 实现分页与输入框关键字筛选功能
2020/01/02 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
Python中functools模块的常用函数解析
2016/06/30 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
利用python生成照片墙的示例代码
2020/04/09 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
高中学生期末评语
2014/04/25 职场文书
仓库管理计划书
2014/05/04 职场文书
女生抽烟检讨书
2014/10/05 职场文书
停车场管理协议书范本
2014/10/08 职场文书
优秀团员自我评价
2015/03/10 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
网吧管理制度范本
2015/08/05 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
Python办公自动化PPT批量转换操作
2021/09/15 Python