jquery实现拖动效果(代码分享)


Posted in Javascript onJanuary 25, 2017

话不多说,请看代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
</head>
<body>
 <style type="text/css">
 .page{text-align:left;}
 .dragDiv{border:1px solid #ddd; padding:10px; width:300px; margin:0 auto; border-radius:4px; box-shadow:0 1px 2px #fefefe; position: fixed;}
 </style>
 <div class="dragDiv" id="drag">
 <div class="drag-head">自己动手试试</div>
 <div class="drag-body">
 点击鼠标拖拖看
 </div>
 </div>
</body>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
 var _drag = {};
 _drag.top = 0; //拖动过的位置距离上边
 _drag.left = 0; //拖动过的位置距离左边
 _drag.maxLeft; //距离左边最大的距离
 _drag.maxTop; //距离上边最大的距离
 _drag.dragging = false; //是否拖动标志
 //拖动函数
 function bindDrag(el){ 
 var winWidth = $(window).width(), winHeight =$(window).height(),objWidth = $(el).outerWidth(), objHeight = $(el).outerHeight();
 _drag.maxLeft = winWidth - objWidth, _drag.maxTop = winHeight - objHeight;
 var els = el.style,x=0,y=0;
 var objTop = $(el).offset().top, objLeft = $(el).offset().left;
 $(el).mousedown(function(e){ 
 _drag.dragging = true;
 _drag.isDragged = true;
 x = e.clientX - el.offsetLeft; 
 y = e.clientY - el.offsetTop; 
 el.setCapture && el.setCapture(); 
 $(document).bind('mousemove',mouseMove).bind('mouseup',mouseUp);
 return false;
 }); 
 function mouseMove(e){ 
 e = e || window.event;
 if(_drag.dragging){
 _drag.top = e.clientY - y; 
 _drag.left = e.clientX - x;
 _drag.top = _drag.top > _drag.maxTop ? _drag.maxTop : _drag.top;
 _drag.left = _drag.left > _drag.maxLeft ? _drag.maxLeft : _drag.left;
 _drag.top = _drag.top < 0 ? 0 : _drag.top;
 _drag.left = _drag.left <0 ? 0 : _drag.left;
 els.top = _drag.top + 'px'; 
 els.left = _drag.left+ 'px';
 return false;
 }
 } 
 function mouseUp(e){ 
 _drag.dragging = false; 
 el.releaseCapture && el.releaseCapture(); 
 e.cancelBubble = true;
 $(document).unbind('mousemove',mouseMove).unbind('mouseup',mouseUp); 
 }
 $(window).resize(function(){
 var winWidth = $(window).width(),
 winHeight = $(window).height(),
 el = $(el),
 elWidth = el.outerWidth(),
 elHeight = el.outerHeight(),
 elLeft = parseFloat(el.css('left')),
 elTop = parseFloat(el.css('top'));
 _drag.maxLeft = winWidth - elWidth;
 _drag.maxTop = winHeight - elHeight;
 _drag.top = _drag.maxTop < elTop ? _drag.maxTop : elTop;
 _drag.left = _drag.maxLeft < elLeft ? _drag.maxLeft : elLeft;
 el.css({
 top:_drag.top,
 left:_drag.left
 })
 })
 } 
 bindDrag(document.getElementById('drag'));
</script>
</html>

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

Javascript 相关文章推荐
通用JS事件写法实现代码
Jan 07 Javascript
15条JavaScript最佳实践小结
Aug 09 Javascript
jquery获取css中的选择器(实例讲解)
Dec 02 Javascript
js实现按钮颜色渐变动画效果
Aug 20 Javascript
JavaScript的Vue.js库入门学习教程
May 23 Javascript
vue如何使用 Slot 分发内容实例详解
Sep 05 Javascript
node.js支持多用户web终端实现及安全方案
Nov 29 Javascript
使用JS判断移动端手机横竖屏状态
Jul 30 Javascript
jQuery实现获取及设置CSS样式操作详解
Sep 05 jQuery
图文讲解vue的v-if使用方法
Feb 11 Javascript
JavaScript数组排序小程序实现解析
Jan 13 Javascript
JavaScript逻辑运算符相关总结
Sep 04 Javascript
angular forEach方法遍历源码解读
Jan 25 #Javascript
three.js实现围绕某物体旋转
Jan 25 #Javascript
基于Marquee.js插件实现的跑马灯效果示例
Jan 25 #Javascript
angular和BootStrap3实现购物车功能
Jan 25 #Javascript
jquery 实现复选框的全选操作实例代码
Jan 24 #Javascript
谈谈JavaScript数组常用方法总结
Jan 24 #Javascript
js实现日历的简单算法
Jan 24 #Javascript
You might like
PHP ? EasyUI DataGrid 资料取的方式介绍
2012/11/07 PHP
php中mysql连接方式PDO使用详解
2015/02/25 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
2016/08/25 Javascript
Bootstrap在线电子商务网站实战项目5
2016/10/14 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
微信小程序修改swiper默认指示器样式的实例代码
2018/07/18 Javascript
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
python通过shutil实现快速文件复制的方法
2015/03/14 Python
python实现简单的文字识别
2018/11/27 Python
详解python配置虚拟环境
2019/04/08 Python
python处理“
2019/06/10 Python
python使用正则表达式(Regular Expression)方法超详细
2019/12/30 Python
使用Pytorch搭建模型的步骤
2020/11/16 Python
python空元组在all中返回结果详解
2020/12/15 Python
Django实现简单的分页功能
2021/02/22 Python
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
PurCotton全棉时代官网:100%天然棉花生产的生活护理用品
2016/11/18 全球购物
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
后进生转化工作制度
2014/01/17 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
店铺转让协议书
2014/12/02 职场文书
预备党员转正材料
2014/12/19 职场文书
解除同居协议书
2015/01/29 职场文书
清洁工个人总结
2015/03/04 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
python 利用 PIL 将数组值转成图片的实现
2021/04/12 Python
Java代码规范与质量检测插件SonarLint的使用
2022/08/05 Java/Android