2013-02-08 4 views
0

내 문제는 다소 복잡합니다.jQuery 애니메이션이 인라인 스타일을 덮어 쓰지 않게하는 방법은 무엇입니까?

나는 기능에 대한 slideDown() 애니메이션에 의존 드롭 다운에 완전한 탐색 메뉴를 보유하고 있습니다. 내 드롭 다운으로 인해 내가 스타일을하는 방식에 margin-top을 가지고있다,하지만 난 등의 설정을 사용자의 글꼴, 줌을 기반으로 윈도우로드 후 jQuery를 함께 margin-top을 설정해야합니다. 이렇게하려면 attr("style","margin-top: -22px !important")을 사용합니다. 그러면 내 드롭 다운이 정확하게 수행됩니다. 내가 slideDown()를 사용할 때 ..., jQuery를 드롭 다운의 애니메이션에 중요하다 내 !important를 제거합니다. 내가 !important를 사용하지 않는 경우, slideDown() 잘 보이지 않는다 모두 margin-topheight을, 애니메이션됩니다.

내 질문은 : 내 인라인 스타일을 재정에서 jQuery를 막을 수있는 방법이 있습니까?

예 : http://jsfiddle.net/Sy9dC/3/

답변

0

사용 CSS ({})을 요소의 CSS를 propertie 값을 변경하려면 :

$(".navigation-secondary-submenu").css('margin-top'," -10px"); 

또는 당신이 사용할 수 있습니다

$(".navigation-secondary-submenu").removeClass('old_class').addClass('new_class') 

new_class 귀하의 CSS 속성을 가지고.

.new_class{ 
    ****** 
    margin-top: -10px !important; 
} 

또는이 CSS 속성 동적 추가됩니다!의

$(docyment).ready(function(){ 
     $(".navigation-secondary-submenu").attr('style','margin-top:-22px !important'); 

    $("button").click(function() { 
     $(".navigation-secondary-submenu").attr('style','margin-top:-10px !important'); 
     }); 
}); 
+0

내가 필요로하는'마진 top'는'important','$의 .CSS()로'지원하지 않습니다. 그렇지 않으면'slideDown()'이 의도하지 않은 여백을 움직입니다. – Lrdwhyt

+0

미리 정의 된 CSS 클래스를 통해 스타일을 추가하는 것도 가능합니다. 그러나 계산 된 margin-top은 사용자의 확대/축소 설정에 따라 -35에서 -5까지 크게 다를 수 있으므로 매우 유용하지 않습니다. – Lrdwhyt

관련 문제