0

我目前在这里有一个带有 CSS 手风琴的页面;如您所见,为了在打开而不是关闭手风琴的情况下加载页面,我将链接指向手风琴部分之一,#acc3。

这样做的问题是页面自动向下滑动以使手风琴居中(在较小的视口上)我希望页面默认滚动到顶部。我试过使用

     $(document).ready(function(){
$('html').scrollTop(0);

});

但这似乎没有帮助。任何的想法?- 谢谢

4

2 回答 2

1

试试这个

<script type="text/javascript">
    $(document).ready(function () {
        window.scrollTo(0,0);
    });
</script>
于 2013-08-22T09:12:01.330 回答
0

我不认为您使用的解决方案仅依靠锚链接是很好的。我知道它起到某种分页的作用,但正如你所说 - 在加载时它跳转到元素的事实有点糟糕。

我也非常不喜欢这样一个事实,即如果没有设置锚点,那么它们都不会打开。如果第一个是您的“默认值”,我会更喜欢它。但是,除非您明确提及等,否则我想不出使用 CSS 实现此目的的好方法#acc2:not(:target), #acc3:not(:target)(如果我们获得父选择器,这在 CSS4 中可能会更容易——尽管我不是确定如何)。

如果你真的想用现有的解决方案来实现这一点,那么使用$("html,body").scrollTop(0)应该可以工作,但我还记得有与尝试使用 jQuery 立即设置滚动位置相关的问题。尝试添加超时(可能非常小,例如 1ms),看看是否有帮助:

// Try de/increasing the 200 and see if that helps
setTimeout(function() {
    $("html, body").scrollTop(0)
}, 200);

但是,我仍然希望您也多使用一点 JavaScript,例如对哈希开始的初始检查#acc,如果没有,则关注其中一个元素(默认值)。

于 2013-08-22T09:48:10.810 回答