1

我搜索了高低,并没有找到对我的具体情况有所帮助的帖子。我是 jQuery 新手,喜欢它的广泛用途。I have an issue with my accordion script and I need to add the ScrollTo so that when a section if selected it scrolls the window up if it is above the view. 我希望这是有道理的。感谢您的帮助。

<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>
4

2 回答 2

1

我认为沿着这些思路可能会奏效。我会解释一下,也许通过一些调整你可以实现它。

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在window_top之上,它将滚动到div_top的位置。值得一试,希望有帮助。

于 2011-03-24T20:00:12.013 回答
0

其实,我已经这样做了……

您需要将 jQuery 的 scrollTo.js 添加到您的项目中,然后将ui.accordion.js文件替换为提供的 JSFiddle 中的文件:http: //jsfiddle.net/Jaybles/6EWAF/

于 2011-03-24T20:02:08.177 回答