【问题标题】:set right position in a draggable div在可拖动的 div 中设置正确的位置
【发布时间】:2012-07-25 19:23:44
【问题描述】:

我想做什么:

将 div 设为可拖动,然后制作一个按钮将其位置重置为默认值。

问题是,为什么我设置为可拖动后,我不能设置绝对 div 的right 位置?

编辑:先拖动div,然后点击按钮。

$('div').draggable();
$('#button').click(function(){
   $('div').draggable('destroy').css({ // destroy was only a test
       top: 0,
       right: 0 // nothing happens
   });
});

jsfiddle demo.

这个职位只有在我使用left时才有效。

编辑2:我不使用左侧位置的原因,是因为如果我放大,会覆盖其他东西。任何提示,做我的客人。

我错过了什么?

【问题讨论】:

  • 我想我不明白你的问题..
  • @Gabriel Santos:按我说的打开 jsfiddle 演示,拖动 div 并单击按钮。

标签: javascript jquery position draggable


【解决方案1】:

这是因为$.draggable() 设置left 在您拖动div 时,并且在您调用$.draggable('destroy') 后保持设置

只需使用left: auto;http://jsfiddle.net/9uLCY/7/向左重置

$('div').draggable();
$('#button').click(function(){
   $('div').draggable('destroy').css({
        top: 0,
        left: 'auto',
        right: 0
    });
});

【讨论】:

  • 有趣的是animate() dosent 像css 一样工作,left 保持在同一个位置。
  • $.css() 只设置 CSS 属性。 $.animate 更聪明,它知道如果你为左边设置动画,右边需要自动,反之亦然
【解决方案2】:

因为您的可拖动元素上仍有一个“左”值,它优先于“右”值。您需要“取消设置”左值

【讨论】:

    【解决方案3】:

    首先将左侧位置重置为auto,因为可拖动方法还有左侧位置,然后设置右侧位置。

    【讨论】:

    • 重置为0无济于事,需要重置为auto,这样left, right and width之间就没有冲突了
    猜你喜欢
    • 2012-08-25
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多