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跨浏览器显示的file上传控件
Oct 24 Javascript
node.js中的dns.getServers方法使用说明
Dec 08 Javascript
JavaScript DOM 学习总结(五)
Nov 24 Javascript
JavaScript中0和&quot;&quot;比较引发的问题
May 26 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
Aug 20 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
Sep 09 Javascript
jQuery实现的放大镜效果示例
Sep 13 Javascript
原生js实现水平方向无缝滚动
Jan 10 Javascript
bootstrap实现动态进度条效果
Mar 08 Javascript
微信小程序图片自适应支持多图实例详解
Jun 21 Javascript
ES6数组与对象的解构赋值详解
Jun 14 Javascript
koa-passport实现本地验证的方法示例
Feb 20 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
超级简单的发送邮件程序
2006/10/09 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
用jquery.sortElements实现table排序
2014/05/04 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
Vue计算属性的使用
2017/08/04 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
JavaScript中Object值合并方法详解
2017/12/22 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
简单的Python2.7编程初学经验总结
2015/04/01 Python
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
python中必要的名词解释
2019/11/20 Python
django API 中接口的互相调用实例
2020/04/01 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
2020/10/18 Python
使用Python画了一棵圣诞树的实例代码
2020/11/27 Python
材料采购员岗位职责
2013/12/17 职场文书
活动总结怎么写啊
2014/05/07 职场文书
合伙经营协议书范本
2014/09/13 职场文书
护士个人年终总结
2015/02/13 职场文书
致接力运动员加油稿
2015/07/21 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
Python机器学习之底层实现KNN
2021/06/20 Python
SQLServer之常用函数总结详解
2021/08/30 SQL Server
用JS创建一个录屏功能
2021/11/11 Javascript
Android 中的类文件和类加载器详情
2022/06/05 Java/Android
VUE递归树形实现多级列表
2022/07/15 Vue.js