2014-04-14 3 views
0

. CSS 속성을 변경하려고합니다. 클릭하면 CSS 전환이 애니메이션으로 바뀝니다. 어떤 이유로이 작동하지 않습니다. 이 작업은 토글해야합니다.Jquery 토글 .CSS가 작동하지 않습니다.

$("button.subnav-toggle").click(function(){    
      $(".subnav").toggle(
      function() { 
       $(".subnav").css({'top':'0'}); 
       alert("something"); 
      }, function() { 
       $(".subnav").css({'top':'-150px'}); 
      }) 
     }); 
+0

_How_ 그것을하지 않습니다 일? 무엇을 기대하고 실제로 무엇을합니까? –

+0

@ 어떤 jquery 버전을 사용하고 있습니까? – RGS

+0

토글이 [버전 1.9]에서 제거되었습니다. (http://api.jquery.com/toggle-event/) –

답변

2

이러한 위치로 수업을 전환하는 방법은 무엇입니까?

+0

$ (". subnav")와 (과) 비슷한 것. toggleClass (theclass); 첫 번째 클릭에 대해 가장 높은 가치를 부여하십시오. -150 픽셀? – Bradley

+0

css3 속성 "Transitions"으로 작동합니까 – user3328590

+0

예, Subnav 클래스에서 전환 호출을 설정했는지 확인하고 애니메이션을 적용해야합니다. 전환 할 클래스에서 상위 속성을 중요하게 만들 수 있습니다. 다른 클래스의 top 속성. 그것이 당신을 위해 작동하는지 알려주세요. – Bradley

1

.toggle 전환을 수행하지 않습니다. 당신은 사용할 수 .animate하지만 :

$("button.subnav-toggle").click(function(){ 
     $(this).animate({top:'-150px'}) 
}); 

수정 :

$("button.subnav-toggle").click(function(){ 

    var top = $(this).css('top'); 
    var topTo = (top == 'auto' || top == '0px') ? '-150px' : '0px'; 
    $(this).css('top', topTo) 
}); 

여기 바이올린 : http://jsfiddle.net/mhfaust/K5hEb/

+0

애니메이션을 적용하려고하는 드롭 다운 메뉴이기 때문에 두 위치 사이를 너무 전환해야합니다. 위치는 하나의 버튼 클릭에 달려 있습니다. – user3328590

+0

이 설명에 따라 개정되었습니다. – Faust

0
$(document).ready(function() { 
    $('button.subnav-toggle').click(function() { 
     var visible = $('.subnav').is(":visible"); 
     $('.subnav').slideToggle(500); 
     if (!visible) { 
      $('html, body').animate({ 
       scrollTop: $('.subnav').offset().top 
      }, 500); 
     } 
    }); 
}); 
관련 문제