javascript - 在 React 中操作 SVG 组件

标签 javascript css reactjs

我是编程新手,目前正在使用 React JS 构建一个冲浪应用程序。在我的登陆页面上,我想沿着海岸线的图像渲染一些位置图钉。我希望这些图钉最终可以点击,并带您查看有关冲浪条件的更详细信息的 View (为此查询 API)。我还希望其中一个引脚具有动画效果,具体取决于它是否与我向用户推荐的冲浪位置相对应。

有人建议我为此使用 SVG。然而,我对自己所做的所有研究感到不知所措,不确定如何处理这样的事情,或者 SVG 是否最有意义。我一直在尝试将 SVG 文件转换为 React 组件,并将它们渲染在页面上,但不确定如何控制定位、添加动画等。

如有任何建议,我们将不胜感激!谢谢。

最佳答案

抛开 react 不谈,了解 CSS 定位以及 SVG 图形渲染方式将帮助您朝着正确的方向开始。您可以将这些知识应用到任何框架(React、Vue、Angular 等)。

CSS 定位

https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Positioning

如何缩放 SVG

https://css-tricks.com/scale-svg/

我创建了一个叠加 SVG 图像并应用单击事件的小示例。将其想象为 map 上的图钉。

const green = document.getElementById('green');
green.addEventListener('click', () => alert('Surfs up!'), false);
#orange {
	outline: 1px dotted red;
	width: 200px;
}
#green {
	position: absolute;
	top: 30px;
	left: 30px;
	z-index: 2;
	outline: 1px dotted red;
	width: 20px;
	height: 20px;
}
<svg id="orange" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10">
	<circle fill="orange" cx="50%" cy="50%" r="5"/>
</svg>

<svg id="green" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10">
	<circle fill="green" cx="50%" cy="50%" r="5"/>
</svg>

关于javascript - 在 React 中操作 SVG 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52636668/

相关文章:

javascript - 我的指令停止与另一个指令结合使用.. Angular.js

javascript - 如何禁用第二个选择选项?

javascript - 调用 .length 时无法读取 null 的属性 'length'

html - Chrome 打印错误 - 在页面顶部错误地打印表格标题

javascript - accordion+tab = 之前的内容不消失

html - 将鼠标悬停在圆圈上以增加大小,文字也会增加

javascript - 当需要在不同组件之间共享 react 状态时,最好的方法是什么?

javascript - Bootstrap 4下拉菜单悬停与Jquery

javascript - ReactJS: "Uncaught SyntaxError: Unexpected token <"

reactjs - 等待 useLazyQuery 响应