我正在尝试使用单击功能将所有选定的元素对齐在右边缘。因为使用jQuery offset,所以我无法访问offset.right,所以我需要做一些数学运算。
我有一些Javascript可以找到具有最大左偏移量的元素,然后找到具有最大宽度的元素。然后,我将最大偏移量+最大宽度应用于所有元素。
$('#align-right').click(function() {
var x = $('.ui-selected')[0];
$('.ui-selected').each(function(i, el) {
if ($(this).offset().left > $(x).offset().left)
x = el;
});
var highestOffset = $(x).offset().left;
var biggestWidth = $(x).width();
$('.ui-selected').css('left', highestOffset + biggestWidth);
});
但是,我还需要从该偏移量减去每个元素的宽度。每个元素的宽度可以不同,所以我不能使用设置值。
遍历所有元素,找到“最右边”的元素,然后计算right = left + width。
找到元素后,将每个元素的左侧设置为=最右边的元素的右侧-每个元素的宽度。
$('#align-right').click(function () {
var $that = $(".ui-selected:eq(0)");
$(".ui-selected:gt(0)").each(function () {
var $this = $(this);
var thatRight = $that.offset().left + $that.width();
var thisRight = $this.offset().left + $this.width();
if (thisRight > thatRight) {
$that = $this;
}
});
$('.ui-selected').each(function () {
var thatRight = $that.offset().left + $that.width();
$(this).css({
left: thatRight - $(this).width()
});
});
});
在此进行演示,可以随意拖动和/或调整元素的大小。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句