2011-03-18 4 views
2

나는 마우스가 이미지를 가리킬 때 그것의 크기의 50 %로 크게 성장하고 그 지역 밖으로 마우스 움직임에 따라 즉시 돌아갑니다 영향을하려합니다. jquery로이 작업을 수행 할 수 있습니까? 방법? jquery없이이 작업을 수행 할 수 있습니까? jquery없이 그것을하는 것이 얼마나 힘들겠습니까? 당신은 또한 일반 자바 스크립트를 사용할 수 있습니다JQuery와 onMouseover와 이미지 크기 증가

+1

어떻게 하드는 jQuery를하지 않고 있을까? ** 불필요한 ** 하드. –

+0

아래 예제에서는 많은 차이가 없을 것이라고 생각할 것입니다. 그러나 당신이 다음 다른 선택 (즉이 아닌 ID)를 사용하여 이미지를 얻으려면, 그리고 경우에 대해 당신이 (jQuery를 쉽게와 함께이 작업을 수행) 전환을 애니메이션을 적용 할 경우 약. 또한 jQuery를 사용하면 동일한 범위에서 브라우저 간 호환성에 대해 걱정할 필요가 없습니다. – dianovich

답변

15

당신이 이동 :

$('img').load(function() { 
    $(this).data('height', this.height); 
}).bind('mouseenter mouseleave', function(e) { 
    $(this).stop().animate({ 
     height: $(this).data('height') * (e.type === 'mouseenter' ? 1.5 : 1) 
    }); 
}); 

라이브 데모 :http://jsfiddle.net/simevidas/fwUMx/5/

+0

그것은 이미지가 고정 폭의 표 안에 – Vish

+1

덕분에 많이 있다면, 그것의 영리 작동합니다. http://jsfiddle.net/fwUMx/6/. 마우스가 이미지 위로 움직일 때 테이블이 움직이지 않을 수도 있습니다. – Vish

+1

@user 나는 표 셀의 높이를 명시 적으로 설정하여 상당한 효과를 얻을 수있었습니다. 여기를 참조하십시오 : http://jsfiddle.net/simevidas/fwUMx/10/ –

2

자바 스크립트라이브러리, 등 alors입니다 jQuery를,이 작업을 수행 할 수 있습니다.

jQuery를 :

var $image = $('#imageID'), //Or some other selector 
    imgWidth = $image.width(), 
    imgHeight = $image.height(); 
$('#imageID').hover(function() { 
    //The mouseover 
    $(this).width(imgWidth * 2); 
    $(this).height(imgHeight * 2);  
}, function() { 
    $(this).width(imgWidth); 
    $(this).height(imgHeight); 
}); 

일반 자바 스크립트 : 여기
참조 예 : 여기 http://jsfiddle.net/axpVw/

var image = document.getElementById('imageID'), 
    imageWidth = image.width, 
    imageHeight = image.height; 
image.onmouseover = function() { 
    image.width = 2 * imageWidth; 
    image.height = 2 * imageHeight; 
} 
image.onmouseout = function() { 
    image.width = imageWidth; 
    image.height = imageHeight; 
} 
+0

@ ime Vidas는 jQuery에 대한 더 깔끔한 예제를 제공했습니다. 실제로 애니메이션 속성을 권장합니다. – dianovich

4

당신은 순수 CSS를 사용하여이 작업을 수행 할 수 있습니다. 다음은 running sample입니다.

을 감안할 때이 HTML : 대상 브라우저 중 하나가 괜찮은 CSS를 지원하지 않는 경우

body { background-color: black } 
.foo { 
    height:25px; 
} 
.foo:hover { 
    height:50px; 
} 

사용 jQuery를,하지만 난 IE8에서 테스트하고 지원 :

<img class="foo" src="/img/logo.png"> 

이 CSS 추가 이.

+0

높이 값을 CSS에 하드 코딩하고 있습니다. 이미지의 크기가 다른 경우 어떻게해야합니까? –

+0

이미지마다 CSS 스타일을 사용해야합니다. _lots_ 개의 이미지가있는 경우 jquery를 대신 사용하는 것이 좋습니다. – JoshRivers

+0

좋은 생각 :) 나는 당신의 대답을 upvote하고 싶습니다만, 충분한 담당자가 없습니다. – Vish

1

그것은 두 가지 방법으로 쉬운 작업입니다.

  1. JQuery와 : http://jsfiddle.net/G7yTU/

    $(document).ready(function(){  
    var ht= $("img").height(),  
    wd=$("img").width(),  
    mult=1.5; //change to the no. of times you want to increase your image 
         //size. 
    $("img").on('mouseenter', function(){ 
    $(this).animate({height: ht*mult, 
           width: wd*mult}, 500); 
    }); 
    $("img").on('mouseleave', function(){ 
    $(this).animate({height: ht, 
           width: wd}, 500); 
    }) 
    }); 
    
  2. CSS : http://jsfiddle.net/zahAB/1/

    img{ 
    -webkit-transition:all 0.5s; 
    -moz-transition:all 0.5s; 
    -ms-transition:all 0.5s; 
    -o-transition:all 0.5s; 
        } 
    
    img:hover{ 
        width:150px; 
        height:150px; 
    } 
    

당신이 만약 내가 두 가지의 예와 당신을 위해 바이올린을 필요한 것 도움이 필요하면 연락하십시오.

+0

어떤 방법이 더 좋습니까? – Vish

+0

전 세계적으로 지원 될 것이고 필요에 따라 쉽게 편집 할 수 있기 때문에 Jquery를 사용한다고 말할 수 있습니다. 전의. 이미지를 300 % 확장하려면 변수를 3으로 변경하면 작업이 완료됩니다. –