2011-11-18 84 views
0

这是我的第一篇文章在这里,所以温柔与我同在)管理已拖动旋转的元素

我试图让使用MooTools的(还是1.2.5虽然简单编辑。)。每个元素都有一个拖动角以使其可调整大小。

整个事情真的很棒,直到元素被旋转。给它后-moz-变换:旋转(Xdeg)财产的药物以快疯了(简单的例子:http://jsfiddle.net/HTg57/1/

我知道为什么会这样 - 尽管元件转动的所有事件都作为元素将是正常的位置。

问题是 - 有没有可以处理这个问题的任何库? 我认为我自己知道如何解决这个问题,但这需要时间,我没有。

所以 - 有没有任何现成的解决方案,以便元素旋转时能够正常拖动工作?

回答

0

不知道你的意思是“正常工作”,但你真的应该看看这个,这更有意义(行为方式):http://jsfiddle.net/dimitar/HTg57/2/

var Box = new Class({ 

    mEl: null, 

    mDragEl: null, 

    mDrag: null, 

    initialize: function(pEl) { 
     this.mEl = pEl; 
     this.createDrag(); 
    }, 

    createDrag: function() { 
     this.mDragEl = new Element('div', { 
      'class': 'drag' 
     }).inject(this.mEl); 
     this.mEl.makeResizable({ 
      handle: this.mDragEl, 
      limit: { 
       x: [60,300], 
       y: [60,300] 
      } 
     }); 
    } 
}); 

new Box(document.getElement('div.box')); 
new Box(document.getElement('div.rotate')); 

它充分利用了element.makeResizable的带手柄和一个大小限制器。它在元素旋转时也可以正常工作。玩得开心...

+0

“正常工作” - 我的意思是,通常情况下(旋转(0度)),当我拖动到元素的正确宽度改变。设置旋转后(-45度)向右拖动意味着元素已经改变了宽度和高度。 我想要的是,元素旋转后的右拖动仍然只改变其宽度。旋转后很难做到这一点 – radmen

+0

所以添加一个修饰符:http://jsfiddle.net/dimitar/HTg57/3/ –

+0

嗯并非如此。看看这一个 - http://jsfiddle.net/j2ArR/你可以改变修饰符,但它的工作非常糟糕。 – radmen