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 相关文章推荐
flash 得到自身url参数的代码
Nov 15 Javascript
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
Dec 27 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
Dec 04 Javascript
jquery购物车实时结算特效实现思路
Sep 23 Javascript
JavaScript实现自动变换表格边框颜色
May 08 Javascript
jquery实现具有嵌套功能的选项卡
Feb 12 Javascript
AngularJS入门教程之多视图切换用法示例
Nov 02 Javascript
vue.js实现价格格式化的方法
May 23 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
Jul 16 Javascript
Vue2.0生命周期的理解
Aug 20 Javascript
解决layer.confirm快速点击会重复触发事件的问题
Sep 23 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
Jun 01 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版(2)
2006/10/09 PHP
PHP生成静态页面详解
2006/11/19 PHP
PHP安全下载文件的方法
2016/04/07 PHP
PHP文件下载实例代码浅析
2016/08/17 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
2018/09/10 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
python下读取公私钥做加解密实例详解
2017/03/29 Python
使用 Python 清理收藏夹里已失效的网站
2019/12/03 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
Python操作Excel的学习笔记
2021/02/18 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
大专毕业生简历的自我评价
2013/10/20 职场文书
高中校园广播稿
2014/01/11 职场文书
个人授权委托书
2014/04/03 职场文书
开学寄语大全
2014/04/08 职场文书
梅花魂教学反思
2014/04/25 职场文书
毕业证代领委托书
2014/09/26 职场文书
专业见习报告范文
2014/11/03 职场文书
2015年驾驶员工作总结
2015/04/29 职场文书
关于童年的读书笔记
2015/06/26 职场文书
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
python实现会员管理系统
2022/03/18 Python