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的气泡提示效果
May 31 Javascript
jQuery获取对象简单实现方法小结
Oct 30 Javascript
js+jquery常用知识点汇总
Mar 03 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
Apr 01 Javascript
Bootstrap每天必学之面板
Nov 30 Javascript
开启BootStrap学习之旅
May 04 Javascript
让你5分钟掌握9个JavaScript小技巧
Jun 09 Javascript
vue实现组件之间传值功能示例
Jul 13 Javascript
vue-cli3+typescript新建一个项目的思路分析
Aug 06 Javascript
js实现上传图片并显示图片名称
Dec 18 Javascript
原生js实现无缝轮播图
Jan 11 Javascript
返回上一个url并刷新界面的js代码
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
php多文件上传功能实现原理及代码
2013/04/18 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
javascript动画浅析
2012/08/30 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
Bootstrap CSS组件之输入框组
2016/12/17 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
Node.js中的child_process模块详解
2018/06/08 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
es6 filter() 数组过滤方法总结
2019/04/03 Javascript
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
python简单实现计算过期时间的方法
2015/06/09 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
canvas实现手机的手势解锁的步骤详细
2020/03/16 HTML / CSS
世界上最大的二手相机店:KEN
2017/05/17 全球购物
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
StubHub澳大利亚:购买或出售您的门票
2019/08/01 全球购物
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
后勤岗位职责
2013/11/26 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
学习决心书
2014/03/11 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
厕所文明标语
2014/06/11 职场文书
暑假学习心得体会
2014/09/02 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
学生保证书格式
2015/02/27 职场文书
医院员工辞职信范文
2015/05/12 职场文书
红色经典电影观后感
2015/06/18 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫