svg图形拖动自定义指令,多图,改变viewbox
2017-11-17 09:16
417 查看
directives:{
drag(el,binding){
var oDiv =el;
oDiv.onmousedown = function(e){
e.preventDefault();
e.stopPropagation();
var disX = e.offsetX;
var disY = e.offsetY;
var locX=binding.value.item.lx;
var locY=binding.value.item.ly
document.onmousemove = function(e){
e.preventDefault();
e.stopPropagation();
var x=(e.pageX-disX-$('#svg').offset().left)/binding.value.ratio+locX;
var y=(e.pageY-disY-$('#svg').offset().top)/binding.value.ratio+locY;
binding.value.setLocal(x,y,binding.value.item)
};
document.onmouseup = function(){
document.onmousemove=null;
document.onmouseup=null;
};
}
},
},
methods:{
setLocal(x,y,item){
item.lx=x;
item.ly=y;
}
}
注意:ratio为svg中viewbox实际与实际svg标签大小的比例,locX,locY为图形的起始位置,setLocal为记录图形的移动到的位置,方便下一次移动
drag(el,binding){
var oDiv =el;
oDiv.onmousedown = function(e){
e.preventDefault();
e.stopPropagation();
var disX = e.offsetX;
var disY = e.offsetY;
var locX=binding.value.item.lx;
var locY=binding.value.item.ly
document.onmousemove = function(e){
e.preventDefault();
e.stopPropagation();
var x=(e.pageX-disX-$('#svg').offset().left)/binding.value.ratio+locX;
var y=(e.pageY-disY-$('#svg').offset().top)/binding.value.ratio+locY;
binding.value.setLocal(x,y,binding.value.item)
};
document.onmouseup = function(){
document.onmousemove=null;
document.onmouseup=null;
};
}
},
},
methods:{
setLocal(x,y,item){
item.lx=x;
item.ly=y;
}
}
注意:ratio为svg中viewbox实际与实际svg标签大小的比例,locX,locY为图形的起始位置,setLocal为记录图形的移动到的位置,方便下一次移动
相关文章推荐
- SVG(可缩放矢量图形)视区盒属性viewbox与preserveAspectRatio
- xml矢量图:svg的viewBox和vml的coordsize决定的虚坐标系简说
- 理解SVG的viewport,viewBox,preserveAspectRatio
- 【改进】Qt界面显示图片,在图上绘制图形,拖动顶点改变大小
- SVG的viewBox与放缩
- 深入理解SVG坐标体系和transformations- viewport, viewBox,preserveAspectRatio
- 理解SVG图片标签的viewport、viewBox、preserveAspectRatio缩放
- SVG图形拖动功能的实现
- xml矢量图 svg的viewBox和vml的coordsize,虚坐标系
- SVG ViewBox
- [导入]svg图形拖动的例子/解决方法
- No.6 ios--ui--codereview 按住view拖动view可以改变view的位置
- [转载]理解SVG的viewport,viewBox,preserveAspectRatio
- SVG ViewBox
- SVG中的viewBox和preserveAspectRatio用法
- svg viewbox
- 理解SVG坐标系和变换:视窗,viewBox和preserveAspectRatio
- 理解SVG坐标系和变换:视窗,viewBox和preserveAspectRatio
- SVG的viewport,viewBox,preserveAspectRatio缩放
- 理解SVG坐标系和变换:视窗,viewBox和preserveAspectRatio