svg 相关问题

可缩放矢量图形(SVG)是一种基于XML的二维矢量图形格式,也可以在HTML中使用。不要仅仅因为您的项目使用SVG而添加此标记。相反,如果您的问题是关于SVG或与其密切相关的问题,请添加标记,例如如何使用SVG实现某些功能。



现在我想知道鼠标位置相对于我的div,所以我写了以下代码 它工作正常。 但是,当我使用Queryable在DIV添加调整大小功能时,就会出现问题。要调整SVG大小,我在其中添加了一个Viewbox选项。现在我的SVG看起来像This <svg viewBox="0 0 450 154" preserveAspectRatio="xMinYMin meet"> </svg> 但是现在,我的鼠标坐标工作不正常,我的线离鼠标距离更远,当我增加DIV尺寸时,它离鼠标更远。 当我在SVG中有一个ViewBox选项时,任何一个人都可以指导我如何计算我的偏移位置。 thanks将不胜感激。 如果您有一个Viewbox,则需要记住鼠标事件在客户端坐标系统中提供值,而不是通过ViewBox建立的坐标系。 thisBlogpost可能有助于解释这一点,这是一个example。 简而言之,在当前用户空间中获得坐标需要做的是: var m = El.getScreenCTM(); // note: assumes the root is an <svg> element, replace // document.documentElement with your <svg> element. var p = document.documentElement.createSVGPoint(); p.x = evt.clientX; p.y = evt.clientY; p = p.matrixTransform(m.inverse()); 变量P现在将包含元素EL的用户坐标系中的鼠标位置。 createsvgpoint被弃用。 解决此问题的更好方法是: $(document).on('pointermove', '.svg-circle', function(ev) { var m = ev.target.getScreenCTM(); var p = new DOMPoint(); p.x = ev.clientX; p.y = ev.clientY; p = p.matrixTransform(m.inverse()); console.log('p.x: ' + p.x); console.log('p.y: ' + p.y); });

回答 1 投票 0

如何使用Framer-Motion

import { type FC, useRef, useEffect } from "react" import { animate } from "motion" // formerly framer-motion const MyComponent:FC<{initialTransform:string, finalTransform:string}> = ({initialTransform, finalTransform}) => { const ref = useRef() useEffect(() => { animate(ref, {transform:finalTransform}, {update: (transform) => console.log({transform})}) },[]) return <g ref={ref} transform={initialTransform} > {... lots of SVG things...} </g> }

回答 1 投票 0



如何将动画SVG转换为反应功能组件

下载并将其转换为React功能组件。 我尝试使用

回答 3 投票 0


背景图片中的CurrentColorSVG

I有一个Inline SVG图像我用作背景,下面是一个模拟示例:对于此特定情况,您可以使用掩码并使用currentColor来更新颜色。确保用非透明颜色填充SVG。 background-color div { height: 300px; background-color: green; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'><path d='M0 0 H 80 V 100 H 0 Z' fill='black'></path></svg>"); }

回答 0 投票 0

SvgPathdataChrome48

SvgPathelement.pathseglist

回答 3 投票 0


自我重叠的SVG路径

<path d="M187 240 L188 240 L315 217 L317 217 L330 306 L247 233 L258 226 L292 222 L303 178 L353 165" fill="none" opacity="0.6" stroke-width="14" stroke = "red"/>

回答 3 投票 0


如何在VS代码1.97+

输入图像描述在这里 我不知道我遇到的是什么,但是我没有安装任何扩展名,而我的SVG开始以常规文件的形式打开,而我不需要,我需要HTML标记。 我不知道...

回答 3 投票 0

回答 1 投票 0

如何在Next.js?

我想将SVG用作组件,这是我所做的所有步骤: Homeicon是我想使用的SVG图标,但我会收到此错误: [服务器] react.jsx:类型是无效的 - 预期一个字符串(用于bui ...

回答 1 投票 0

可以将SVG填充到内联CSS梯度字符串?

ConsissisAn100x100Svg<rect>和A100x100<div>。如果我想在线添加梯度,我可以将语法linear-gradient(#f69d3c, #3f87a6);用作其背景属性的有效CSS颜色。 尽管在CSS Spec中的同一位置指定(fillCSS数据类型,,但似乎是not,也可以接受有效的CSS颜色,但似乎是not Spec链接HEREY)。是否可以使这样的内联字符串适用于SVGstroke和url(...)?? 我知道您可以linear-gradient(...)<image>filliD,这个问题是特定的,如果可以通过字符串在线完成。 每个示例: stroke 一种技术解决方案是在填充中嵌入整个SVG块,例如: url() 这有点疯狂,而不仅仅是指定一个<linearGradient>,因此,如果有可能更明智的事情,那就太好了。 根据MDN: 它们与使用的位置分开定义,从而促进可重复性。您必须给每个梯度一个ID属性,以允许其他元素引用它。梯度定义可以放在元素或元素中。 您可以通过在SVG中添加定义来解决此问题: <p>Fails. Can it be made to work?</p> <div style="height: 100px; display: flex"> <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"> <!-- this fill won't work! --> <rect width="100" height="100" fill="linear-gradient(#f69d3c, #3f87a6)" /> </svg> </div> <p>Works:</p> <div style=" width: 100px; height: 100px; background: linear-gradient(#f69d3c, #3f87a6); "> </div>我建议阅读以下内容:Https://ddeveloper.mozilla.org/en-us/docs/web/svg/svg/tutorial/gradients有关更多信息

回答 1 投票 0

回答 0 投票 0

是SVG参数,例如“ XMLNS”和“版本”?

在我在Internet上看到的SVG示例中,大约一半,该代码包裹在简单的简单标签中。 在另一半,SVG标签具有许多复杂属性,例如...

回答 3 投票 0


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.