Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery手风琴滚动到顶部按钮_Jquery_Jquery Ui_Scroll_Accordion - Fatal编程技术网

使用jquery手风琴滚动到顶部按钮

使用jquery手风琴滚动到顶部按钮,jquery,jquery-ui,scroll,accordion,Jquery,Jquery Ui,Scroll,Accordion,我有一组按钮,可以使用jquery手风琴(用于移动站点)显示内容。我想知道最好的方法是什么,当用户选择另一个按钮时,它会滚动到所选按钮的顶部 以下是我目前手风琴剧本的内容: $( "#accordion" ).accordion({ collapsible: true, active: false, autoHeight: false, clearStyle: true }); }); 我也做了,但它的功能并不像在移动设

我有一组按钮,可以使用jquery手风琴(用于移动站点)显示内容。我想知道最好的方法是什么,当用户选择另一个按钮时,它会滚动到所选按钮的顶部

以下是我目前手风琴剧本的内容:

$( "#accordion" ).accordion({
        collapsible: true,
        active: false, 
        autoHeight: false,
        clearStyle: true
    });
});
我也做了,但它的功能并不像在移动设备上查看时那样(除非你调整窗口/视口区域的大小。然后它的功能就像在移动设备上一样。)

我发现

根据评论,您可以对活动元素使用
element.scrollIntoView()
,因为这“在所有主要浏览器中都受支持”

在第三个答案中还提到了a,它做了同样的事情

如果绑定到手风琴的
change
事件,则以下操作应有效:

$('#myaccordion').accordion({
  // .. other options
  change: function(event, ui) {
            ui.newHeader.scrollIntoView(); // or scrollintoview(), 
                                           // if you're using the plugin
          }
});
我还没有尝试过这两种解决方案,如果其中一种有效,也许你可以发表评论

编辑

在重新阅读您的问题之后,您似乎不需要使用
scrollIntoView
功能/插件,因为您按下的按钮通常已经在视图中(您将如何按下它…)

所以,您可以只使用
window.scroll
(或者您使用的任何可滚动的顶级容器)

根据您的JSFIDLE示例,下面的方法似乎有效:

    $( "#accordion" ).accordion({
        collapsible: true,
        active: false, 
        autoHeight: false,
        clearStyle: true,
        change: function(event, ui) {
            if (ui.newHeader) {
            var scrollTop = ui.newHeader.position().top;
            window.scroll(0,scrollTop);
            }
        }
    });
我找到了

根据评论,您可以对活动元素使用
element.scrollIntoView()
,因为这“在所有主要浏览器中都受支持”

在第三个答案中还提到了a,它做了同样的事情

如果绑定到手风琴的
change
事件,则以下操作应有效:

$('#myaccordion').accordion({
  // .. other options
  change: function(event, ui) {
            ui.newHeader.scrollIntoView(); // or scrollintoview(), 
                                           // if you're using the plugin
          }
});
我还没有尝试过这两种解决方案,如果其中一种有效,也许你可以发表评论

编辑

在重新阅读您的问题之后,您似乎不需要使用
scrollIntoView
功能/插件,因为您按下的按钮通常已经在视图中(您将如何按下它…)

所以,您可以只使用
window.scroll
(或者您使用的任何可滚动的顶级容器)

根据您的JSFIDLE示例,下面的方法似乎有效:

    $( "#accordion" ).accordion({
        collapsible: true,
        active: false, 
        autoHeight: false,
        clearStyle: true,
        change: function(event, ui) {
            if (ui.newHeader) {
            var scrollTop = ui.newHeader.position().top;
            window.scroll(0,scrollTop);
            }
        }
    });

嗯,我试着加入scrollIntoView插件,但似乎不起作用。除非我把它设置错了。这里是我更新的提琴:嗯,我试着加入scrollIntoView插件,但似乎不起作用。除非我把它设置错了。这是我最新的小提琴: