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 相关文章推荐
js获取location.href的参数实例代码
Aug 02 Javascript
javascript break指定标签打破多层循环示例
Jan 20 Javascript
JavaScript去除数组里重复值的方法
Jul 13 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
May 12 Javascript
深入理解JavaScript内置函数
Jun 03 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
Nov 16 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
Nov 07 Javascript
了解ESlint和其相关操作小结
May 21 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
Mar 07 Javascript
微信小程序mpvue点击按钮获取button值的方法
May 29 Javascript
vue - vue.config.js中devServer配置方式
Oct 30 Javascript
Vue父子传递实例讲解
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
php实现的通用图片处理类
2015/03/24 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
php文件后缀不强制为.php的实操方法
2019/09/18 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
小议Function.apply()之二------利用Apply的参数数组化来提高 JavaScript程序性能
2006/11/30 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
使用layer模态框给新页面传值的方法
2019/09/27 Javascript
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
对python pandas 画移动平均线的方法详解
2018/11/28 Python
python统计字符的个数代码实例
2020/02/07 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
Toppik顶丰增发纤维官网:解决头发稀疏
2017/12/30 全球购物
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
英国探险旅游专家:Explore
2018/12/20 全球购物
日本语毕业生自荐信
2014/02/01 职场文书
小学生期末评语
2014/04/21 职场文书
大型活动组织方案
2014/05/10 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
公司宣传语大全
2015/07/13 职场文书
《多彩的民间艺术》教学反思
2016/02/16 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书