2017-07-28 4 views
-2

マウスがオブジェクトに近づくにつれてスケールが増加し、マウスが中心の上を移動するときに最大スケールが必要になります。 Javascriptを使ってどうすればいいですか?相対的なマウスのホバー距離に基づいてスケールを変更しますか?

function myFunction() { 
 
    document.getElementsByTagName("circle")[0].setAttribute("r", "100"); 
 
}
svg { 
 
    border-style: solid; 
 
    border-color: black; 
 
    background-color: white; 
 
}
<svg> 
 
<circle cx="145" cy="80" r="40" fill="red" onmouseover="myFunction()"/> 
 
</svg> 
 

 
<p> 
 
    Move mouse closer to circle to increase size 
 
</p>

https://jsfiddle.net/tahirjuba/2r5ufd8z/7/

+0

君たちは私が何を意味するか分からないのですか? – tjuba

+0

'mousemove'イベントを使用して、イベントオブジェクトからマウス座標を取得し、距離を計算し、サークルの半径(または' transform = "scale(X)")を適切に設定します。 –

+0

あなたが正当な試みを自分で投稿するまで、私たちはあまり役に立たないでしょう。 –

答えて

0

あなたはこのような何かを意味していますか?

var circle = document.getElementById("circle"); 
 

 
function myFunction(evt) { 
 
    var r = Math.abs(evt.x - parseInt(evt.target.getAttribute('cx'), 10)) + Math.abs(evt.y - parseInt(evt.target.getAttribute('cy'), 10)); 
 
    r += 10; 
 
    document.getElementsByTagName("circle")[0].setAttribute("r", r); 
 
}
svg { 
 
    border-style: solid; 
 
    border-color: black; 
 
    background-color: white; 
 
}
<svg> 
 
<circle id="circle" cx="145" cy="80" r="40" fill="red" onmousemove="myFunction(evt)"/> 
 
</svg> 
 

 
<p> 
 
    Move mouse closer to circle to increase size 
 
</p>

+0

マウスの座標を取得して、何とかそれらを 'r'に適用しましたか? – tjuba

+0

@tjubaはい、それは 'r'と同じです。これは、mousevent xとsvg座標xの差をとり、それをmousevent yとsvg座標yの差に加えます。次に、結果の「r」を円の半径として使用します(円が完全に消えないように+ 10ピクセル)。 –

+0

ありがとうございます。不透明感のようなマウスの動きに応じてどのような属性を変更したいのですか?何を置き換えることができますか? – tjuba

関連する問題