JavaScript

超轻量级php框架startmvc

原生js实现可拖拽效果

更新时间:2020-04-25 21:15:01 作者:startmvc
效果图:代码如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>

效果图:

代码如下:


<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>可拖拽特效</title>
 <style type="text/css">
 *{margin: 0;padding: 0;}
 .header{width:100%;height:30px;background:#036663;line-height:30px;color:#fff;text-indent:30px;}
 #demo{width:400px;height:300px;border:solid 5px #eee;box-shadow:0 0 5px #666;position:absolute;top:40%;left:40%;}
 #innerht{height:25px;background:#036663;border-bottom:solid 1px #369;color:#fff;text-indent:10px;cursor:move;}
 #close{float:right;cursor:pointer;}
 </style>
</head>
<body>
<div class="header">注册信息</div>
<div id="demo">
 <div id="innerht">注册信息(可拖拽)<span id="close">【关闭】</span></div>
 <div class="write"></div>
</div>
</body>
<script type="text/javascript">
 (function(window){
 function $(id){
 return document.getElementById(id);
 };
 // 获取对象
 var innerht = $("innerht"),demo = $("demo"),close = $("close");
 // 给innerht绑定鼠标事件
 innerht.onmousedown = function(event){
 // 解决event兼容问题
 var event = event || window.event; 
 // 获取鼠标在页面上坐标
 var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
 var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
 // 获取鼠标在innerht内部的坐标
 var innerX = pageX - demo.offsetLeft;
 var innerY = pageY - demo.offsetTop;
 // 给document绑定鼠标移动事件,防止鼠标快速滑动时滑出innerht
 document.onmousemove = function(event){
 var event = event || window.event;
 // 获取鼠标移动时的坐标
 var moveX = event.pageX || event.clientX + document.documentElement.scrollLeft;
 var moveY = event.pageY || event.clientY + document.documentElement.scrollTop;
 // 鼠标移动时demo的位置坐标
 var demoX = moveX - innerX ;
 var demoY = moveY - innerY ;
 // 鼠标移动时demo的位置坐标
 demo.style.left = demoX + "px";
 demo.style.top = demoY + "px";
 //清除选中文字
 window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
 }
 };
 // 鼠标抬起清除拖拽效果
 document.onmouseup = function(){
 document.onmousemove = null ;
 };
 // 点击关闭按钮关闭跟随框
 close.onclick = function(){
 this.parentNode.parentNode.style.display = "none";
 };
 })(window)
</script>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

js实现拖拽效果 原生js拖拽