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实例教程(19) 使用HoTMetal(4)
Dec 23 Javascript
js宝典学习笔记(上)
Jan 10 Javascript
Javascript load Page,load css,load js实现代码
Mar 31 Javascript
TreeView 用法(有代码)(asp.net)
Jul 15 Javascript
使用UglifyJS合并/压缩JavaScript的方法
Mar 07 Javascript
引用外部js乱码问题分析及解决方案
Apr 12 Javascript
在子窗口中关闭父窗口的一句代码
Oct 21 Javascript
解析JavaScript模仿块级作用域
Dec 29 Javascript
canvas知识总结
Jan 25 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
Mar 29 jQuery
npm 更改默认全局路径以及国内镜像的方法
May 16 Javascript
React router动态加载组件之适配器模式的应用详解
Sep 12 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
关于JSON以及JSON在PHP中的应用技巧
2013/11/27 PHP
PHP判断文章里是否有图片的简单方法
2014/07/26 PHP
使用PHP开发留言板功能
2019/11/19 PHP
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
Vue父组件调用子组件事件方法
2018/02/23 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
详解vue-cli下ESlint 配置说明
2018/09/03 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
python实现sublime3的less编译插件示例
2014/04/27 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
python文本数据处理学习笔记详解
2019/06/17 Python
利用python进行文件操作
2020/12/04 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
毕业生找工作的自我评价
2013/10/18 职场文书
经典优秀毕业生求职信范文分享
2013/12/18 职场文书
商场消防管理制度
2014/01/12 职场文书
体育教师求职信
2014/05/24 职场文书
建筑安全生产目标责任书
2014/07/23 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
行政诉讼答辩状
2015/05/21 职场文书
院系推荐意见
2015/06/05 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
天气温馨提示语
2015/07/14 职场文书
小学校长开学致辞
2015/07/29 职场文书
导游词之广西漓江
2019/11/02 职场文书
Android中View.post和Handler.post的关系
2022/06/05 Java/Android