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 相关文章推荐
ie focus bug 解决方法
Sep 03 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
Jun 05 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
Aug 30 Javascript
充分发挥Node.js程序性能的一些方法介绍
Jun 23 Javascript
JavaScript之AOP编程实例
Jul 17 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
Feb 15 Javascript
JavaScript实现点击按钮字体放大、缩小
Feb 29 Javascript
基于jquery实现智能提示控件intellSeach.js
Mar 17 Javascript
AngularJS创建自定义指令的方法详解
Nov 03 Javascript
JavaScript中数组常见操作技巧
Sep 01 Javascript
JavaScript函数定义方法实例详解
Mar 05 Javascript
将RGB值转换为灰度值的简单算法
Oct 09 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
php+xml编程之xpath的应用实例
2015/01/24 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
2019/04/15 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
2019/11/13 PHP
JavaScript中获取鼠标位置相关属性总结
2014/10/11 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
js读写json文件实例代码
2014/10/21 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
webpack 2的react开发配置实例代码
2017/07/28 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
详解在Python中处理异常的教程
2015/05/24 Python
Python爬虫框架Scrapy常用命令总结
2018/07/26 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
Python Django框架单元测试之文件上传测试示例
2019/05/17 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
Html5 localStorage入门教程
2018/04/26 HTML / CSS
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
雪山饭庄的创业计划书范文
2014/01/18 职场文书
高中生的自我鉴定范文
2014/01/24 职场文书
求职简历中自我评价
2014/01/28 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
幼儿园毕业教师感言
2014/02/21 职场文书
社区母亲节活动方案
2014/03/05 职场文书
服务行业演讲稿
2014/09/02 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
党小组评议意见
2015/06/02 职场文书
公司员工培训管理制度
2015/08/04 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
Redis Cluster 集群搭建你会吗
2021/08/04 Redis