2012-08-30 4 views
4

jquery로 이미지 노드를 만들고 원본 위에 더 큰 버전으로 표시하려고합니다.
복사 한 이미지가 Chrome 및 Safari에 표시되지 않지만 Internet Explorer 및 Firefox에서 작동합니다. 콘솔에서 오류를보고하지 않습니다. 속성 검사기는 모든 올바른 CSS 속성을 가진 복제 된 이미지 요소를 표시하지만 요소에 0 x 0 픽셀 크기를 제공합니다.이미지가 웹킷 브라우저에 jquery가 표시되지 않습니다.

0x0 크기를 암시하는 CSS 규칙이 없습니다. download.toastlab.ch/segtest


편집 : 여기

는 스크린 샷, 동작 데모를 파이어 폭스와 크롬 이미지를 클릭 시도 할 수있는 링크를 상황 illustration of situation with inspector ( http://i.stack.imgur.com/AhiPf.png) 여기

입니다 설명한다 :

요소를 생성하는 자바 스크립트 코드 :

당신의 JS 코드에서
$('.streamcontent').on('click', 'img.clickable', function() { 
    var img = new Image(); 
    img.src = $(this).attr('src'); 
    var w = img.width, 
     h = img.height; 
    img = $(img).addClass('bigger'); 

    var tw = $(this).width(); 
    var th = $(this).height(); 

    var pos = $(this).position(); 
    var center = { 
     top: pos.top + th/2, 
     left: pos.left + tw/2 
    }; 

    img.css({ 
     position: 'absolute', 
     top: pos.top, 
     left: pos.left, 
     width: tw, 
     height: th, 
     opacity: 0 
    }).animate({ 
     top: center.top - h/2, 
     left: center.left - w/2, 
     height: h, 
     width: w, 
     opacity: 1 
    }, 300, function() { 
     $('body').one('click', function() { 
      img.animate({ 
       top: pos.top, 
       left: pos.left, 
       width: tw, 
       height: th, 
       opacity: 0 
      }, function() { 
       img.remove(); 
      }); 
     }); 
    }); 
    $(this).parent().append(img); 

}); 
+1

JS 코드를 게시 할 수 있습니까? – Albinoswordfish

+0

Chrome 21.0 및 IE 10.0.84에서 페이지가 저와 동일하게 보입니다 (이미지가 잘 보임). – MaxPRafferty

+0

이상하게 들리니'Chrome 21.0.1180.83 m' :/ – Roman

답변

2

발견.

최대 크기 (max-widthmax-height)를 지정하는 CSS 규칙이 있습니다. 더 큰 이미지가 더 커지도록 규칙을 재정의해야했습니다.

이렇게하려면 최대 폭 &의 높이를 엄청나게 높은 값 (999999999px)으로 덮어 씁니다. 이 문제

이 웹킷 버그로 자격이 있는지 모르겠어요에게 9999px에 값을 설정 0 X 0에서 이미지 크기를 해결 떠나, 에게 "웹킷 렌더링 이미지 크기 계산"충돌이 값처럼 보인다 아니.

0

515,는

$('.streamcontent').on('click', 'img.clickable', function() { 
    var img = new Image(); 
    img.src = $(this).attr('src'); 
    var w = img.width, h = img.height; 
    img = $(img).addClass('bigger'); 
    ... 

나는 너비와 높이가 객체 이미지의 기능이기 때문에 당신이

var w = img.width(), h = img.height(); 

에 의해

var w = img.width, h = img.height; 

을 변경해야합니다 생각하지만, 나는 ' 모르겠다.

+0

너비와 높이가 이미지 속성이라고 생각 했니? – Albinoswordfish

+0

죄송합니다. 방금 문제가 무엇인지 알아 냈습니다. 나는 다른 CSS 규칙에서 "너무 큰 값"을 사용하여 렌더링 엔진에서 무언가 넘치는 것처럼 보입니다. 나는 지금 대답을 쓰고있다. – Roman

관련 문제