我正在使用jQuery美国地图插件。
在这里找到的。https://github.com/NewSignature/us-map/
我试图添加10个额外的按钮,这也将与状态数据相关。例如,默认情况下,您可以在状态上悬停,并且存在悬停颜色。我试图在新的状态上保持这种效果,在这些状态中,我要创建额外的按钮。
例如,下面的新按钮。
$("#star_btn1").click(function() {
$('#ca').toggle();插件具有定义和可定制的悬停样式。
'stateHoverStyles': {
fill: '#ffc600',
},以及:
_defaultMouseOverAction: function(stateData) {
// hover effect
this.bringShapeToFront(stateData.shape);
this.paper.safari();
// ... for the state
var attrs = {};
if(this.options.stateSpecificHoverStyles[stateData.name]) {
$.extend(attrs, this.options.stateHoverStyles, this.options.stateSpecificHoverStyles[stateData.name]);
} else {
attrs = this.options.stateHoverStyles;
}
stateData.shape.animate(attrs, this.options.stateHoverAnimation);,我有什么想法可以把它和我的新按钮结合起来吗?
发布于 2015-03-20 18:33:35
您可以让按钮的事件处理程序触发映射插件的事件。
HTML:
<button type="button" class="stateBtn" data-name="CA">California</button>
<button type="button" class="stateBtn" data-name="MN">Minnesota</button>
<br />
<br />
<div id="map" style="width: 550px; height: 350px;"></div>
<div id="clicked-state"></div>地图的原始JavaScript:
$('#map').usmap({
click: function (event, data) {
$('#clicked-state')
.text('You clicked: ' + data.name)
.parent().effect('highlight', {
color: '#C7F464'
}, 2000);
}
});按钮的附加JavaScript:
$('.stateBtn').on('click mouseout mouseover', function(e) {
var name = $(this).attr('data-name');
$('#map').usmap('trigger', name, e.type, e);
});注意如何添加附加的状态按钮而不需要添加任何额外的JavaScript代码。
小提琴演示
美国地图插件文档
https://stackoverflow.com/questions/29170879
复制相似问题