gpt4 book ai didi

javascript - Raphael.js : Why is the SVG positioned -0. 5px 向左?

转载 作者:搜寻专家 更新时间:2023-10-31 08:08:08 25 4
gpt4 key购买 nike

我正在开发的网络应用程序的一项功能允许将 DIV 中的图像替换为与 SVG 完全相同的副本。这是使用 Raphael.js 库完成的。

下面是包含图像的此类 HTML 元素的示例:

<div id="ow-0" reference="0" class="object-wrapper" style="z-index: 3; width: 231px; left: 116px; top: 217px; outline: rgb(0, 0, 0) solid 1px; ">
<img id="o-0" reference="0" class="object image" src="image-gallery/intermediate/3295094303_2b50e5fe03_z.jpg" />
</div>

当调用名为 addSVG() 的方法时,图像父 div 被设置为 Raphael 对象 paper,SVG 与在隐藏原始图像后添加图像:

            // Create the SVG and add it to the Viewport
this.addSVG = function(){

// Hide the HTML element before replacing it with the SVG
$("#o-"+this.ref).hide();

// Create the "paper" (svg canvas) before embedding the actual SVG
this.canvas = new Raphael(document.getElementById("ow-"+this.ref), this.width, this.height);

if (this.type=="image" || this.type=="QR"){
this.svg = this.canvas.image(this.src,0,0,this.width,this.height);

}
else {

}
}

几乎一切都很完美,除了 svg 的位置,它向左偏移了 -0.5 像素(当然,这很烦人)。下面是运行后的 HTML 代码:

    <div id="ow-0" reference="0" class="object-wrapper" style="z-index: 3; width: 231px; left: 116px; top: 217px; outline: rgb(0, 0, 0) solid 1px; ">
<svg style="overflow: hidden; position: relative; left: -0.5px; " height="170" version="1.1" width="231" xmlns="http://www.w3.org/2000/svg">
<desc style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); ">Created with Raphaël 2.1.0</desc>
<defs style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); "></defs>
<image style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); " x="0" y="0" width="231" height="170" preserveAspectRatio="none" xlink:href="image-gallery/intermediate/3295094303_2b50e5fe03_z.jpg"></image>
</svg>
<img id="o-0" reference="0" class="object image" src="image-gallery/intermediate/3295094303_2b50e5fe03_z.jpg" style="display: none; ">
</div>

为什么要添加 -0.5px,如何防止它发生?顺便说一句,作为实验,我调整了浏览器窗口的大小,并且不再添加 -0.5px ...

最佳答案

我发现解决这个问题的唯一方法是显式地将 SVG 的 topleft 属性(使用 CSS)设置为 0,并将 CSS 标记为规则为 !important

svg {
top: 0 !important;
left: 0 !important;
}

但是,我仍然不知道问题的原因,所以如果有人有答案,请与我们分享。

关于javascript - Raphael.js : Why is the SVG positioned -0. 5px 向左?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12900261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com