<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>New Document</TITLE>
<script type="text/javascript" src="../jquery-1.4.2.min.js"></script>
<SCRIPT LANGUAGE="JavaScript">
$(function(){
$("#test").draggable({hander:$("#p")});
});
~function($){
$.fn.draggable=function(cfg){
cfg=cfg?cfg:{};
this.each(function(){
var target=$(this),hander, proxy,x=0,y=0,flag=false;
hander=cfg.hander?cfg.hander:target;
hander.mousedown(function(){
x=event.clientX-target.attr("offSetLeft");
y=event.clientY-target.attr("offSetTop");
proxy = $("<div style='position:absolute;border:2px dashed #ccc;'></div>") ;
proxy.insertAfter(target);
proxy.css({"width":target.css("width"),"height":target.css("height"),"left":target.attr("offSetLeft")+5,"top":target.attr("offSetTop")+5,"z-index":9999});
proxy.mousemove(mouseMove).mouseup(mouseUp);
$(document).mouseup(mouseUp).mousemove(mouseMove);
flag=true;
});
function mouseMove(){
if(flag)
{
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
proxy.css("left" ,event.clientX-x+5);
proxy.css("top" ,event.clientY-y+5);
}
}
function mouseUp(){
var x=proxy.attr("offSetLeft")-5;
var y=proxy.attr("offSetTop")-5;
if(x<0)
{
x=0;
}
if(y<0)
{
y=0;
}
if(y+proxy.height()>$(window).height())
{
y=$(window).height()-proxy.height()-3;
}
if(x+proxy.width()>$(window).width())
{
x=$(window).width()-proxy.width()-8;
}
target.animate({left:x,top:y},"slow");
proxy.unbind("mousemove").unbind("mouseup");
$(document).unbind("mousemove").unbind("mouseup");
proxy.remove();
flag=false;
}
});
};
}(jQuery);
</SCRIPT>
</HEAD>
<BODY>
<div id="display"
style="position: absolute; width: 200px; height: 200px; border: 1px solid #f00; top: 120px; left: 20px;"> dddd
</div>
<div id="test"
style="position: absolute; width: 200px; height: 200px; border: 1px solid #f0f; top: 200px; left: 200px;">
<div id="p" style=" width: 200px; height: 20px; border: 1px solid #f0f; "> fffffffffffffddd</div>
</div>
<button id="btn" style="position: absolute;">dfdfdf</button>
</BODY>
</HTML>
分享到:
相关推荐
"jQuery-plugin-boxy"是一个基于jQuery的弹出框插件,用于创建可定制的对话框和模态窗口。这个插件提供了丰富的功能和灵活性,帮助开发者在网页中轻松实现各种类型的提示信息或交互式表单。 1. **jQuery库基础**: ...
5:如果你引入了jQuery UI Draggable plugin插件,那这个插件也可以被自由拖动。 详细出处参考:file:///F:/闫洪明/新建文件夹/1alerts/基于jQuery的弹出警告对话框美化插件(警告,确认和提示)_jquery_脚本之家....
8. **Sortable, Draggable & Resizable** - 这些插件(如jQuery UI的相关组件)允许用户对表单元素进行排序、拖放和调整大小,增强交互性。 **图片插件:** 1. **Image Sliders** - 如Nivo Slider和FlexSlider,...
本项目名为“jquery-plugin-list”,重点介绍了一个jQuery插件,该插件允许用户创建一个可拖动的列表,同时结合HTTP交互实现数据的动态更新。 1. **jQuery 插件开发**: jQuery插件是扩展jQuery功能的一种方式,...
- **拖放功能**:jQuery UI Draggable和Droppable提供拖放元素的交互体验。 4. jQuery与Ajax: - **$.ajax()**:进行异步请求的通用方法,可以设置各种参数控制请求行为。 - **$.getJSON()**:专门用于获取JSON...
1. **表单验证插件**:如jQuery Validation Plugin,它可以轻松地为表单添加验证规则,确保用户输入的数据格式正确。 2. **图片轮播插件**:例如Bootstrap Carousel或Slick Slider,它们提供了美观且响应式的图片...
jQuery UI是官方提供的一个强大的组件库,包括日期选择器(Datepicker)、对话框(Dialog)、拖放(Draggable)、可排序(Sortable)和可折叠(Accordion)等功能。其中,日期选择器是日历功能的代表,提供了多种...
- **组件**:jQuery UI 包括了多个组件,如日期选择器(DatePicker)、对话框(Dialog)、滑块(Slider)、排序(Sortable)、拖放(Draggable)、可连接(Connectable)等。 - **事件处理**:jQuery UI 支持丰富的...
15. **表单验证**:jQuery Validation Plugin等插件,实现对用户输入的有效性检查,防止无效数据提交。 16. **触摸事件**:对于移动设备,jQuery Touch Punch等插件可以将触控事件映射为鼠标事件,确保在触摸屏上的...
jquery drag插件, 拖放插件(Drag and Drop) UI/Draggables. EasyDrag jQuery Plugin. jQuery Portlets. jqDnR - drag, drop resize. Drag Demos.
2. **jQuery Scroll Plugin**:它为图片添加了一个“投影”的预建动画帧序列,创建360°视角的效果,为用户提供了一种新颖的浏览体验,尤其适用于产品展示。 3. **CropZoom**:这个插件允许用户选择并裁剪图像的...
3. **jQuery Form Plugin**:方便处理表单提交,支持异步上传文件,如`$("#form").ajaxSubmit()`。 4. **jQuery Validate**:表单验证插件,可以自定义验证规则,提供错误提示,如`$("#form").validate()`。 5. **...
1. **表单插件**: 如 jQuery Validation Plugin,用于实现强大的表单验证功能,包括必填项检查、格式验证等。 2. **轮播插件**: 如 Slick Carousel 或 Swiper,可以轻松创建响应式的图片或内容轮播组件。 3. **...
18. **插件开发(Plugin Development)**:jQuery插件机制允许开发者扩展其功能,封装复用代码。 19. **动画效果(Effects)**:`.fadeIn()`, `.slideToggle()`, `.animate()`等方法创建各种视觉效果,增强用户体验...
9. **Sortable and Draggable**:`jQuery UI Sortable`和`Draggable`让元素排序和拖放成为可能,适用于列表排序和布局定制。 10. **Countdowns and Timers**:`Countdown.js`和`jQuery Countdown`插件可用于创建倒...
- **jQuery UI**:这是一个官方的UI库,包含各种组件和视觉效果,如对话框(Dialog)、日历(Datepicker)、拖放(Draggable)、排序(Sortable)等。1.3.2时期的jQuery UI可能不包含所有现代版本的功能,但它奠定...
1. **jQuery UI**: 提供了大量的界面元素和交互效果,如对话框(Dialog)、拖放(Draggable)、排序(Sortable)等。 2. **Bootstrap**: 虽非jQuery插件,但常与jQuery配合使用,提供响应式布局和组件,如按钮、...
$(”div”).draggable(”method”) calls another method on the plugin 新的API还让callback机制更加相似,每个插件显示缺省选项,并且使用remove()方法就可以方便地移除插件。我们也实现了自由地插件更新机制,更...
这个validate插件可能指的是jQuery Validation Plugin,它是用于表单验证的另一个工具,与formValidate类似。这个插件提供了一套完整的验证规则和方法,可以方便地与jQuery表单元素结合使用,实时检查用户输入,...
**jQuery SortableJS绑定插件详解** 在Web开发中,实现元素拖放排序是一个常见的需求,这能够极大地提升用户体验。`jQuery SortableJS`就是这样一个工具,它将流行的JavaScript库SortableJS与jQuery进行了绑定,...