• 从下拉菜单拖拽一个元素 出来,插入到页面中的app 列表中


    1,实现功能:从下拉菜单拖拽一个元素 出来,插入到页面中的app 列表中

    并实现app向后移动一个元素的位置;

    2.实现思路:

    01.遍历下拉菜单,添加拖拽方法,实现位置移动功能;

    02.遍历app列表,将app位置存为数组,进行循环;

    03.拖拽元素与当前app做碰撞检测;

    04.如果鼠标在app内部,则将拖拽元素添加到当前app之后,位置设置为当前 i 的值;

    参考代码如下:

    <!doctype html>
    <html lang="en">
     <head>
      <meta charset="UTF-8">
      <meta name="Generator" content="EditPlus®">
      <meta name="Author" content="">
      <meta name="Keywords" content="">
      <meta name="Description" content="">
      <title>Document</title>
      <style>
        #tp{height:50px;310px;margin:0 auto;list-style:none;}
        .tps{height:40px;60px;float:left;text-align:center;background:#e4393c;line-height:40px;margin-right:1px;    
        }
        .container{height:500px;600px;background:#ccc;margin:0 auto;}
        .container ul{list-style:none;height:300px;500px;margin:0 auto;}
        .inner{height:40px;59px;float:left;text-align:center;background:#666;line-height:40px;margin-right:1px;
                margin-top:1px;
        }
        .green{background:green;}
      </style>
      <script src="jquery.min.js" type="text/javascript"></script>
     </head>
     <body>
      <ul id="tp">
        <li class="tps">关于我</li>
        <li class="tps">你好</li>
        <li class="tps">信息</li>
        <li class="tps">服务</li>
        <li class="tps">假期</li>
      </ul>
    
      <div class="container">
        <ul>
            <li class="inner"></li>
            <li class="inner"></li>
            <li class="inner"></li>
            <li class="inner"></li>
            <li class="inner"></li>
            <li class="inner"></li>
            <li class="inner"></li>
            <li class="inner"></li>
            <li class="inner"></li>
            <li class="inner"></li>
            <li class="inner"></li>
            <li class="inner"></li>
            <li class="inner"></li>
            <li class="inner"></li>
            <li class="inner"></li>
            <li class="inner"></li>
        </ul>
     </div>
        <script>
        $(function(){
            function Pointer(x,y){
                this.x = x;
                this.y = y;
            }
            function Position(left,top){
                this.left = left;
                this.top = top;
            }
            $('.tps').each(function(i){
                this.init = function(){
                    $(this).attr('index',i);
                    
                    this.drag();
                }
                this.moveback = function(callback){
                    $(this).animate({
                        left:this.pos.left,
                        top:this.pos.top
                    },500)
                }
                this.Check = function(){
                    var currentItem  =  this;
                    var clision = null;
                
                    var position = [];
                    
                    $('.inner').each(function(){
                        
                        const { top, left } = $(this).offset();
                        position.push({
                            top:top,
                            left:left
                        });
                        $(this).attr('index',i);
                        //index.push($(this).index());
                                                if(    currentItem.pointer.x >$(this).offset().left &&
                                            currentItem.pointer.y > $(this).offset().top &&
                                            (currentItem.pointer.x < $(this).offset().left + $(this).width()) &&
                                            (currentItem.pointer.y < $(this).offset().top + $(this).height())
                                        ){                                    
                                            $(this).after($(currentItem));                                    
                                        }                            
                    })
                        //console.log(startIndex)
                        //console.log(endIndex)
                    
                        console.log(position)
                    
                    
                }
                this.add = function(){
                    
                }
                this.drag = function(){
                    var oldposition = new Position();
                    var oldpointer = new Pointer();
                    var currentItem  = null;
                    var isDrag = false ;
                    $(this).mousedown(function(e){
                        e.preventDefault();
                        oldposition.left = $(this).offset().left;
                        oldposition.top  = $(this).offset().top;
                        oldpointer.x = e.clientX;
                        oldpointer.y = e.clientY;
                        currentItem = this;
                        isDrag = true;
                        
                        
                    })
                    $(document).mousemove(function(e){
                        var currentpointer = new Pointer(e.clientX,e.clientY);
                        if(!isDrag) return false;
                        $(currentItem).css('opacity',0.7);
                        var left = currentpointer.x - oldpointer.x + oldposition.left;
                        var top  = currentpointer.y - oldpointer.y + oldposition.top;
                        
                        $(currentItem).css({
                        position:'absolute',
                        left : left,
                        top : top
                        });
                        
                        currentItem.pointer = currentpointer;
                    })
                    $(document).mouseup(function(){
                        if(!isDrag) return false;
                        isDrag = false;
                        $(currentItem).css({
                        position:'',
                        
                        });
                        /**
                        currentItem.moveback(function(){
                            $(this).css({
                                "opacity" : "1",
                                "z-index" : 0
                            });
                        });
                        **/
                        currentItem.Check();
                    })
        
                }
                this.init();
                
            })
                
                
        })
                
                    
                
            
        </script>
      </div>
     </body>
    </html>

    仅作参考 。。。。。

  • 相关阅读:
    虚拟ip配置
    file命令
    df 和du 命令统计磁盘空间不准确
    硬件防火墙品牌排名
    042_翻转单词顺序
    hdu 5057 Argestes and Sequence
    Python+Django+SAE系列教程11-----request/pose/get/表单
    管道(Pipe)/createPipe
    Java的递归算法
    墨菲定律、二八法则、马太效应、手表定理、“不值得”定律、彼得原理、零和游戏、华盛顿合作规律、酒与污水定律、水桶定律、蘑菇管理原理、钱的问题、奥卡姆剃刀等13条是左右人生的金科玉律
  • 原文地址:https://www.cnblogs.com/vali/p/5664368.html
Copyright © 2020-2023  润新知