Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在可拖动div中设置正确的位置_Javascript_Jquery_Position_Draggable - Fatal编程技术网

Javascript 在可拖动div中设置正确的位置

Javascript 在可拖动div中设置正确的位置,javascript,jquery,position,draggable,Javascript,Jquery,Position,Draggable,我想做的是: 将一个div设置为可拖动,然后按一个按钮将其位置重置为默认位置 问题是,为什么在设置为可拖动后,我不能将绝对div的位置设置为右侧 编辑:首先拖动div,然后单击按钮 $('div').draggable(); $('#button').click(function(){ $('div').draggable('destroy').css({ // destroy was only a test top: 0, right: 0 // nothin

我想做的是:

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

问题是,为什么在设置为可拖动后,我不能将绝对div的位置设置为右侧

编辑:首先拖动div,然后单击按钮

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

只有在我使用
left
时,该位置才起作用

编辑2:我不使用左侧位置的原因是,如果放大,将覆盖其他内容。有什么建议,请便


我缺少什么?

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

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

只需使用
left:auto重置left


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

我想我不明白你的问题。@Gabriel Santos:如我所说打开JSFIDLE演示,拖动div并单击按钮。重置为0没有帮助,您需要将其重置为
auto
,以便
左、右和宽度之间不存在冲突
有趣的是
animate()
css
一样工作,
保持在相同的位置。
$.css()
只设置css属性<代码>$。动画
更智能,它知道如果要设置左侧动画,则右侧需要自动设置,反之亦然
$('div').draggable();
$('#button').click(function(){
   $('div').draggable('destroy').css({
        top: 0,
        left: 'auto',
        right: 0
    });
});