2011-03-24 6 views
1

검색 순위가 높았으며 특정 상황에 도움이되는 게시물을 찾지 못했습니다. 나는 jQuery에 익숙하지 않으며 다양한 용도를 좋아합니다. 내 아코디언 스크립트에 문제가있어서 ScrollTo를 추가해야 섹션을 선택하면 뷰 위의 창을 스크롤합니다. 나는 이것이 의미가 있기를 바랍니다. 도와 주셔서 감사합니다.jQuery UI에서 ScrollTo 추가하기 Accordion 스크립트

<script type="text/javascript"> 
     /* <![CDATA[ */ 
     jQuery().ready(function(){ 
      jQuery('#leftnav-navigation').accordion({ 
       active: false, 
       header: '.head', 
       navigation: true, 
       collapsible: true, 
       animated: 'easeslide', 
       autoheight: false, 
       alwaysOpen: false, 
      }); 

      var accordions = jQuery('#leftnav-navigation'); 

      jQuery('#switch select').change(function() { 
       accordions.accordion("activate", this.selectedIndex-1); 
      }); 
      jQuery('#close').click(function() { 
       accordions.accordion("activate", -1); 
      }); 
      jQuery('#switch2').change(function() { 
       accordions.accordion("activate", this.value); 
      }); 
      jQuery('#enable').click(function() { 
       accordions.accordion("enable"); 
      }); 
      jQuery('#disable').click(function() { 
       accordions.accordion("disable"); 
      }); 
      jQuery('#remove').click(function() { 
       accordions.accordion("destroy"); 
       wizardButtons.unbind("click"); 
      }); 
      return false; 
     }); 
     /* ]]> */ 
    </script> 

도움을 주신 ckaufman에게 감사드립니다. 다음은 최종 작업 코드입니다. 나는 이것이 도움이 필요한 사람을 돕기를 바랍니다.

<script type="text/javascript"> 
     /* <![CDATA[ */ 
     jQuery().ready(function(){ 
      jQuery('#leftnav-navigation').accordion({ 
       active: false, 
       header: '.head', 
       navigation: true, 
       collapsible: true, 
       animated: 'easeslide', 
       autoheight: false, 
       alwaysOpen: false, 
      }); 

      var accordions = jQuery('#leftnav-navigation'); 

      jQuery('#switch select').change(function() { 
       accordions.accordion("activate", this.selectedIndex-1); 
      }); 
      jQuery('#close').click(function() { 
       accordions.accordion("activate", -1); 
      }); 
      jQuery('#switch2').change(function() { 
       accordions.accordion("activate", this.value); 
      }); 
      jQuery('#enable').click(function() { 
       accordions.accordion("enable"); 
      }); 
      jQuery('#disable').click(function() { 
       accordions.accordion("disable"); 
      }); 
      jQuery('#remove').click(function() { 
       accordions.accordion("destroy"); 
       wizardButtons.unbind("click"); 
      }); 

      jQuery('#leftnav-navigation').click(
       function() { 
        var window_top = $(window).scrollTop(); 
        var div_top = $(this).offset().top; 
         if (window_top > div_top){ 
          $('html, body').animate({scrollTop:div_top}, 300); 
       } 
      }); 

      return false; 
     }); 
     /* ]]> */ 
    </script> 

답변

1

이 줄을 따라 뭔가가 효과가 있다고 생각합니다. 내가 설명 할 것이고 어쩌면 그것을 조정할 수있다. 사업부는 window_top 이상이면

jQuery('#divID').click(
    function() { 
    var window_top = $(window).scrollTop(); 
    var div_top = $(this).offset().top; 
    if (window_top > div_top){ 
    $('html, body').animate({scrollTop:div_top}, 300); 
    } 
    }); 

크리크는 'div_top'와 'window_top을'감지 이벤트를 결합 ... 그것은 div_top의 위치로 이동합니다. 시도해 볼만한 가치가 있습니다. 사실, 난 이미이 작업을 수행 한

+0

@ckaufman ... 팁 주셔서 감사합니다. 나는 총과 후속 조치를 줄 것이다. 감사. – Dan

+0

어떻게 진행되는지 알려주세요. 성공과 비슷한 스크립트를 사용하고 그 스크립트에서 가져올 수있는 게 있다고 생각해보십시오. – ckaufman

+0

@ckaufman ... 팁 주셔서 감사합니다. 그것은 단지 약간의 조정으로 나의 필요를 해결했습니다. 그 결과로 얻은 기능성은 내가 찾고 있던 기능이었습니다. 최종 코드는 원래 게시물의 위에 있습니다. 당신의 도움을 주셔서 감사합니다. – Dan

0

...

당신은 JSFiddle의 하나와 ui.accordion.js 파일을 대체 한 후 프로젝트에 jQuery의 scrollTo.js를 추가하기 위해 제공해야 할

: http://jsfiddle.net/Jaybles/6EWAF/

+0

제안에 감사드립니다. 나는 다른 게시물에 필요한 정확한 결과를 얻었다. 건배. – Dan