2011-03-09 9 views
2

イムを作るのですか、と私はこのGoogle Chrome拡張機能の機能を愛し、私はあなたが上にカーソルを移動するときの拡張子の背後にある基本的な考え方があると思いhttps://chrome.google.com/extensions/detail/elioihkkcdgakfbahdoddophfngopipiは、どのように私は、ウェブサイトを作る「Facebookのズーム」

@ Facebookの写真のズームを呼び出しますサムネイル、元のイメージファイルを取得し、フルビューで表示します。イメージが大きすぎる場合は、ウィンドウの上部または下部のバーまたはコーナーの位置になります。大きすぎない場合は、マウスの横に浮かびます。

私はその背後にある論理を理解していますが、実際にコーディングするのはちょっと難しいようです。私が理解していない部分は、拡張された画像の位置をどのようにコード化し、マウスを左右に動かすと縮小/拡大させるのかということだけです。おかげで

+0

でKabbar画像ズーマーを参照してください?はいの場合はコードを共有してください – Abhimanyu

+0

ここにサンプル問題があります。それはJavascript/JqueryではなくCSSトリックかもしれませんが、まだ私はそれを行う方法がわかりません... – prince

答えて

0

13 zoom jquery plugins in here。あなたのニーズに最適なものを選択してください:

+1

これは、画像にズームしていない、サムネイルの上にマウスを置くと、私はオリジナルの大きな画像ではなく、サムネイルの拡大バージョンではありません – Ben

0

このChrome拡張機能に似ていますが、サムネイルとフルサイズの画像にURLを入力する必要があります。ツールチップはpreview imageです。オリジナルはblog postです。


スクリプトを修正して、画像のサイズをカーソルと右端の間の距離に合わせて調整しました。完璧ではありませんが、機能します。ここにはdemoがあります。 mouseover

/* 
* Image preview script 
* powered by jQuery (http://www.jquery.com) 
* 
* written by Alen Grakalic (http://cssglobe.com) 
* 
* for more info visit http://cssglobe.com/post/1695/easiest-tooltip-and-image-preview-using-jquery 
* 
*/ 

this.imagePreview = function(){ 
    /* CONFIG */ 

     xOffset = 10; 
     yOffset = 20; 

     // these 2 variable determine popup's distance from the cursor 
     // you might want to adjust to get the right result 

    /* END CONFIG */ 
    $('a.preview').hover(function(e){ 
     this.t = this.title; 
     this.title = ''; 
     var p, c = (this.t != '') ? '<br/>' + this.t : ''; 
     $('body').append('<p id="preview"><img src="' + this.href + '" alt="Image preview" />' + c + '</p>'); 

     // load image and get size 
     p = $('#preview'); 
     p 
      .fadeIn('fast') 
      .find('img').load(function(){ 
       // get image dimensions after it has been loaded 
       p.data('widths', [ $(window).width(), p.find('img').width() ]); 
       // set image to 100% to fit in preview window 
       $(this).width('100%'); 
       position(e); 
      }); 
    }, 
    function(){ 
     this.title = this.t; 
     $('#preview').remove(); 
    }); 

    $('a.preview').mousemove(function(e){ 
     position(e); 
    }); 

    var position = function(e){ 
     var w, prevw = $('#preview'), 
      w = $.data(prevw[0], 'widths'); 
     if (w) { 
      prevw 
       .css('top', e.pageY + yOffset) 
       .css('left', e.pageX + xOffset) 
       .css('max-width', (e.pageX + prevw.outerWidth() > w[0]) ? w[0] - e.pageX - xOffset : w[1] || 'auto'); 
     } 
    }; 

}; 

// starting the script on page load 
$(document).ready(function(){ 
    imagePreview(); 
}); 
+0

画像はウィンドウの画面に表示されていないので、画像の半分しか表示されていない場合は、JavaScriptの機能はありません – Ben

+0

私は私の答えを更新した、私はそれがIE6で動作するとは思わないが、あなたにこれを行う方法のアイデアを与える必要があります。 – Mottie

0

あなたは同じように左とトップを更新mousemove

css({position: 'absolute', left: e.pageX, top: e.pageY}) 

と大きな画像を作成します。また

チェック:

+0

しかし、マウスの位置に応じて画像自体がどのように拡大/縮小しますか?あなたが書いたコードは、マウスの位置に応じて画像を移動しますが、画像はマウスの位置に基づいてどのように動的にサイズ変更できますか? – Ben

関連する問題