2012-08-27 4 views
0

먼저 이미지를 제거한 다음 src 속성을 jQuery로 다시 추가하여 이미지를 새로 고쳐야하지만 불행하게도 재설정을 수행하면 이미지가 접히고 아래로 요소가 상하로 이동합니다. , 그것은 꽤 성가시다. 이 문제를 어떻게 피할 수 있습니까?금지 <img> 붕괴

관련 HTML :

<figure> 
    <figcaption>Result</figcaption> 
    <img title="Result" id="result" src="http://example.com/image.bmp"> 
</figure> 

관련 CSS :

.gallery figure { 
    display: inline-block; 
    margin: 0; 
    padding: 0; 
} 

.gallery img { 
    min-width: 160px; 
    width: 65%; 
} 

는 당신은 설정해야

+0

이미지를 추가 한 다음 src 만 변경하는 대신 이전 이미지를 제거합니다. 전체 태그를 변경하십시오. –

+0

@EricRobinson 그래서 jQuery에서 새로운'img' 요소를 만들어야합니까? 그것은 유망한 것으로 들린다. jQuery를 사용하여 요소를 대체하려면 어떻게해야합니까? 몇 가지 코드를 제공해 주시겠습니까? –

답변

1

뭔가 작동합니다 : 아무것도 내가 그것을 설명 기쁠 것 이해/모호한 보이는

var res = $("#result"); 
res.attr("height", res.height()); //fix the image's height 
res.attr("width", res.width()); //fix the image's width 
var prev = res.attr("src"); //cache the image's src 
res.attr("src", ""); //remove src 
res.attr("src", prev); //reset src to refresh image 

합니다.

편집 : 또 다른 방법은 div로 이미지를 포장하고 div가 고정 된 높이/폭을 가지고 있는지 확인하는 것입니다. 당신의 HTML 같은 모양의이 가정하자 :

<figure> 
    <figcaption>Result</figcaption> 
    <div id = "wrapper"> 
     <img title="Result" id="result" src="http://example.com/image.bmp"> 
    </div> 
</figure> 

자바 스크립트 :

var wrap = $("#wrapper"); 
wrap.css({"height": wrap.height(), "width": wrap.width()}); //fix height and width 
var res = $("#result"); 
var prev = res.attr("src"); //cache the image's src 
res.attr("src", ""); //remove src 
res.attr("src", prev); //reset src to refresh image 

을 내가 도움이되기를 바랍니다!

+0

이것이 작동해야하는 것처럼 보이고 Firebug에서 옳은 일을하지만 어떤 이유로 , 그것은 행동을 바꾸지 않습니다. 적어도 Firefox에서는 아닙니다. –

+0

@MihaiTodor 다른 방법으로 업데이트 된 답변을 확인하십시오. – Chris

+0

예, 해결되었습니다. 감사! –

0

을합니다 (<figure> 요소는 클래스 = "갤러리"를 가진 <section> 요소에 포함되어 있습니다) widthheight 이미지 태그에 대한 속성 같은

뭔가 :

<img title="Result" id="result" src="http://example.com/image.bmp" width="250" height="120"> 

당신이 정확한 크기를 알고있는 경우 물론에만 가능합니다.

+0

고마워,하지만 그 트릭을 제대로하지 않습니다. @ Samuel에게 남긴 코멘트를 참조하십시오 ... –

0

widthheight 속성을 이미지에 삽입하여 이미지가 요소에없는 경우에도 크기를 유지할 수 있습니다. 그래서 같이

:

<img src="" width="100" height="200"/> 

이미지 변화의 크기, 내가 HTML의 widthheight 속성을 떠날 경우. 대신, jQuery에서 src 속성을 변경하려면 먼저 요소의 크기가 유지되도록 이미지의 크기에 대한 img 태그에 width 및 height 속성을 추가하십시오. 그런 다음 다음 이미지가로드되면 해당 속성을 제거하여 새 이미지가 전체 크기로 표시되도록하십시오. 이 같은

+0

Thanks! 그러나 나는 또한 그것을 재조정해야 할 것이다. 지금은 CSS에서 'width : 65 %;'를 사용하고 있으며 높이가 65 % 인 것처럼 보입니다. 'img' 태그에서'height = "200"'을 하드 코딩하면 이미지가 훨씬 더 커집니다.CSS에서 명시 적으로 'height : 65 %;'를 지정하면 이전과 같이 동작합니다 ... –