拖动时jQuery UI舍入元素的宽度

时间:2015-08-10 14:12:00

标签: javascript jquery css jquery-ui draggable

当我检查页面上的元素时,我发现它的宽度 83.2像素

我使用jQuery UI使其“可拖动”:

$el.draggable({
    start: function (event, ui) {
        //$(ui.helper).css('margin', 0); //prevent jumping
        console.log('width:', $(ui.helper).css('width'));
        //console.log('width:', $(ui.helper).width());
        //console.log('width:', $(event.target).css('width'));
    }
});

拖动元素后输出到控制台的是width: 83px。 这导致稍后元素文本中的换行符。

jQuery UI是否围绕宽度和高度? 如何获得更准确的值?

1 个答案:

答案 0 :(得分:3)

我在这个问题中找到了答案: https://stackoverflow.com/a/16072668/426266

jQueryUI似乎在拖动元素时将元素的宽度设置为整数值。 此外,$(element).width()将始终返回舍入的整数值。

我解决了这个问题:

$el.draggable({
    start: function (event, ui) {

        var width = event.target.getBoundingClientRect().width;

        $(ui.helper).css({
            'width': Math.ceil(width)
        });
    }
});

现在,当元素被拖动时,不再有换行符。