2011-03-09 3 views
2

임은 웹 사이트 제작을 수행하고 난 당신이 위로 마우스를 가져 가면어떻게 내가 "페이스 북의 줌"

https://chrome.google.com/extensions/detail/elioihkkcdgakfbahdoddophfngopipi 내가 확장 뒤에 중요한 아이디어가 생각 @ 페이스 북 사진 확대를 호출이 구글 크롬 확장 기능을 사랑 엄지 손톱, 원본 이미지 파일을 잡고 전체보기로 표시합니다. 이미지가 너무 크면 창의 모서리 나 위쪽 및 아래쪽 막대의 위치가됩니다. 너무 크지 않으면 마우스 위치 옆에 떠있게됩니다.

내가 알고있는 논리는 사실이지만 실제로 코딩하는 것은 다소 어려운 것 같습니다. 내가 이해하지 못하는 부분은 마우스를 왼쪽/오른쪽으로 움직일 때 확장 된 이미지의 위치를 ​​코딩하고 계약/확장하도록하는 방법입니다. 감사합니다

+0

에서 Kabbar 이미지 Zoomer에보기 ?? 그렇다면 코드를 공유하십시오 – Abhimanyu

+0

샘플 문제는 여기에 있습니다. Javascript/Jquery보다는 CSS 트릭이 될 수도 있지만 여전히 어떻게 해야할지 모르겠다. – prince

답변

0

13 zoom jquery plugins in here. 귀하의 요구 사항에 가장 적합한 것을 선택하십시오 :

+1

이 문제는 이미지를 확대하지 않고, 축소판 위로 마우스를 가져 가면 im이 원래의 큰 이미지가 아니라 축소판 버전의 축소 이미지 – Ben

0

Chrome 확장 기능과 유사한 툴팁을 확인하십시오. 그러나 URL에 축소판 그림 및 전체 크기 이미지를 제공해야합니다. 다음은 원래 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

좋은 시작이지만 이미지가 창 화면에서 벗어날 때 계정에 반영되지 않으므로 절반 만 이미지가 표시되면 자바 스크립트는 아무 것도하지 않습니다 – Ben

+0

나는 내 대답을 업데이 트했습니다, 나는 IE6에서 작동한다고 생각하지 않지만, 당신에게 어떻게하는지에 대한 아이디어를 제공해야합니다. – Mottie

0

당신은 당신이 같은 방법으로 왼쪽 상단을 업데이트 mousemove

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

로 큰 이미지를 만들 수 있습니다. 또한

검사 :

+0

그러나 마우스 위치의 위치에 따라 이미지 자체가 어떻게 확대/축소됩니까? 작성한 코드는 마우스 위치에 따라 이미지를 이동하지만 이미지가 마우스 위치에서 동적으로 크기를 조정할 수 있습니까? – Ben