回答
我知道了該怎麼辦,我想加入
target.setAttributeNS(null, 'transform', "translate(0 0)");
這樣:縮放時
function unselectedColour(evt) {
var target = evt.target;
target.setAttributeNS(null, 'fill', 'white');
target.setAttributeNS(null, 'transform', "translate(0 0)");
}
function selectedColourBuilding(evt) {
var target = evt.target;
target.setAttributeNS(null, 'fill', 'purple');
target.setAttributeNS(null, 'transform', "translate(-3 -3)");
}
您可以修改每個元素的transform。大概是這樣的:
function onEnter (e) {
e.target.setAttribute('transform', 'scale(2,2)');
}
function onLeave (e) {
e.target.removeAttribute('transform');
}
但其實你並不需要使用屬性,採取長期緩慢的方式,而是可以使用SVG元素的transform
接口。因此,文檔也在上面鏈接的頁面上。但處理這可能有點「不直觀」«第一次,因爲每個元素都有一個transform list
與幾個transform items
。
我認爲在svg轉換界面(以及一般的仿射轉換)中潛水是一個好主意,因爲它非常強大,但在準備使用之前它需要一個「學習曲線」。
如果你想短路這一點,你還可以用像一個輔助框架:svg.js,snapsvg或raphael它們都具有共同的方法來幫助您處理這樣的事情。
編輯
上面的函數只是例子,將一個能做到這一點。只有鼠標進入svg元素或離開時,才應調用onEnter
和onLeave
方法。所以,你可以添加一個mousemove
監聽器和檢查目標是你想要的元素之一:
var firstElement = document.getElementById('<yourelementsid>');
isOverFirstElement = false;
window.addEventListener('mousemove', function (e) {
if (e.target === firstElement && isOverFirstElement == false) {
isOverFirstElement = true;
onEnter(e);
} else if (e.target !== firstElement && isOverFirstElement == true) {
isOverFirstElement = false;
onLeave(e);
}
}, false);
有了這樣就可以檢測到鼠標進入或離開,並做出相應的反應代碼。
感謝您的回覆。我已經添加了這個 'function onEnter(mySquare){ mySquare.target.setAttribute('transform','scale(2,2)'); } function onLeave(mySquare){ mySquare.target。的removeAttribute( '變換'); }' 但它什麼也沒做。我在做錯事.. – AbbenGabben
爲了使「蹦出來」穩定,保持在它的當前位置,您可以計算其邊界框的中心,然後將該元素的中心轉換爲原點,對其進行縮放,然後將其轉換回其當前位置
eg
function onEnter(evt)
{
var target=evt.target
var bb=target.getBBox()
var bbx=bb.x
var bby=bb.y
var bbw=bb.width
var bbh=bb.height
var cx=bbx+.5*bbw
var cy=bby+.5*bbh
target.setAttribute("transform","translate("+(cx)+" "+(cy)+")scale(1.2 1.2)translate("+(-cx)+" "+(-cy)+")")
}
function onExit(evt)
{
var target=evt.target
target.removeAttribute("transform")
}
- 1. ipad:提供縮小效果和刪除效果的縮放效果
- 2. 創建縮放效果
- 3. 自動縮放效果
- 4. Javascript的縮放效果?
- 5. 圖像縮放效果?
- 6. 使用svg縮放WebView。如果放大
- 7. jquery彈出燈箱效果
- 8. Safari上的模糊SVG CSS轉換縮放後的效果
- 9. 用CSS動畫彈出書本效果
- 10. HTML彈跳效果
- 11. cocos2d彈射效果
- 12. JQuery彈跳效果
- 13. Css文字縮放效果彈跳回來時,徘徊
- 14. CSS縮放效果背景懸停
- 15. jQuery的燈箱縮放效果
- 16. jQuery和圖像滑塊/縮放效果
- 17. 關於jQuery的圖像縮放效果
- 18. 縮放和定位圖像效果
- 19. Highcharts失去平滑的縮放效果
- 20. 測量CPU頻率縮放效果
- 21. SpriteKit縮放影響物理效果
- 22. 2 DIVS與縮放效果重疊
- 23. jquery對話框縮放顯示效果
- 24. 懸停時的圖像縮放效果
- 25. QgraphicsView橡皮筋效果縮放行爲
- 26. iPhone:UIScrollView中與放大/縮小效果
- 27. 如何正確獲取縮放效果?
- 28. 如何實現縮放效果?
- 29. 圖像互相移動縮放效果
- 30. jquery的縮放效果很慢?
不要忘了接受一個答案,即使答案是你自己的。它將幫助任何在將來看到這個問題的人找到一個好的答案。 –