原生js实现可拖拽效果
更新时间:2017年02月28日 11:45:43 作者:chang红达
本文主要介绍了原生js实现可拖拽效果的实例,具有很好的参考价值,下面跟着小编一起来看下吧
效果图:

代码如下:
<!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>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!
相关文章
浅谈redux, koa, express 中间件实现对比解析
这篇文章主要介绍了浅谈redux, koa, express 中间件实现对比解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-05-05
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
这篇文章主要为大家详细介绍了bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能,感兴趣的小伙伴们可以参考一下2016-05-05
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
这篇文章主要介绍了微信小程序多行文本显示...+显示更多按钮和收起更多按钮,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2019-09-09


最新评论