2

我遇到了 VML 问题(我将其用作 svg 的后备)

我使用 jQuery UI draggable 让用户能够移动元素。当我通过更改高度和宽度的样式属性来调整图像(即 av:image)的大小时会出现问题。

此时发生的情况是元素卡在其容器的左上角,无法再拖动。

奇怪的是,当我在 JavaScript 控制台中询问可拖动元素的位置(顶部、左侧)时,我得到了值,并且当我单击并拖动时这些值会发生变化——即使元素在视觉上没有移动.. .

以前有人遇到过这个问题吗?

这是我改变元素大小的地方。

$($image)
    .css({
        'width' : zoomInPx_width + "px",
        'height' : zoomInPx_height + "px"
    });

可拖动的设置非常简单

$($image).draggable({
    drag: function () { /*callback here*/ }
})
4

2 回答 2

3

最后我设法使这项工作。

当我们更改可拖动元素的大小时,似乎 VML 在 IE 8 上崩溃。所以,当滑动发生时,我不得不破坏元素并从头开始重新创建它......

这并不是真正的高性能,但这是唯一对我有用的解决方法。

顺便说一句, .detach() 不起作用,您必须销毁它并从头开始重新创建它。

您也可以在那里获得一些信息:http ://www.acumen-corp.com/Blog/tabid/298/EntryId/26/Using-jqueryRotate-ui-draggable-and-resizable-images-in-IE7-IE8-和任何其他浏览器.aspx

于 2012-02-24T15:08:34.873 回答
2

在我的应用程序中,我使用了以下代码:

var $cloned_image = $($image).clone().get(0);
$($image).remove();

// need add draggable again
$($cloned_image).draggable();

document.getElementById('k').appendChild($cloned_image);
$image = $cloned_image;
于 2012-11-16T15:57:42.673 回答