我有一张坐标用点标记的地图。坐标是铺设路径的城市(SVG path
):
我也有一个带有文本的 HTML 页面。这是完整的代码,包括包含path
点之间的五个单独路径 ( ) 的 SVG 元素:
* {margin: 0; padding: 0;}
.map {
z-index: -1;
position: fixed;
left: 200px;
top: 0;
}
.container {
z-index: 1;
width: 200px;
padding: 0 50px;
background: rgba(105, 105, 105, 0.5);
}
<!--Контейнер с картой-->
<div class="map">
<svg id="svg__map" viewBox="0 0 2000 1200" width="1066" height="674">
<!--Карта-->
<g><image width="1066" height="674" href="https://i.imgur.com/XJuEphL.jpg"></image></g>
<!--Путь от A до B-->
<path id="path1" class="path1" fill="none" stroke="#663300" stroke-width="5px" d="m 1006.6935,300.78037 c -13.55545,29.46202 -27.11017,58.92249 -67.74599,70.14934 -40.63581,11.22686 -108.35019,4.21965 -147.13455,11.65573 -38.78435,7.43609 -48.63328,29.31505 -58.48177,51.19306" />
<!--Путь от B до C-->
<path id="path2" class="path2" fill="none" stroke="#663300" stroke-width="5px" d="m 733.33119,433.7785 c -82.33315,24.09565 -164.66581,48.19116 -211.78405,77.70384 -47.11823,29.51267 -59.0192,64.44082 -70.91984,99.368" />
<!--Путь от C до D-->
<path id="path3" class="path3" fill="none" stroke="#663300" stroke-width="5px" d="m 450.6273,610.85034 c -40.2612,17.04533 -80.51892,34.08919 -105.72098,31.21185 -25.20205,-2.87734 -35.34421,-25.6782 -45.48659,-48.47955" />
<!--Путь от D до E-->
<path id="path4" class="path4" fill="none" stroke="#663300" stroke-width="5px" d="m 299.41973,593.58264 c -3.42221,-25.74545 -6.84463,-51.49251 15.38407,-59.43661 22.2287,-7.94411 70.10773,1.91513 103.14042,-11.8242 33.0327,-13.73933 51.21935,-51.07636 69.40684,-88.41511" />
<!--Путь от E до F-->
<path id="path5" class="path5" fill="none" stroke="#663300" stroke-width="5px" d="m 487.35106,433.90672 c -28.94353,0.82098 -57.88415,1.64188 -84.24414,-21.98436 -26.35998,-23.62623 -50.13229,-71.6952 -78.04729,-85.49903 -27.91501,-13.80383 -59.96879,6.66336 -92.02183,27.13006" />
</svg>
</div>
<!--Контейнер с текстом-->
<div class="container">
<!--Пунк A-->
<div class="item__a">
<h2>Пунк A</h2>
<div class="text__about">
<p>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a<br>пунк a</p>
</div>
<div class="text__other">
<p>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст</p>
</div>
</div>
<!--Пунк B-->
<div class="item__b">
<h2>Пунк B</h2>
<div class="text__about">
<p>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b<br>пунк b</p>
</div>
<div class="text__other">
<p>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст</p>
</div>
</div>
<!--Пунк C-->
<div class="item__c">
<h2>Пунк C</h2>
<div class="text__about">
<p>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c<br>пунк c</p>
</div>
<div class="text__other">
<p>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст</p>
</div>
</div>
<!--Пунк D-->
<div class="item__d">
<h2>Пунк D</h2>
<div class="text__about">
<p>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d<br>пунк d</p>
</div>
<div class="text__other">
<p>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст</p>
</div>
</div>
<!--Пунк E-->
<div class="item__e">
<h2>Пунк E</h2>
<div class="text__about">
<p>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e<br>пунк e</p>
</div>
<div class="text__other">
<p>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст</p>
</div>
</div>
<!--Пунк F-->
<div class="item__f">
<h2>Пунк F</h2>
<div class="text__about">
<p>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f<br>пунк f</p>
</div>
<div class="text__other">
<p>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст<br>текст</p>
</div>
</div>
</div>
问题:如何根据正在查看的 HTML 内容,分别使用指向页面滚动的链接来启动每个路径的绘制动画?每个带有城市信息的 HTML 片段的标记如下所示,例如 item B
:
<!--Пунк B-->
<div class="item__b">
<h2>Пунк B</h2>
<div class="text__about">
<p>пунк b</p>
</div>
<div class="text__other">
<p>текст</p>
</div>
</div>
item__b
是包含城市信息的 HTML 片段的父元素B
。当这个元素的顶部接触到浏览器窗口的底部时,从点到点的路径在A
点B
结束B
。
text__about
— 当滚动这个元素时,什么也没有发生;
text__other
- 当滚动这个元素时,当它的上部接触到浏览器窗口的下部时,开始绘制从点到点的B
路径C
。并在元素顶部item__с
触及浏览器窗口底部时结束;
有兴趣通过问题标签中指示的任何方式和技术详细描述此类实现和实现本身。