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 prototype属性深入介绍
Nov 27 Javascript
探讨js字符串数组拼接的性能问题
Oct 11 Javascript
异步JS框架的作用以及实现方法
Oct 29 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
Jan 04 Javascript
微信小程序 支付功能开发错误总结
Feb 21 Javascript
解决浏览器会自动填充密码的问题
Apr 28 Javascript
微信JS SDK接入的几点注意事项(必看篇)
Jun 23 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
Jun 29 Javascript
Bootstrap Table列宽拖动的方法
Aug 15 Javascript
详解基于node.js的脚手架工具开发经历
Jan 28 Javascript
vue-router 前端路由之路由传值的方式详解
Apr 30 Javascript
JS实现可以用键盘方向键控制的动画
Dec 11 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
PHP遍历文件夹与文件类及处理类用法实例
2014/09/23 PHP
JS控件autocomplete 0.11演示及下载 1月5日已更新
2007/01/09 Javascript
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
2014/07/18 Javascript
与Math.pow 相反的函数使用介绍
2014/08/04 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
2017/04/14 Javascript
JavaScript实现无穷滚动加载数据
2017/05/06 Javascript
js处理包含中文的字符串实例
2017/10/11 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
Angular2整合其他插件的方法
2018/01/20 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
Python Web开发模板引擎优缺点总结
2014/05/06 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
如何在python中实现随机选择
2019/11/02 Python
中国双语服务优势的在线购票及活动平台:247tickets
2018/10/26 全球购物
致标枪运动员广播稿
2014/02/06 职场文书
学校消防演习方案
2014/02/19 职场文书
产品包装策划方案
2014/05/18 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
航班延误投诉信
2015/07/02 职场文书
寒假致家长的一封信
2015/10/10 职场文书
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript
Windows 64位 安装 mysql 8.0.28 图文教程
2022/04/19 MySQL