我在左栏中有一个房间列表,在右栏中有一个SVG楼层平面图。我有两个问题:
当使用纯CSS滚动左栏中的链接时,有没有办法让我更改楼层平面图中房间的颜色?
如果答案是否定的,我采取什么方法?我猜猜某些JS,但不知道从哪里开始或搜索什么。
这是我到目前为止的一个实例:
div#list {float:left; width:50%}
div#list ul li a {color:#333}
div#list ul li a:hover {color:#ED5D45}
div#map {float:right; width:50%}
div#map svg#plan polygon.building {fill:#CCC}
div#map svg#plan a polygon.studio-j {fill:#333}
div#map svg#plan a:hover polygon.studio-j {fill:#ED5D45}

<div id="list">
<ul>
<li class="j"><a href="/studios/j/">Studio J</a></li>
</ul>
</div>
<div id="map">
<svg id="plan" x="0" y="0" viewBox="0 0 412 408" enable-background="new 0 0 412 408" xml:space="preserve">
<polygon class="building" points="0,68.1 377.2,0 411,407.3 20,405.7 "/>
<a xlink:href="/studios/j/" xlink:title="Studio J">
<polygon class="studio-j" points="214,126 261,126 261,131 388,131 377.2,0.4 213.5,30.2 "/>
</a>
</svg>
</div>
&#13;
答案 0 :(得分:1)
由于链接与SVG无关,因此无法使用CSS。
需要JS来简化这个问题。
或者,只需将链接放在#map
div中(没有列表结构)并相应地调整CSS。
a:hover {
color: red
}
div#map {
float: right;
width: 50%
}
div#map svg#plan polygon.building {
fill: #CCC
}
svg#plan a polygon.studio-j {
fill: #333
}
svg#plan a:hover polygon.studio-j {
fill: #ED5D45
}
.j:hover + svg#plan a polygon.studio-j {
fill: green;
}
&#13;
<div id="map">
<a class="j" href="/studios/j/">Studio J</a>
<svg id="plan" x="0" y="0" viewBox="0 0 412 408" enable-background="new 0 0 412 408" xml:space="preserve">
<polygon class="building" points="0,68.1 377.2,0 411,407.3 20,405.7 " />
<a xlink:href="/studios/j/" xlink:title="Studio J">
<polygon class="studio-j" points="214,126 261,126 261,131 388,131 377.2,0.4 213.5,30.2 " />
</a>
</svg>
</div>
&#13;