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 相关文章推荐
使用Javascript和DOM Interfaces来处理HTML
Oct 09 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
Aug 22 Javascript
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
Sep 09 Javascript
Vue.js表单控件实践
Oct 27 Javascript
B/S(Web)实时通讯解决方案分享
Apr 06 Javascript
使用原生js写ajax实例(推荐)
May 31 Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
Feb 02 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
Mar 13 Javascript
详解JWT token心得与使用实例
Aug 02 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
Sep 02 Javascript
vue-iview动态新增和删除的方法
Jun 17 Javascript
JS自定义右键菜单实现代码解析
Jul 16 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
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
php简单判断文本编码的方法
2015/07/30 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
javascript不同页面传值的改进版
2008/09/30 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
2018/09/17 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
美国电视购物HSN官网:HSN
2016/09/07 全球购物
请说出你所知道的线程同步的方法
2013/04/19 面试题
总经理驾驶员岗位职责
2013/12/04 职场文书
同事打架检讨书
2014/02/04 职场文书
学校运动会霸气口号
2014/06/07 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
python使用pygame创建精灵Sprite
2021/04/06 Python
详解redis分布式锁的这些坑
2021/05/19 Redis