jquery-ui-处理拖动位置Droppable,Draggable

一.效果。如下图中,各途中可相互拖拉,右下角可删除。注意图1和图2对比区别

图1

图2

二.源码详解

html源码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>公告页面管理</title>
    <script src="jquery-1.11.1.min.js"></script>
    <script src="jquery-ui.min.js"></script>
    <script src="report_page.js"></script>
<style type="text/css">
.page_title{
    width:90%;

}
header{
    height: 60px;
    border-bottom: 1px solid #f0f0f0;
    line-height: 60px;
    margin-bottom: 30px;
    background-color:#243141;
}
.navigation {
    height: 40px;
    line-height:40px;
    width: 100%;
    background-color: #2175bc;
}
a {
    text-decoration: none;
}
a:hover {text-decoration: none;}
.navigator_zy {
    float: left;
    font-size: 15px;
    text-decoration: none;
    color: #FFF;
    padding-left: 30px;
    padding-left: 30px;
}

.navigator_zy>a>span {
    color: #fff;
}
#dropzone {
    padding: 20px;
    background: #eaeaea;
      min-height: 100px;
    overflow: hidden;
}

.item {
    float:left;
    width:145px;
    height:220px;
      cursor: pointer;
      margin: 5px;
      padding: 5px 10px;
      border-radius: 3px;
      position: relative;
}

.item .remove {
      position: absolute;
      bottom: 0px;
      right: 0px;
}
ul, menu, dir {
    display: block;
    list-style-type: disc;
    -webkit-margin-before: 1em;
    -webkit-margin-after: 1em;
    -webkit-margin-start: 0px;
    -webkit-margin-end: 0px;
    -webkit-padding-start: 40px;
}
.fanhuiimg {
    float: right;
    margin-right: -26px;
    margin-top: 60px;
    width: 26px;
    height: 87px;
    cursor: pointer;
}
</style>
</head>
<body>

    <div class="container">
        <div id="dropzone">
            <div class="item drop-item" idStr="1" style="background:url(image/1.jpg);background-size:100% 100%;">
                <button type="button" class="btn btn-default btn-xs remove">
                    <span class="glyphicon glyphicon-trash"></span>
                </button>
            </div>
            <div class="item drop-item" idStr="2" style="background:url(image/2.jpg);background-size:100% 100%;">
                <button type="button" class="btn btn-default btn-xs remove">
                    <span class="glyphicon glyphicon-trash"></span>
                </button>
            </div>
            <div class="item drop-item" idStr="3" style="background:url(image/3.jpg);background-size:100% 100%;">
                <button type="button" class="btn btn-default btn-xs remove">
                    <span class="glyphicon glyphicon-trash"></span>
                </button>
            </div>
            <div class="item drop-item" idStr="4" style="background:url(image/4.jpg);background-size:100% 100%;">
                <button type="button" class="btn btn-default btn-xs remove">
                    <span class="glyphicon glyphicon-trash"></span>
                </button>
            </div>
            <div class="item drop-item" idStr="5" style="background:url(image/5.jpg);background-size:100% 100%;">
                <button type="button" class="btn btn-default btn-xs remove">
                    <span class="glyphicon glyphicon-trash"></span>
                </button>
            </div>
            <div class="item drop-item" idStr="6" style="background:url(image/6.jpg);background-size:100% 100%;">
                <button type="button" class="btn btn-default btn-xs remove">
                    <span class="glyphicon glyphicon-trash"></span>
                </button>
            </div>
            <div class="item drop-item" idStr="7" style="background:url(image/7.jpg);background-size:100% 100%;">
                <button type="button" class="btn btn-default btn-xs remove">
                    <span class="glyphicon glyphicon-trash"></span>
                </button>
            </div>
        </div>
    </div>
</body>
</html>

js源码

$(function(){
    $(‘.btn.remove‘).click(function(){
        if(confirm("确定要删除页面吗?")) {
            $(this).parent().detach();
        }
    });
    var dropable = $(‘#dropzone‘).droppable({
        activeClass : ‘active‘,
        hoverClass : ‘hover‘,
        accept : ":not(.ui-sortable-helper)"
    });
    dropable.sortable({
        items : ‘.drop-item‘,
        sort : function() {
            $(this).removeClass("active");
        }
    });
    $(‘#report_page_save_btn‘).click(function(){
        save();
    });
    $(‘#report_page_def_btn‘).click(function(){
        if(confirm("确定要恢复页面数据吗?")) {
            set_def();
        }
    });

});

使用其他第三方js结构如下。其实就只有使用了jquery-ui

另一个简单案例

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>公告页面管理</title>
    <script src="jquery-1.11.1.min.js"></script>
    <script src="jquery-ui.min.js"></script>
 <style>
  #draggable { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
  #droppable { width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px; }
  </style>
  <script>
  $(function() {
    $( "#draggable" ).draggable();
    $( "#droppable" ).droppable({
      drop: function( event, ui ) {
        $( this )
          .addClass( "ui-state-highlight" )
          .find( "p" )
            .html( "Dropped!" );
      }
    });
  });
  </script>
</head>
<body>

<div id="draggable" class="ui-widget-content">
  <p>请把我拖拽到目标处!</p>
</div>

<div id="droppable" class="ui-widget-header">
  <p>请放置在这里!</p>
</div>

</body>
</html>
时间: 2024-10-20 19:30:31

jquery-ui-处理拖动位置Droppable,Draggable的相关文章

jQuery UI API - 可拖拽小部件(Draggable Widget)(转)

所属类别 交互(Interactions) 用法 描述:允许使用鼠标移动元素. 版本新增:1.0 依赖: UI 核心(UI Core) 部件库(Widget Factory) 鼠标交互(Mouse Interaction) 注释:让被选元素可被鼠标拖拽.如果您不只是拖拽,而是拖拽 & 放置,请查看 jQuery UI 可放置(Droppable)插件,为可拖拽元素提供了一个放置目标. 快速导航 选项 方法 事件 addClasses appendTo axis cancel connectToS

jQuery基础(常用插件 表单验证,图片放大镜,自定义对象级,jQuery UI,面板折叠)

1.表单验证插件--validate   该插件自带包含必填.数字.URL在内容的验证规则,即时显示异常信息,此外,还允许自定义验证规则,插件调用方法如下: $(form).validate({options}) 其中form参数表示表单元素名称,options参数表示调用方法时的配置对象,所有的验证规则和异常信息显示的位置都在该对象中进行设置.     2.表单插件--form 通过表单form插件,调用ajaxForm()方法,实现ajax方式向服务器提交表单数据,并通过方法中的option

JQuery UI的拖拽功能

JQuery UI是JQuery官方支持的WebUI 代码库,包含底层交互.动画.特效等API,并且封装了一些Web小部件(Widget).同时,JQuery UI继承了jquery的插件支持,有大量的第三方插件可以丰富JQuery UI的功能. JQuery UI提供的API极大简化了拖拽功能的开发.只需要分别在拖拽源(source)和目标(target)上调用draggable和droppable两个函数即可. 拖拽原理 首先要明确几个概念. ource:拖拽源,要拖动的元素. taerge

jQuery UI 教程

jQuery UI 教程 jQuery UI 是建立在 jQuery JavaScript库上的一组用户界面交互.特效.小部件及主题.无论您是创建高度交互的 Web 应用程序还是仅仅向窗体控件添加一个日期选择器,jQuery UI 都是一个完美的选择.jQuery UI 包含了许多维持状态的小部件(Widget),因此,它与典型的 jQuery 插件使用模式略有不同.所有的 jQuery UI 小部件(Widget)使用相同的模式,所以,只要您学会使用其中一个,您就知道如何使用其他的小部件(Wi

jQuery UI 拖动(Draggable) - 还原位置

定义和用法 当带有布尔值 revert 选项的 draggable 停止拖拽时,返回 draggable(或它的助手)到原始位置 示例 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>jQuery 

jQuery UI draggable+droppable+resizable+selectable+sortable

<script language="JavaScript" type="text/javascript" src="ui/jquery-1.8.2.js"></script> <script language="JavaScript" type="text/javascript" src="ui/jquery-ui-1.9.1.custom.js">&

jQuery UI 拖动(Draggable) - 事件

定义和用法 draggable 上的 start.drag 和 stop 事件.拖拽开始时触发 start 事件,拖拽期间触发 drag 事件,拖拽停止时触发  stop 事件 示例 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"&

jQuery UI 拖动(Draggable) - Handles和Cancel

定义和用法 只有当光标在 draggable 上指定部分时才允许拖拽.使用 handle 选项来指定用于拖拽对象的元素(或元素组)的 jQuery 选择 器或者当光标在 draggable 内指定元素(或元素组)上时不允许拖拽.使用 cancel选项来指定取消拖拽功能的 jQuery 选择器 示例 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equi

jQuery UI 拖动(Draggable) - 延迟开始

定义和用法 通过 delay 选项设置延迟开始拖拽的毫秒数.通过 distance 选项设置光标被按下且拖拽指定像素后才允许拖拽 示例 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>jQuery