【发布时间】:2019-05-19 17:21:09
【问题描述】:
可拖动和调整大小的代码在这个函数中
makeDragableLine('#maindiv #annotationText',jQuery('#maindiv'));
HTML/SVG 部分代码如下:-
<div id="maindiv">
<div id="annotationText">
<svg id="line" height="210" width="500">
<line x1="0" y1="0" x2="200" y2="200" style="stroke:rgb(255,0,0);stroke-width:2" />
</svg>
</div>
</div>
下面是主要功能
function makeDragableLine(selector,obj){
var height=obj.height();
var width=obj.width();
var objdiv = $(selector);
var line = $("#line", objdiv);
var objdiv=jQuery( selector );
jQuery( selector ).draggable({
containment: obj,
drag: function( event, ui ) {
var cleft=ui.position.left*100/width;
var top=ui.position.top*100/height;
jQuery(event.target).attr('data-offsetx',cleft);
jQuery(event.target).attr('data-offsety',top);
}, stop: function( event, ui ) {
console.log('doneDrag1');
var PageNumber=jQuery(event.target).parents('.page').attr('data-page-number');
var parentele=jQuery(event.target)
SaveAnnotation(parentele,PageNumber);
}
}).resizable({
//aspectRatio: 1.0,
handles: 'ne, se, sw, nw',
containment: obj,
minWidth: 40,
minHeight: 40,
resize: function(e, ui) {
line.attr({
width: ui.size.width,
height: ui.size.height
});
$("line", line).attr({
x1: ui.size.width,
y1: ui.size.height,
x2: e.offsetX,
y2: e.offsetY
});
}
});
}
如何使用 SVG 以正确的方式画线?我能够做到,但这不是我想要的方式。我在上面的代码中绘制的线没有在所有方向都跟随可调整大小的指针。
【问题讨论】:
-
它可以在没有 jQuery UI 的情况下完成。让我知道您是否可以接受使用纯 JavaScript 进行操作。
-
@enxaneta 是的,如果它满足我的要求是可以接受的。我还需要这条线的 x1,y1 和 x2,y2 点。我想在创建它时显示它。
标签: jquery html jquery-ui svg jquery-plugins