我正在寻找一个我希望已经解决的问题的解决方案。 但我看到只有大量项目具有很多功能,但没有简单的解决方案。
其实我需要得到类似的东西:
所以要在箭头上绘制一个包含一些正方形(div)的div
<div id="container">
<div class="white_field"></div>
<div id="1" class="black_field">
<br style="clear:both;">
<div id="2" class="black_field">
<div class="white_field"></div>
<br style="clear:both;">
<div id="3" class="black_field">
<div class="white_field"></div>
</div>
我看着帆布方向,但偶然发现画布在我的div后面看不到(也许一些z-index应该有帮助) 但仍然很奇怪,我找不到一些现成的解决方案似乎经常出现在我身上。 (在网站上解释一些箭头几乎是必须的)
答案 0 :(得分:36)
您可以考虑使用SVG。
特别是,您可以使用带有箭头路径的标记端的线条。
务必设置orient = auto,以便旋转箭头以匹配线的斜率。
由于SVG是一个DOM元素,您可以在javascript中控制该行的开始/结束位置。
这是代码和小提琴:http://jsfiddle.net/m1erickson/9aCsJ/
<svg width="300" height="100">
<defs>
<marker id="arrow" markerWidth="13" markerHeight="13" refx="2" refy="6" orient="auto">
<path d="M2,2 L2,11 L10,6 L2,2" style="fill:red;" />
</marker>
</defs>
<path d="M30,150 L100,50"
style="stroke:red; stroke-width: 1.25px; fill: none;
marker-end: url(#arrow);"
/>
</svg>
答案 1 :(得分:4)
使用库,例如 JSPlumb :https://jsplumbtoolkit.com/
答案 2 :(得分:2)
我不知道是否有人再看这个帖子,但这里是我使用过的解决方案,它与@markE答案略有不同,因为这个答案可以更容易地指定线路需要启动的确切位置并停止。
<head>
<style>
.arrow{
stroke:rgb(0,0,0);
stroke-width:2;
marker-end:url(#markerArrow)
}
</style>
</head>
<body>
<svg height="210" width="500">
<defs>
<marker id="markerArrow" markerWidth="13" markerHeight="13" refX="2" refY="6"
orient="auto">
<path d="M2,2 L2,11 L10,6 L2,2" style="fill: #000000;" />
</marker>
</defs>
<line x1="0" y1="0" x2="200" y2="100" class="arrow" />
</svg>
</body>
您所要做的就是改变线的x和y坐标!我在我的反应应用程序中使用了这个答案,它工作得非常好。 继承人fiddle。
答案 3 :(得分:0)
创建箭头很简单。 See this example on CSS Tricks。 也许在具有箭头线的容器内使用它可能会这样做。
答案 4 :(得分:0)