2012-04-06 8 views
1

나는 시차 스크롤을 실험하고있어, 내가 그런 짓을 할 :맞춤 CSS 속성 또는 HTML 속성?

속도가 스크롤하는 동안 아이템의 이동 속도를 제어하는 ​​특정 항목에 할당 된 속성입니다
$('.page').each(function() { 
    $(this).css("background-position", 
     "center " + ((window.pageYOffset - $(this).offset().top)/
        $(this).css("speed")) + "px"); 
}); 

.

#item { speed: 4; } 

<div name="item" class="page"></div> 

내가이 CSS 가능하지 않을 수도 있습니다 이해 : 그래서 내가 좋아하는 뭔가를 할 것입니다. HTML5는 맞춤 속성을 지원하지만 요소에 대한 다른 정보로 머리 부분 어딘가에 선언해야합니다.
이 작업을 수행하는 방법에 대한 권장 사항은 무엇입니까?

감사합니다. 사용자 정의 data- 속성

+0

왜이 JavaScript를 – HerrSerker

답변

2

당신은 CSS와 함께이 작업을 수행 할 수 없습니다. 당신은 헤더에 모든 것을 선언하고 싶다면 당신이 말한 그러나 당신이 당신의 질문에서 HTML5의 사용자 지정 특성을 사용하고 있습니다, 당신은 요소에 데이터를 바인딩하는 jQuery의 자신의 방법을 사용할 수 있습니다

$(document).ready(function(){ 
    $.data(selector,'speed',5); 
    alert($.data(selector,'speed')); //this will alert 5 now 
}); 

를 워드 프로세서가 여기에 있습니다 : http://api.jquery.com/jQuery.data/

그리고 이것 또한 작동합니다 : http://api.jquery.com/data/ - 코드가 여기에 조금 다를 것이다 : 도움이 thath

$(document).ready(function(){ 
    $(selector).data('speed',5); 
    alert($(selector).data('speed')); //this will alert 5 now 
}); 

희망.

+0

감사합니다. 이것은 내가 찾고 있었던 바로 그 것이다. – user1222728

1

HTML5 :

<div name="item" class="page" data-speed="4"></div> 

루프에서 jQuery의 data() 방법을 사용하여이 :

parseInt($(this).data('speed'), 10); 
+0

에 사용하지 않습니까? '머리 속에 어딘가에 이런 것들을 선언하고 싶습니다.'- 그러면 HTML5가 경주에서 나옵니다. 그리고 jQuery를 사용할 때 parseInt를 사용하는 것은 절대적으로 불필요합니다. – marue

+0

관심이없는 분 : 여기 왜 parseInt를 사용하셨습니까? – marue

+0

좋은 습관. 당신은'data-speed' 속성이 정수라고 기대하지만, 그것이 있다고 가정 할 필요는 없습니다. – Geert