更改静态地图上活动项目的图钉颜色
Changing pin colour for active item on static map
这是小提琴:
https://jsfiddle.net/0a0yo575/1/
JS没有错误。据我所知,它应该从单击的任何内容中删除"红点"类并将其替换为"绿点"类?
if (previousTarget) {
previousTarget.className = "";
}
event.target.className = "green-point";
我对Javascript不是很熟悉,但是使用jQuery我可以轻松解决您的问题(我假设这没问题,因为您的问题上有jQuery
标签;-))。我还对CSS进行了一些小的更改,因此地图上的图钉实际上是正确的大小。此外,我在图钉中添加了一个cursor: pointer
,因此实际上很明显您可以单击它们。请参阅下面的完整工作示例,或 小提琴:https://jsfiddle.net/0a0yo575/3/
$(document).ready(function() {
$('.abs').click(function() {
$('.abs').removeClass('green-point').addClass('red-point');
$(this).removeClass('red-point').addClass('green-point');
$('.link').css('font-weight', '');
$('.link[data-marker="' + $(this).attr("id") + '"]').css('font-weight', 800);
});
$('.link').click(function() {
$('.abs').removeClass('green-point').addClass('red-point');
$('#' + $(this).data('marker')).removeClass('red-point').addClass('green-point');
$('.link').css('font-weight', '');
$(this).css('font-weight', 800);
});
});
a {
cursor: pointer;
}
.abs {
position: absolute;
width: 20px;
height: 32px;
background-position: center center;
background-repeat: no-repeat;
cursor: pointer;
}
#termini {
top: 37.5%;
left: 61.8%;
}
#french {
top: 45.5%;
left: 55.1%;
}
#mark {
top: 58%;
left: 39.3%;
}
#hakkasan {
top: 65%;
left: 12.6%;
}
#american {
top: 62%;
left: 42.8%;
}
#experiment {
top: 54%;
left: 57.2%;
}
#milk {
top: 37.3%;
left: 39.5%;
}
#pig {
top: 37.1%;
left: 38.5%;
}
#opium {
top: 55%;
left: 55.7%;
}
div {
position: relative;
}
div.img-responsive {
width: 100%;
height: 65.5%;
}
.red-point {
background-image: url("http://s23.postimg.org/842300vmv/point.png");
background-position: center center;
background-repeat: no-repeat;
}
.green-point {
background-image: url("http://s21.postimg.org/9u6n8t38z/green.png");
background-position: center center;
background-repeat: no-repeat;
background-size: 30px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<img class="img-responsive" src="http://s11.postimg.org/cbggzlpib/map.png">
<div class="abs red-point" id="termini">
<a onClick="turnGreen(event)"></a>
</div>
<div class="abs red-point" id="french">
<a onClick="turnGreen(event)"></a>
</div>
<div class="abs red-point" id="mark">
<a onClick="turnGreen(event)"></a>
</div>
<div class="abs red-point" id="hakkasan">
<a onClick="turnGreen(event)"></a>
</div>
<div class="abs red-point" id="american">
<a onClick="turnGreen(event)"></a>
</div>
<div class="abs red-point" id="experiment">
<a onClick="turnGreen(event)"></a>
</div>
<div class="abs red-point" id="milk">
<a onClick="turnGreen(event)"></a>
</div>
<div class="ab red-point" id="pig">
<a onClick="turnGreen(event)"></a>
</div>
<div class="abs red-point" id="opium">
<a onClick="turnGreen(event)"></a>
</div>
</div>
<ol>
<li class="link" data-marker="termini">
<a>Bar Termini</a>
</li>
<li class="link" data-marker="french">
<a>French House</a>
</li>
<li class="link" data-marker="mark">
<a>Mark's Bar</a>
</li>
<li class="link" data-marker="hakkasan">
<a>Hakkasan (bar)</a>
</li>
<li class="link" data-marker="american">
<a>Bar Americain at Brasserie Zedel</a>
</li>
<li class="link" data-marker="experiment">
<a>Experimental Cocktail Club</a>
</li>
<li class="link" data-marker="milk">
<a>Milk & Honey</a>
</li>
<li class="link" data-marker="pig">
<a>Blind Pig</a>
</li>
<li class="link" data-marker="opium">
<a>Opium</a>
</li>
</ol>
您的问题是red-point
内的 a
标签没有宽度和高度,因此您无法单击它。给他们
width: 100%;
height: 100%;
display: block;
你可以。
相关文章:
- 使用圆中的数组更改背景颜色项目
- 如何在flash html5画布项目中动态更改文本颜色
- 对选定的排序项目应用不同的颜色
- 更改js中的li项目符号颜色
- 为什么我将鼠标悬停在项目上时无法更改下拉菜单颜色
- 更改静态地图上活动项目的图钉颜色
- amCharts:动态更改项目符号颜色
- 更改数组中项目的颜色,javasccript程序
- 通过鼠标悬停amChart上具有相同颜色的线进行项目符号连接
- 如何更改项目's的背景颜色使用jquery平滑
- 在列表中循环并根据项目的长度设置项目的颜色不起作用
- 逐个更改项目的颜色
- D3:如何分配大小,颜色的项目(碰撞检测可视化)
- 当项目被点击改变背景颜色- CSS(没有jQuery)
- 如何使用jQuery设置每个项目的背景颜色到下一个项目
- 改变被丢弃的项目的颜色
- Sencha触摸改变一个特定的列表项目的颜色
- 如何通过单击更改项目的颜色
- 如何设置重复器项目背景颜色
- 无法更改 UL 中所选 li 项目的背景颜色