1

我正在尝试调整标尺的大小。

当处于水平模式时,它会在您调整大小时扩展和收缩。
但是在垂直模式下,标尺向左移动,缩小越多,而在扩展时向右移动。

您可以拖动小红线调整标尺的大小。


这是jsFiddle

这是来源的一部分:

ruler.css({
    width: e.pageY -ruler.offset().top
});

完整来源在这里:

$.event.add( document, "mousemove", function(e){
e.stopPropagation(e);
if(ruler_resize_active) {
    console.log(".ruler-resize:mousemove");
    console.log(ruler.offset().left);
    console.log(ruler.offset().top);
    if(options.orientation == "vertical") {
            ruler.css({
             width: e.pageY - ruler.offset().top
        });
            }
     }
});
4

1 回答 1

1

我不知道 jQuery,所以我不能告诉你添加修复的最佳方法,但如果我理解你的问题,你只需要设置一个 transform-origin。默认为中心中心,因此在调整大小时中心点会移动。如果将其设置为左上角,它将按预期工作。

例如,我在添加到标尺的 CSS 中为 webKit(使用其前缀)添加了它:

var ruler = $(this)
    .addClass('ruler')
    .css({
        minWidth: options.minWidth,
        maxWidth: options.maxWidth,
        width: options.width,
        webkitTransformOrigin: "top left"
    });

相反,您应该将它设置在您通常在 jQuery 中设置的正确位置,使用 jQuery 用来设置变换原点的任何方法(可能就在您应用旋转之前,或一些添加的参数)。您还应该添加各种其他前缀和无前缀版本。对于无前缀版本,它应该是transformOrigin(小写 t)。

示例:http: //jsfiddle.net/Bst6G/3/

于 2013-05-30T06:59:16.557 回答