Chrome上的#hashtag导航故障 - 正确跳转到某些部分,但不是全部

时间:2016-02-21 21:27:38

标签: jquery html css

我正在试图找出导致以下故障的根本原因:

http://apapartnership.com/vol3

转到vol2或vol3并单击内容列表中的任何#hash链接会产生奇怪的结果:

1.-如果我点击任何一章'链接从1到16-18(直到您需要滚动以查看目录的其余部分之前) ​​- 一切似乎都正常工作。你将被带到指定的部分。

2.-如果我点击边界附近的任何章节链接'或者前16-18个项目和接下来几个项目之间的阈值要求我向下滚动目录 - 会有移动 - 但不会向右移动。

3.-有时,如果我多次点击所有内容,它将开始正常工作。

4.-这个故障在vol1中无法重现。与其他两卷不同,目录不够大,不足以保证溢出,但即便如此,这很可能与它无关。

新编辑:如果我使窗口高度足够窄以迫使滚动变为活动目录,则可以在vol1中重现。

我的第一反应是在Firefox上测试这个,令我惊讶的是,它在那里工作得很好。它只有chrome-48.0.25(截至本文撰写时),我发现这个故障正在发生。

我怀疑它与冗长的单页文档和加载所需的时间有关 - 但......我无法确切知道。也许它与一些被解雇的jquery代码发生冲突?

像往常一样,任何正确方向的帮助或指示都非常受欢迎。

干杯 Sotkra

1 个答案:

答案 0 :(得分:1)

我认为你的问题不是执行,而是计划。您的问题似乎根源于加载太多内容,至少与普通网页相比。

现在浏览器不再简化加载大量数据(这就是我们使用强大的服务器的权利,对吧?),但是对于动画很大的页面(所有动画应该顺利运行而不会在运动连续性中出现打嗝 - 这是每个浏览器制造商和/或框架开发人员的目标 - 最终的平滑动画敬畏[someness]。)

您应该一次只加载一个部分和目录。对我来说,它看起来像是完美的AngularJs用例,它可以异步调用REST API来获取每个部分的内容,同时保留摘要。

您问题的正确/实际答案可能源于markup错误或类似内容。但这是你面临的另一个巨大问题。事实上,您的项目几乎不可能开发,维护和调试

即使它没有直接回答你的问题,我认为我的建议比任何on-topic答案更能解决你的真实问题。

编辑:(来自评论)显然,将position:fixed导航菜单直接放在<body>下可以解决问题。在这种情况下,我的建议是从帖子内容中完全删除#toc元素,并使用以下小脚本将其放在<body>下:

jQuery(document).ready(function( $ ) {
    $('#toc').appendTo('body');
});

当然,它需要对CSS中的一些选择器进行一些更改,因此样式适用于移动的项目。