gpt4 book ai didi

jquery-ui - jQuery UI 可拖动到更小的可放置对象

转载 作者:行者123 更新时间:2023-12-03 06:53:03 24 4
gpt4 key购买 nike

我正在使用这个http://jqueryui.com/demos/droppable/

但是我在拖动到比可拖动对象更小的可放置对象时遇到问题。
它不会落在可放置的物体上,而是落在可放置物体的左上角。

alt text
(来源:yart.com.au)

有什么办法可以解决这个问题吗?

这是代码,谢谢。

  $('.draggable').draggable({
revert: 'invalid',
revertDuration: 500,
appendTo: 'body',

helper: function(event, ui) {
return $(this).clone().appendTo('body').css('zIndex', 5).show();
},
drag: function(event, ui) {
$(ui.helper).removeClass("enlarge");
$(ui.helper).addClass("thumbnail");
$(this).hide();
},
stop: function(event, ui) {
$(this).show();
//$(this).addClass("enlarge");
if ($(this).parent().hasClass("imageContainer")) {
$(this).addClass("thumbnail");
}
else {
$(this).addClass("enlarge");
}
},
//cursorAt: { top: 30, left: 40 },
delay: 100,
refreshPositions: true
});


$('.imageContainer').droppable({
accept: '.draggable',
drop: function(event, ui) {
ui.draggable.css({
"position": "relative",
"left": "0px",
"top": "0px"
});
if ($(this).children().length == 0) {
// ui.draggable.addClass("thumbnail");
$(ui.draggable).appendTo(this);
$(this).removeClass("border");
}
},
over: function(event, ui) {
ui.draggable.removeClass("enlarge");
ui.draggable.addClass("thumbnail");
$(this).addClass("border");
},
out: function(event, ui) {
// ui.draggable.removeClass("zoomIn")
$(this).removeClass("border");
},

tolerance: 'intersect'
});

CSS:

.thumbnail  {
height:60px;
margin-right:10px;
width:80px;
z-index:1;
}
.enlarge {
border:5px solid white;
height:145px;
width:195px;
}

最佳答案

  $('.draggable').draggable({
revert: 'invalid',
revertDuration: 500,
appendTo: 'body',

helper: function(event, ui) {
return $(this).clone().appendTo('body').css('zIndex', 5).show();
},
drag: function(event, ui) {
/* $(ui.helper).removeClass("enlarge");
$(ui.helper).addClass("thumbnail"); */
$(this).hide();
},
stop: function(event, ui) {
$(this).show();
//$(this).addClass("enlarge");
if ($(this).parent().hasClass("imageContainer")) {
$(this).addClass("thumbnail");
}
else {
$(this).addClass("enlarge");
}
},
//cursorAt: { top: 30, left: 40 },
delay: 100,
refreshPositions: true
});

尝试用上面的代码块替换您的代码,看看它是否接近您想要的。它可能还不完美,但让我们看看是否可以一次解决一个变化。我希望观察到的是,它大约会像应该的那样下降。

关于jquery-ui - jQuery UI 可拖动到更小的可放置对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2542137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com