zoukankan      html  css  js  c++  java
  • Ext框架下的元素拖动

    最开始使用的js的原生代码:

    一般的js的元素拖动,可用三个事件进行监控处理:mousedown、mousemove、mouseup

    onNestThumbFrameDrag: function(evt) {
        var self = this;
    
        switch(evt.type) {
            case "mousedown":
                self.draging = true;
            break;
    
            case "mousemove":
                if (self.draging) {
                    //拖动过程中的相关逻辑处理
                }
            break;
            
            case "mouseup":
                  self.draging = false;
                  //拖动结束后的相关逻辑处理
            break;
        }
    }
                            

    该过程要注意两点:

    1.拖动时候,若开始拖动速度较快,会导致拖动的鼠标偏离拖动物,所以mousemove 和 mouseup 不能只绑定在拖动物体上,要根据情况绑定在拖动范围的节点上或者body上

    2.mousedown时候,要给定一个标记,表示鼠标按下,之后mousemove的时候要判断鼠标按下后,才进行拖动处理

    Ext也有封装了一个dd模块,进行元素的拖动处理:

    initNestThumbFrameDrag: function() {
                var self = this;
    
                var dd = new Ext.dd.DD('nest-thumbnail-frame');
    
                dd.startDrag = function(x, y) {
                    //拖动前的逻辑处理
                    
                    //将拖动区域限制在id为nest-thumbnail的元素区域内
                    //dd.constrainTo('nest-thumbnail');
                    
                    //限制拖动的相对位移(相对当前拖动物体的位置)
                    //setXConstraint( int iLeft, int iRight, int iTickSize ) : void    
                    //setYConstraint( int iUp, int iDown, int iTickSize ) : void
                    dd.setXConstraint(0,0);//限制不能左右移动,即,只能上下移动
                };
    
                dd.onDrag = function(evt) {
                    //拖动过程逻辑处理
                };
    
                dd.endDrag = function(evt) {
                    //拖动结果处理
                };
    }    
  • 相关阅读:
    7 Django的模板层
    6 Django的视图层
    5 Django-1的路由层(URLconf)
    qt 如何安装 Debuggers 调试器 ?
    window7 x64 vs2015 如何编译 libqr 二维码生成库?
    如何在 window7 环境编译 zlib 库?
    LNK2026 模块对于 SAFESEH 映像是不安全的
    如何识别二维码?
    qt Multimedia 模块类如何使用?
    qt 使用msvc编译器出现乱码如何解决?字符串中存在空格?
  • 原文地址:https://www.cnblogs.com/xnn1993/p/7655579.html
Copyright © 2011-2022 走看看