2016-01-06 20 views
0

我已經用重量爲1px的L.circle繪製了一個圓圈。我想用平滑動畫將懸停上的重量更改爲2px。Mapbox:改變懸停時的圓圈重量

+0

我們可以利用這樣做」 this.setStyle ({weight:2})「但是如何用動畫做到這一點? –

回答

1

作爲改變的L.Circle的「權重」(這實際上是其SVG形狀「筆劃寬度」)上懸停,只需將結合上"mouseover""mouseout"事件回調:

myCircle.on({ 
    "mouseover": function() { 
    myCircle.setStyle({ 
     weight: 2 
    }) 
    }, 
    "mouseout": function() { 
    myCircle.setStyle({ 
     weight: 1 
    }) 
    } 
}); 

至於流暢的動畫,你會有2個選項:

  • CSS3過渡上的SVG屬性。但不幸的是IE不支持他們。
  • 預置至執行動畫/過渡自己,典型地使用setInterval或​​,逐步調節權重。

隨着SVG屬性CSS3過渡:

的JavaScript:

var myCircle = L.circle(myLatLng, myRadius, { 
    weight: 1, 
    className: "test" 
}) 

CSS:

.test { 
    transition: stroke-width 1s; /* duration with unit */ 
} 

演示:http://jsfiddle.net/ve2huzxw/115/

+0

非常感謝的answer.Can請你告訴我,我應該用什麼SVG屬性添加一個過渡半徑的變化? –

+0

不幸的是,L.Circle「半徑」是SVG形狀本身的一部分,這是不可達的那樣容易通過CSS。這可能是一個不同的問題,你發佈以獲得正確的答案。 – ghybs