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 相关文章推荐
用脚本调用样式的几种方法
Dec 09 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
Oct 29 Javascript
用js判断输入是否为中文的函数
Mar 10 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
Jun 05 Javascript
JavaScript获取页面中超链接数量的方法
Nov 09 Javascript
js实现遍历含有input的table实例
Dec 07 Javascript
js轮盘抽奖实例分析
Apr 17 Javascript
Vue组件开发初探
Feb 14 Javascript
react路由配置方式详解
Aug 07 Javascript
你应该了解的JavaScript Array.map()五种用途小结
Nov 14 Javascript
vue中v-show和v-if的异同及v-show用法
Jun 06 Javascript
JavaScript简单编程实例学习
Feb 14 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
增加反向链接的101个方法 站长推荐
2007/01/31 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
php Session无效分析资料整理
2016/11/29 PHP
php中分页及SqlHelper类用法实例
2017/01/12 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
详解jQuery中的事件
2016/12/14 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
2017/05/02 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
webpack4的迁移的使用方法
2018/05/25 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
2020/05/12 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
[01:03:36]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第二场 1月26日
2021/03/11 DOTA
python学习入门细节知识点
2018/03/29 Python
利用Django-environ如何区分不同环境
2018/08/26 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
Python如何实现FTP功能
2020/05/28 Python
Java提供了哪些企业应用编程接口
2015/02/13 面试题
电教室标语
2014/06/20 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android