jquery.ui.draggble实现拖放控件效果

这段时间一直在研究这个插件,模仿PageDesigner的效果做了这个demo

html代码:

<!doctype html>
<html lang="us">
<head>
   <meta charset="utf-8">
   <title>jQuery UI Example Page</title>
   <link href="css/hip/jquery-ui.css" rel="stylesheet">
   <link href="css/hip/bootstrap.css" rel="stylesheet">
   <link rel="stylesheet" href="css/designer.css">
</head>
<body>
   <div class="content">
            <div class="content-left">
               <div id="designer" class="demo-container">
               </div>
            </div>

            <div class="content-right">
               <div class="common-title">
                  <h4>COMMON</h4>
               </div>
               <div class="common-info">
                  <div class="row">
                     <div class="col-xs-4">
                        <div class="lyrow">
                           <div class="info-box">
                              <img src="images/1.png" alt="">
                              <p>Contain</p>
                           </div>
                           <div class="preview">
                              <div class="contain common">
                                 <div class="item">Container</div>
                                 <p contenteditable="true">container</p>
                              </div>
                           </div>
                        </div>
                     </div>
                     <div class="col-xs-4">
                        <div class="lyrow">
                           <div class="info-box">
                              <img src="images/2.png" alt="">
                              <p>Heading</p>
                           </div>
                           <div class="preview">
                              <div class="heading common">
                                 <div class="item">Heading</div>
                                 <p contenteditable="true">Lorem Ipsum Dolor Sit Amet</p>
                              </div>
                           </div>
                        </div>
                     </div>
                     <div class="col-xs-4">
                        <div class="lyrow">
                           <div class="info-box">
                              <img src="images/3.png" alt="">
                              <p>Text</p>
                           </div>
                           <div class="preview">
                              <div class="text common">
                                 <div class="item">Text</div>
                                 <p contenteditable="true">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
                              </div>
                           </div>
                        </div>
                     </div>
                  </div>
                  <div class="row">
                     <div class="col-xs-4">
                        <div class="lyrow">
                           <div class="info-box">
                              <img src="images/4.png" alt="">
                              <p>List</p>
                           </div>
                           <div class="preview">
                              <div class="list common">
                                 <div class="item">List</div>
                                 <ul contenteditable="true">
                                    <li>item1</li>
                                    <li>item2</li>
                                 </ul>
                              </div>
                           </div>
                        </div>
                     </div>
                     <div class="col-xs-4">
                        <div class="lyrow">
                           <div class="info-box">
                              <img src="images/5.png" alt="">
                              <p>Link</p>
                           </div>
                           <div class="preview">
                              <div class="link common">
                                 <div class="item">List</div>
                                 <p><a href="#" contenteditable="true">This is a link...</a></p>
                              </div>
                           </div>
                        </div>
                     </div>
                     <div class="col-xs-4">
                        <div class="lyrow">
                           <div class="info-box">
                              <img src="images/6.png" alt="">
                              <p>Button</p>
                           </div>
                           <div class="preview">
                              <div class="extra common">
                                 <div class="item">defined</div>
                                 <p contenteditable="true">输入想要放置的内容</p>
                              </div>
                           </div>
                        </div>
                     </div>
                  </div>
                  <div class="row">
                     <div class="col-xs-4">
                        <div class="lyrow">
                           <div class="info-box">
                              <img src="images/7.png" alt="">
                              <p>Image</p>
                           </div>
                           <div class="preview">
                              <div class="extra common">
                                 <div class="item">defined</div>
                                 <p contenteditable="true">自定义区域</p>
                              </div>
                           </div>
                        </div>
                     </div>
                  </div>
               </div>
            </div>

   </div>

</body>

<script src="js/lib/jquery.js"></script>
<script src="js/lib/jquery-ui.js"></script>
<script src="js/lib/bootstrap.js"></script>
<script src="js/designer(1).js"></script>
</html>
js代码:

var screenH=$(document).height();
$('.content').height(screenH);


$('.lyrow').draggable({
    connectToSortable:'#designer',
    cursor:'move',
    distance:20,
    revert:'invalid',
    helper:'clone',
    zIndex: 1000,
    opacity:0.3,
    start: function( event, ui ) {

    }
});
$('.info-box').disableSelection();


$('#designer').droppable({
    accept: '.lyrow',
    //greedy:true,
    drop: function (event, ui) {
        var d=ui.helper.find('.preview');
        $(this).append(d).css('display','block');

        $('#popUp').css('display','block');

        //设置id
        var divs=$("#designer>div");
        var divLe=divs.length;
        for(var i=0;i<divLe;i++){
            divs[i].id='div'+(i+1);
        };


        //鼠标经过显示区域名称
        $("#designer>div").hover(function (e) {
            //alert(12);
            $(this).find('.common>.item').css('display','block');
        },function(){
            $(this).find('.common>.item').css('display','none');
        });
    }
});

最终实现的大致效果,拖拽右边的控件可以放到左边:


希望大家多多指正



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值