当前位置: 首页 > news >正文

js实现拖动盒子查看内容 内容拖动

 

一.分析实现过程

1.鼠标拖动的操作是,按下鼠标不松,拖动鼠标,就需要监听鼠标点击事件(onmousedown),鼠标拖动事件(onmousemove)

2.鼠标拖动事件的监听时机,是在按下鼠标之后监听的,所以鼠标拖动事件需要放在鼠标按下事件(onmousedown)中

3.获取鼠标点击的位置A在外层盒子中可视区域x轴位置(clientX)及x轴滚动条位置B(scrollLeft)

4.在外层盒子中鼠标点击盒子的位置拖动的时候获取可视区域x轴位置C减去一开始点击的位置A,之后用位置B减去,C减A的值,这就是最终盒子需要跟随鼠标所拖动的位置

5.鼠标抬起释放事件

 

二.实现代码        

 <style>.outBox{width:300px;height:200px;background: blanchedalmond; overflow: hidden;margin:20px auto;}.innerBox{width: 600px;height: 200px;cursor: grab;}
</style>
<body><div class="outBox"><div class="innerBox"><span>Lorem ipsum dolor sit amet consectetur adipisicing elit. Debitis nam id neque cupiditate a, nihil corporis aut officiis nesciunt, incidunt consequuntur accusamus, iusto architecto nemo? Aspernatur omnis soluta molestiae excepturi!</span><span>Lorem ipsum dolor sit amet consectetur adipisicing elit. Debitis nam id neque cupiditate a, nihil corporis aut officiis nesciunt, incidunt consequuntur accusamus, iusto architecto nemo? Aspernatur omnis soluta molestiae excepturi!</span><span>Lorem ipsum dolor sit amet consectetur adipisicing elit. Debitis nam id neque cupiditate a, nihil corporis aut officiis nesciunt, incidunt consequuntur accusamus, iusto architecto nemo? Aspernatur omnis soluta molestiae excepturi!</span><span>Lorem ipsum dolor sit amet consectetur adipisicing elit. Debitis nam id neque cupiditate a, nihil corporis aut officiis nesciunt, incidunt consequuntur accusamus, iusto architecto nemo? Aspernatur omnis soluta molestiae excepturi!</span><span>Lorem ipsum dolor sit amet consectetur adipisicing elit. Debitis nam id neque cupiditate a, nihil corporis aut officiis nesciunt, incidunt consequuntur accusamus, iusto architecto nemo? Aspernatur omnis soluta molestiae excepturi!</span></div></div><script>let wrapperBox= document.querySelector('.outBox')let innerBox=document.querySelector('.innerBox')wrapperBox.onmousedown=function(e){let startX=e.clientX;let originalScrollX=wrapperBox.scrollLeft;document.onmousemove=function(e){let subs=e.clientX-startX; wrapperBox.scrollLeft= originalScrollX-subs;}//鼠标抬起释放事件document.onmouseup=function(){document.onmousemove=document.onmouseup=null; }}</script>
</body>

http://www.lryc.cn/news/275878.html

相关文章:

  • [C#]winform利用seetaface6实现C#人脸检测活体检测口罩检测年龄预测性别判断眼睛状态检测
  • c++ execl 执行 重定向
  • uni-app中实现元素拖动
  • Java系列-Class.forName和ClassLoader.loadClass的区别
  • 找不到模块 “path“ 或其相对应的类型声明
  • Linux第17步_安装SSH服务
  • C语言—数据类型
  • 静态网页设计——多彩贵州(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)
  • unity PDFRender Curved UI3.3
  • 基于深度学习的停车位关键点检测系统(代码+原理)
  • C#,入门教程(09)——运算符的基础知识
  • 企业出海数据合规:GDPR中的个人数据与非个人数据之区分
  • 如何在Ubuntu搭建Emlog博客站点并发布至公网可随时远程访问管理界面——“cpolar内网穿透”
  • 【金猿CIO展】是石科技CIO侯建业:算力产业赋能,促进数字经济建设
  • TypeScript 类
  • Oracle分区表
  • 【leetcode】力扣算法之旋转图像【难度中等】
  • 【Java集合类篇】HashMap的数据结构是怎样的?
  • Spring 应用合并之路(一):摸石头过河 | 京东云技术团队
  • Android13配置selinux让system应用可读sys,proc,SN号
  • 防勒索病毒攻击的关键措施
  • 代表团坐车 - 华为OD统一考试
  • 运用Jmeter进行登录测试
  • Docker学习与应用(四)-容器数据卷
  • CentOS 7.6下HTTP隧道代理的安全性考虑
  • Mockito+junit5搞定单元测试
  • PostgreSQL获取当天、昨天、本月、上个月、本年、去年的数据
  • XCTF:stage1[WriteUP]
  • STM32CubeMX教程13 ADC - 单通道转换
  • 矩阵的乘法