2016-11-29 4 views
0

最近私のブログのアルバム用の画像拡大コードを試していました。
1.5data-scaleとすると、画像左上隅にホバリングすると画像id=albumが正しく表示されます。
右下に、代わりに背景が表示されます。また、2.5data-scaleを使用すると、カーソルが移動している間に画像が点滅します。
私はそれが.on('mousemove', function(e)の問題だと信じています。そのアルゴリズムは私が変更するのは難しいです。
元のコードと同じようにコードが動作します。私がそれを修正するのを手伝ってください、ありがとう!実際右下隅に縮尺変更された画像が正しく表示されず、大規模なサイズを使用しています。

My test code
Original code

答えて

0

とき、あなたはtransform-originあなたはすぐに(あなたは大きなイメージの高さと幅を使用している)に移動して、あなたの動画。

だから、解決策は、あなたの規模によって、あなたの運動率を分割することである。

$(this).css({'transform-origin': 
     ((e.pageX - $(this).offset().left)/$(this).width()) 
      * 100/$(this).attr('data-scale') + '% ' 
    + ((e.pageY - $(this).offset().top)/$(this).height()) 
      * 100/$(this).attr('data-scale') +'%'}) 

そして、あなたのjsfiddleは更新:それは完璧に動作https://jsfiddle.net/wpnubmah/

+0

OMGを、。私はしばらくコードを勉強する必要があります。ところで、ありがとう! – Louis55

+0

ガイダンスをありがとう。私は 'transform-origin'がどのように動作するのかを理解しています。しかし、私は '((e.pageX - $(this)).offset()。left)/ $を使うので、なぜあなたは'/$(this).attr( 'data-scale' (this).width())* 100'で問題ありません。 – Louis55

関連する問題