js实现鼠标拖曳效果


Posted in Javascript onDecember 30, 2020

js实现鼠标的拖曳效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

效果如下:

js实现鼠标拖曳效果

下面是代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>鼠标拖曳效果</title>
 <style>
 body{
  background:black;
 }
 #box{
  position:absolute;
  background: rgb(148, 143, 143);
  width: 400px;
  height: 200px;
  box-sizing: border-box;
  border: white 2px solid;
 }
 .topTitle{
  cursor: move;
  border-bottom: white 2px solid;
  background: #cccccc;
  text-align: right;
  color: white;
  height: 20px;
  line-height: 20px;

 }
 .content >div{

  background: rgb(148, 143, 143);
  height: 50px;
  line-height: 50px;
  color: white;
  text-align: left;
 }
 </style>
</head>
<body>
 
 <div id="box">
 <div class="topTitle"><a href="#" >点击回放拖动轨迹</a></div>
 <div class="content">
  <div>Drag:</div> 
  <div>offsetTop:</div> 
  <div>offsetLeft</div> 
 </div>
 </div>
</body>
<script>

 var oBox=document.getElementById("box");
 var oTopTitle=document.getElementsByClassName("topTitle")[0];
 var aDiv= document.querySelectorAll(".content >div");
 var offWidth=document.documentElement.clientWidth;
 var clHight=document.documentElement.clientHeight;
 var i,t;
 var state="false";

 var oText=document.querySelector(".topTitle a");
 oTopTitle.onmousedown=function(even){
 var OffsetE=even||window.event;
var flag=true;

//设立边界:
 
 document.onmousemove=function(even){
 state="true";
  var ClientE=even||window.event;
  l=ClientE.clientX-OffsetE.offsetX;
  t=ClientE.clientY-OffsetE.offsetY;
  recorde(l,t,flag);
 if(l<0){
  l=0;
 }
 if(t<0){
  t=0;
 }
 if(l>offWidth-oBox.offsetWidth){
  l=offWidth-oBox.offsetWidth;
 }
 if(t>clHight-oBox.offsetHeight){
  t=clHight-oBox.offsetHeight;
 }
  
  oBox.style.left=l+"px";
  oBox.style.top=t+"px";

 }
 
 document.onmouseup=function(){
  console.log(1);
  state="false";
 
  document.onmousemove=null;
  document.onmouseup=null;
 }
 OffsetE.preventDefault();
 flag=false;
 
 }
 oText.onclick=function(){
 var reback=recorde(l,t);

 var index=reback.strX.length;
 setInterval(function(){
 if(index<0){
  clearInterval();
  return;
 }
 oBox.style.left=reback.strX[index--]
 +"px";
 oBox.style.top=reback.strY[index--]+"px";
 },30);

 
  
 
 
strX=[];
 strY=[];
 
}
var strX=[];
var strY=[]; 
function recorde(offsetTop,offsetLeft,flag){

 
 
 var text1=aDiv[1].innerText;
 aDiv[0].innerHTML="Drag:"+"<span style='color:yellow'>"+state+"</span>";
 aDiv[1].innerHTML="offsetTop:"+"<span style='color:yellow'>"+offsetTop+"</span>";
 aDiv[2].innerHTML="offsetLeft:"+"<span style='color:yellow'>"+offsetLeft+"</span>";
 
 
 strX.push(offsetTop) ;
 strY.push(offsetLeft);
 // console.log(strX);
 // console.log(strY);
 return {
 strX,
 strY
 
 }

 }

</script>
</html>

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

Javascript 相关文章推荐
JQuery 常用操作代码
Mar 14 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
Dec 31 Javascript
js控制分页打印、打印分页示例
Feb 08 Javascript
JS实现的多张图片轮流播放幻灯片效果
Jul 22 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
Dec 19 Javascript
JS 在数组指定位置插入/删除数据的方法
Jan 12 Javascript
angular.JS实现网页禁用调试、复制和剪切
Mar 31 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
Apr 21 Javascript
vuejs2.0子组件改变父组件的数据实例
May 10 Javascript
webpack打包非模块化js的方法
Oct 24 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
Mar 04 Javascript
H5 js点击按钮复制文本到粘贴板
Nov 19 Javascript
微信小程序实现简单购物车功能
Dec 30 #Javascript
微信小程序实现购物车小功能
Dec 30 #Javascript
Vue实现简易购物车页面
Dec 30 #Vue.js
利用Vue实现简易播放器的完整代码
Dec 30 #Vue.js
vue+element UI实现树形表格
Dec 29 #Vue.js
vue实现树状表格效果
Dec 29 #Vue.js
vue实现图书管理系统
Dec 29 #Vue.js
You might like
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
js根据给定的日期计算当月有多少天实现思路及代码
2013/02/25 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
jquery实现加载进度条提示效果
2015/11/23 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
去除html代码里面的script正则方法
2016/05/19 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
JS中关于正则的巧妙操作
2017/08/31 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
2018/09/28 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
Python中apply函数的用法实例教程
2014/07/31 Python
Python中的迭代器漫谈
2015/02/03 Python
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
Python新手学习标准库模块命名
2020/05/29 Python
CSS3教程(2):网页边框半径和网页圆角
2009/04/02 HTML / CSS
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
列车长先进事迹材料
2014/01/25 职场文书
2014年质量工作总结
2014/11/22 职场文书
2014年班级工作总结范文
2014/12/23 职场文书
城管个人总结
2015/02/28 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL
python高温预警数据获取实例
2022/07/23 Python
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技