DIV 实现可拖拽 功能(留档)
//可拖拽 功能
$.fn.extend({
//用法:$(element).jqDrag();
//element需要具备定位属性,需要手动调整层叠样式,这里只是修改鼠标拖动效果
jqDrag: function () {
var _drag = false, _self, _x, _y, cw, ch, sw, sh, dragBar, DragCnt,
vxw = window, vxd = document, vxe = vxd.documentElement, vxg = vxd.getElementsByTagName('body')[0],
//dragContent = (typeof dragContent == "undefined") ? dragControl : dragContent;
_self = this;
DragCnt = $(_self);
DragBar = $(".dragbar", DragCnt);
DragBar.mouseup(function (e) {
_drag = false;
document.body.releaseCapture && this.releaseCapture();;
}).mousedown(function (e) {
_drag = true;
_x = e.pageX - parseInt(DragCnt.css("left"));
_y = e.pageY - parseInt(DragCnt.css("top"));
winW = vxw.innerWidth || vxe.clientWidth || vxg.clientWidth;
winH = vxw.innerHeight || vxe.clientHeight || vxg.clientHeight;
cw = winW;
ch = winH;
sw = parseInt(DragCnt.outerWidth());
sh = parseInt(DragCnt.outerHeight());
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
document.body.setCapture && this.setCapture();
$(document).mousemove(function (e) {
DragCnt.attr("posit", _x + "" + e.pageX);
if (_drag) {
var x = e.pageX - _x;
var y = e.pageY - _y;
x = x < 0 ? x = 0 : x < (cw - sw) ? x : (cw - sw);
y = y < 0 ? y = 0 : y < (ch - sh) ? y : (ch - sh);
DragCnt.css({ top: y, left: x });
DragCnt.attr("posit", x + "_" + y);
}
});
});
}
});
DIV 实现可拖拽 功能(留档)的更多相关文章
- 多个div实现随意拖拽功能
鼠标事件 mousedownmousemovemouseup注意事项:被拖动的div的position属性值一定是absolute.切记不可使用margin-top:10px;而应该使用top:10p ...
- 移动端多个DIV简单拖拽功能
移动端多个DIV简单拖拽功能. 这个demo与之前写的一个例子差不了多少,只是这个多了一层遍历而已. <!DOCTYPE html> <html lang="en" ...
- (Demo分享)利用JavaScript(JS)实现一个九宫格拖拽功能
利用JavaScript(JS)实现一个九宫格拖拽功能 Demo实现了对任意方格进行拖拽,可以交换位置,其中Demo-1利用了勾股定理判断距离! Demo-1整体思路: 1.首先div实现自由移动 ...
- js进阶 12-17 jquery实现鼠标左键按下拖拽功能
js进阶 12-17 jquery实现鼠标左键按下拖拽功能 一.总结 一句话总结:监听的对象必须是文档,鼠标按下运行mousemove事件,鼠标松开取消mousemove事件的绑定,div的偏移的话是 ...
- js实现登陆页面的拖拽功能
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>登 ...
- React Editor 应用编辑器(1) - 拖拽功能剖析
这是可视化编辑器 Gaea-Editor 的第一篇连载分析文章,希望我能在有限的篇幅讲清楚制作这个网页编辑器的动机,以及可能带来的美好使用前景(画大饼).它会具有如下几个特征: 运行在网页 文档流布局 ...
- JQuery UI的拖拽功能
JQuery UI是JQuery官方支持的WebUI 代码库,包含底层交互.动画.特效等API,并且封装了一些Web小部件(Widget).同时,JQuery UI继承了jquery的插件支持,有大量 ...
- 通过 JS 实现简单的拖拽功能并且可以在特定元素上禁止拖拽
前言 关于讲解 JS 的拖拽功能的文章数不胜数,我确实没有必要大费周章再写一篇重复的文章来吸引眼球.本文的重点是讲解如何在某些特定的元素上禁止拖拽.这是我在编写插件时遇到的问题,其实很多插件的拖拽功能 ...
- Js元素拖拽功能实现
Js元素拖拽功能实现 需要解决的问题 最近项目遇到了一个问题,就是用户某个操作需要弹出一个自定义的内容输入框,但是有个缺点,当浏览太大的时候没办法点击确认和取消按钮,应为这个弹出框是采用绝对定位的,取 ...
随机推荐
- Cacti+Nagios监控平台完美整合
Cacti+Nagios监控平台完美整合 本博文出自51CTO博客吴光科博主,有任何问题请进入博主页面互动讨论!博文地址:http://wgkgood.blog.51cto.com/1192594/1 ...
- C语言内存对齐(2)
前两天参加了360测试实习生的笔试,碰到了一个有关c语言内存对齐的题目,回来后实现了一下,下面是代码: #include <stdio.h> #include <stdlib.h&g ...
- 【Android中Broadcast Receiver组件具体解释
】
BroadcastReceiver(广播接收器)是Android中的四大组件之中的一个. 以下是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播 ...
- apache kafkac系列lient发展-java
apache kafka区QQ群:162272557 1.依赖包 <dependency> <groupId>org.apache.kafka</ ...
- rabibtMQ安装及集群配置-linux
安装RabbitMQ RabbitMQ是流行的开源消息队列系统,用erlang语言开发,故首先需要安装erlang依赖及erlang. 安装erlang依赖的基本环境,通过yum方式进行安装: yum ...
- 1572: [Usaco2009 Open]工作安排Job[贪心]
Description Farmer John 有太多的工作要做啊!!!!!!!!为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单位时间. 他的工作日从0时刻开始,有1000000000个单 ...
- IOS学习之路(代码实现自动布局)
1.将一个试图放置在其父视图的中央位置,使用限制条件. 2.创建两个限制条件:一个是将目标视图的 center.x 位置排列在其父视图的 center.x 位置,并且另外一个是将目标视图的 cente ...
- IOS学习之路六(UITableView滑动删除指定行)
滑动删除指定行代码如下: Controller.h文件 #import <UIKit/UIKit.h> @interface TableViewController : UIViewCon ...
- 谷歌Volley网络框架讲解——BasicNetwork类
谷歌Volley网络框架讲解——BasicNetwork类 这个类是toolbox工具箱包里的,实现了Network接口. 先来看下Network这个interface,performRequest( ...
- 最小堆实现优先队列:Python实现
最小堆实现优先队列:Python实现 堆是一种数据结构,因为Heapsort而被提出.除了堆排序,“堆”这种数据结构还可以用于优先队列的实现. 堆首先是一个完全二叉树:它除了最底层之外,树的每一层的都 ...