2013-11-01 1 views
3

My site에는 중지 스크롤 시차 효과가 있습니다. 내가 스크롤을 중지하는 데 사용하는 코드는 다음과 같습니다Safari에서 스크롤 정지 시차 효과가 작동하지 않습니다.

if (parseInt($("div#bg").css("top"), 10) <= -0) { 
    $('#content').css('top', (-0) + 'px'); 
    $('#logo').css('margin-top', (-142) + 'px'); 
} 

이 Safari에서 너무 많은 크롬, 파이어 폭스와 오페라에서 잘하지만 작동합니다. Safari에서 사용할 다른 코드가 있습니까? 나는 Safari가 스크롤 할 때 버그가 있다는 것을 알고 있지만, 그에 대한 답을 찾을 수는 없습니다. Safari에서도 작동하도록하는 해결 방법이 있습니까? 아니면 내 코드를 실행할 수있는 일종의 편집기?

답변

1

첫 번째 사항 : 레이아웃에 문제가 있습니다. Safari에서 내 작품 갤러리를 보지 못하기 때문에. 모든 갤러리 요소는 컨테이너가없는 메인 div 내부의 개별 요소이므로 컨트롤하기가 매우 어려울 수 있습니다. 내가 생각 주제

parseInt($("div#bg").css("top"), 10) 

반환 NaN의에

돌아 가기, 당신의 문제가 될 수 있습니다. #bg의 최상위 값은 "auto"로 설정되므로 첫 번째 (그리고 다른 모든 문자 : D)는 숫자가 아닌 CHAR이므로 parseInt()는 NaN을 반환합니다.

자바 스크립트 엔진이 조금 더 탄력적이기 때문에 코드가 Chrome에서 작동하지만 실제로는 작동하지 않아야하며 다른 브라우저에서도 작동하지 않아야합니다.

제안 : Skrollr을 보았습니까? 시차 효과를위한 오픈 소스 jquery 라이브러리입니다. 정말 잘 쓰여졌고 여기에서 하루를 정말 바랄 수 있습니다.

http://prinzhorn.github.io/skrollr/

+0

덕분에 많은 도움이되었습니다. 나는 bg div에 top를 주려고했으나 작동하지 않았다. 대신 bg로 스크롤하는 요소를 변경하여 문서로 스크롤했습니다. if ($ (document) .scrollTop()> = 0) {$ ('content)} .css ('top ', (-0) +'px '); $ ('# logo') .css ('margin-top', (-142) + 'px'); } 불행히도 스크롤 할 때마다 활성화되므로 사이트가 계속 깜박입니다. 주요 순간이나 더 정적 인 방법으로 사이트를 확인하는 방법을 알고 계십니까? 또한 Skrollr는 좋아 보이지만 아이러니하게도 Safari에서 나를 위해 달릴 수는 없습니다. –

+1

나는 당신의 대답을 보지 못했습니다 ... 많은 방법이 있습니다. 가장 좋은 방법은 문제를 '원자화'하는 것입니다. 작은 행동으로 나누고 콘솔을보고 내가 보여준대로 솔루션을 찾으십시오. skrollr만큼 잘 작동하는 다른 솔루션을 모르겠지만 확실히 google은 "scallling parallax javascript library"와 함께 친구가 될 수 있습니다. – Edoardoo