基于JQuery 改造bootstrap模态框拖动功能
2015-11-12 17:46
399 查看
看不爽现有的bootstrap拖动实现,自己也手痒,就自己写了一个拖动处理。
PS:其他实现拖动方法 http://www.gbtags.com/gb/rtreplayerpreview/230.htm 供参考
JQuery版本1.7.2
Bootstrap版本3.3.4
html代码(就是普通的模态框代码)
Js代码
原理:
并没有什么鬼原理,就是简单的数学计算。
PS:其他实现拖动方法 http://www.gbtags.com/gb/rtreplayerpreview/230.htm 供参考
JQuery版本1.7.2
Bootstrap版本3.3.4
html代码(就是普通的模态框代码)
<div class="modal fade" id="modalID" tabindex="-1" role="dialog" aria-labelledby="myModal" aria-hidden="true" > <div class="modal-dialog"> <div class="modal-content"> <form method="POST" id="" action="" onSubmit=""> <div class="modal-header popup_box_head_style"> <button type="button" class="close popup_box_close_style" style="color:white" data-dismiss="modal" aria-hidden="true"> × </button> <div class="modal-footer popup_box_footer_style" style="text-align:center"> <button type="button" class="btn btn-default btn-lg" style="background-color:#4497f8;color:white;border:1px solid #4497f8" data-dismiss="modal">关闭 </button> </div> </form> </div> </div> </div>
Js代码
/** 拖拽模态框*/ var mouseStartPoint = {"left":0,"top": 0}; var mouseEndPoint = {"left":0,"top": 0}; var mouseDragDown = false; var oldP = {"left":0,"top": 0}; var moveTartet ; $(document).ready(function(){ $(document).on("mousedown",".modal-header",function(e){ if($(e.target).hasClass("close"))//点关闭按钮不能移动对话框 return; mouseDragDown = true; moveTartet = $(this).parent(); mouseStartPoint = {"left":e.clientX,"top": e.clientY}; oldP = moveTartet.offset(); }); $(document).on("mouseup",function(e){ mouseDragDown = false; moveTartet = undefined; mouseStartPoint = {"left":0,"top": 0}; oldP = {"left":0,"top": 0}; }); $(document).on("mousemove",function(e){ if(!mouseDragDown || moveTartet == undefined)return; var mousX = e.clientX; var mousY = e.clientY; if(mousX < 0)mousX = 0; if(mousY < 0)mousY = 25; mouseEndPoint = {"left":mousX,"top": mousY}; var width = moveTartet.width(); var height = moveTartet.height(); mouseEndPoint.left = mouseEndPoint.left - (mouseStartPoint.left - oldP.left);//移动修正,更平滑 mouseEndPoint.top = mouseEndPoint.top - (mouseStartPoint.top - oldP.top); moveTartet.offset(mouseEndPoint); }); });
原理:
并没有什么鬼原理,就是简单的数学计算。
相关文章推荐
- bootstrap初试进度条
- Bootstrap 3.3.4 发布,Web 前端 UI 框架
- angular 指令简述
- 基于Bootstrap的网页设计实例
- 精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
- 全系IE支持Bootstrap的解决方法
- BootStrap实现带有增删改查功能的表格(DEMO详解)
- 通过Tabs方法基于easyUI+bootstrap制作工作站
- BootStrap栅格系统、表单样式与按钮样式源码解析
- jfinal与bootstrap的登录跳转实战演习
- angularJS与bootstrap结合实现动态加载弹出提示内容
- bootstrap data与jquery .data
- Bootstrap的图片轮播示例代码
- 解决bootstrap中modal遇到Esc键无法关闭页面
- 基于Bootstrap+jQuery.validate实现Form表单验证
- 页面遮罩层,并且阻止页面body滚动。bootstrap模态框原理
- BOOTSTRAP时间控件显示在模态框下面的bug修复
- el表达式 写入bootstrap表格数据页面的实例代码
- BootStrap便签页的简单应用
- 使用jQuery和Bootstrap实现多层、自适应模态窗口