2011-12-09 6 views
0

일부 배경 이미지로 div를 만든 다음 다른 모든 이미지에서 div를 생성하는 스크립트를 사용하지만 다른 모든 브라우저에서는 훌륭하게 실행되지만 크롬은 너무 느립니다. 내 코드를 확인하고 다음 코드를 제거하면 크롬에서도 잘 작동한다는 것을 알 수 있습니다.크롬에서 Jquery .css 문제

//imageCount = count of image placed for animation, this loop gets source of 
//each image, create divs, then makes each image to background of a div 

for(imageNum=0;imageNum<imageCount;imageNum++) 
{ 
var imageSrc= $("#image img:eq("+imageNum+")").attr("src"); 

//save image sources for later use 
images.push(imageSrc); 

//creating divs 
$("#main_cont").append("<div name=img"+imageNum+" class=img_cont></div>"); 


    //here is my problem 
//when i delete .css part works great 

$("#main_cont .img_cont:eq("+imageNum+")").width(tWidth).height(tHeight).css({ 
    backgroundImage: "url("+imageSrc+")", 
    backgroundRepeat: "no-repeat", 
    backgroundSize: tWidth +"px "+ tHeight +"px " 

}); 


    //this part is not about my question, each div's position for animation 
var offset = $("#main_cont .img_cont:eq("+imageNum+")").offset(); 

yPos.push(offset.top); 
xPos.push(offset.left); 

} 

jsfiddle에 내 코드의 간단한 버전 : http://jsfiddle.net/uUj4h/2/ 내가 해결 방법을 찾을 수없는 경우 내가 대신 사업부의 이미지를 사용,

(큰 이미지의 원인을로드하는 분 걸릴 수 있음) 배경은 없지만 애니메이션은 필요하지만 div가 필요합니다.

답변

0

는 명백한 시도했다.

바이올린 : http://jsfiddle.net/adeneo/6TeBk/2/

또는 당신은 당신의 요소의 시작에 img 태그로 추가 시도해 볼 수도 있습니다 : "URL (:

var imageSrc = new Image(); 
    imageSrc.src = $("#image img:eq("+imageNum+")").attr("src"); 
    imageSrc.width = tWidth; 
    imageSrc.height = tHeight; 

$("#main_cont .img_cont:eq("+imageNum+")").css({ width: tWidth, height: tHeight}).append(imageSrc); 
+0

내 스타일 시트에서 background-size를 설정 했더라도 이것을 시도해 보았습니다. background-size를 설정하지 않으면 지연이 여전히 발생합니다. 하지만 나는 배경 크기를 바꿀 필요가 div에 맞게 이미지를해야합니다. – Malixxl

+0

@Malixxl - Chrome 도움말 포럼에 배경 크기 및 특히 '표지'와 관련된 문제가 제기 된 것으로 보입니다. 그 대부분은 느린 스크롤에 관한 것 같지만, 일반적으로 크롬이 이런 종류의 CSS에 몇 가지 문제가있는 것으로 보입니다. 이미지를 img 태그로 추가하는 방법을 포함하도록 내 anwer를 편집했는데 대부분의 경우 해당 요소의 나머지 레이아웃에 따라 작동합니다. – adeneo

+0

div에 이미지를 배치하고 main div의 marginTop을 움직여서 질문을 업데이트하고 jsfiddle url을 추가하고 크롬 및 다른 브라우저에서 시도해 보았습니다. 크롬 만 지연되었으므로 크롬 및 대형 그림 디스플레이에 관한 것일 수 있습니다. – Malixxl

0

background-size은 CSS3 속성이므로 브라우저의 속도에 큰 영향을 줄 수 있습니다.

<div> 내의 이미지를 사용하는 것이 좋습니다.

$("#main_cont .img_cont:eq("+imageNum+")").css({ 
    width: tWidth, 
    height: tHeight, 
    background: "url("+imageSrc+") no-repeat top left" 
}); 

을하고 당신의 CSS에서 배경 크기를 설정 :

+0

난 배경의 크기를 삭제하고 난 단지 왼쪽으로"배경 " + imageSrc + ")" "부분은 .css 함수에서 여전히 뒤떨어 지지만이 부분을 삭제하고 스타일 시트에서 배경 이미지를 설정하면 지연이 발생하지 않습니다. 그래서 저는 그것이 배경 크기에 관한 것이라고 생각하지 않습니다. – Malixxl

+0

CSS를 스타일 시트로 옮길 수 있습니까? – Blender

+0

div의 이미지를 바탕으로 내 코드가 바뀌었지만 문제가 계속 발생하여 jsfiddle 링크로 내 질문을 업데이트했습니다. 내 코드의 간단한 버전을 볼 수 있습니다. 크롬도 그렇게 늦었습니다. – Malixxl