Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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
Javascript scrollTop在firefox中返回的div值要小得多_Javascript_Jquery_Firefox_Scrolltop_Fullpage.js - Fatal编程技术网

Javascript scrollTop在firefox中返回的div值要小得多

Javascript scrollTop在firefox中返回的div值要小得多,javascript,jquery,firefox,scrolltop,fullpage.js,Javascript,Jquery,Firefox,Scrolltop,Fullpage.js,参考链接: 因此,我使用jQuery和jQuery fullPage插件。它帮助我实现逐帧滚动 现在,对于垂直高度大于窗口高度的内部div,我使用了一些功能,我只需检查滚动条的位置,然后对插件执行停止滚动操作,这样内部滚动条就可以滚动,而不会移动框架 使用chrome一切都很好,自从我使用chrome构建以来,我使用了我在chrome上观察到的一些计算。但是firefox显示了不同的结果,尤其是在scrollTop上 我知道高度可能会有差异,但如果您在参考链接中看到日志,高度几乎是相同的(即使不

参考链接:

因此,我使用jQuery和jQuery fullPage插件。它帮助我实现逐帧滚动

现在,对于垂直高度大于窗口高度的内部div,我使用了一些功能,我只需检查滚动条的位置,然后对插件执行停止滚动操作,这样内部滚动条就可以滚动,而不会移动框架

使用chrome一切都很好,自从我使用chrome构建以来,我使用了我在chrome上观察到的一些计算。但是firefox显示了不同的结果,尤其是在scrollTop上

我知道高度可能会有差异,但如果您在参考链接中看到日志,高度几乎是相同的(即使不是为您设置的,也是scrollTop值的问题)

下面是我用来决定是否停止播放的代码

$(文档).on(“向下键”,函数(e){
var story=$(“#story”),
story\u con=story.find(“.container”),
story_top=story_con.scrollTop();
if(story.hasClass(“活动”)){
//console.log(story_top,story_con.height(),story_con.innerHeight(),story_con.children(“div”).height(),story_con.children(“div”).innerHeight(),e.which);
console.log(“Div ScrollTop:+故事情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节情节;
//向上箭头
如果(故事顶部==0&&e.which==38){
控制台日志(“上一帧”)
}
//向下箭头
//铬280+432>=676,即712>=676真
//firefox 207+429>=676即636>=676错误
否则如果(故事顶部+故事高度()>=故事儿童(“div”).height()和&e.which==40){
console.log(“下一帧”);
}
否则{
故事焦点();
console.log(story_con[0]);
log(“停止传播”);
e、 停止即时复制();
}
返回;
}

});*这是我的答案的开始,我将继续调试以提供更好的详细信息

当前,在小于1280px的窗口上使用Firefox 49.0.1版,您的
容器
类中的内容太高

当前证明: 在您的div中,
#story
#partners
#services
,如果您在每个主要部分中指定
div
的直接子级
div.container
,则所有向下箭头键都可以工作

编辑1 在magic.js中,第111行是问题的起点

else if(story\u top+story\u con.height()>=story\u con.children(“div”).height()&e.which==40){

每个容器中的内容,
story\u con.children(“div”).height()
,有时大于
story\u top+story\u con.height()
,因此它不会进入您想要的下一页路径

当然,这一切都取决于窗户的高度

您的调试日志记录证明了我的观点:

简单的答案是,Chrome和Firefox呈现页面的方式不同。要了解呈现页面的方式不同的原因,请查看以下内容


我希望这能澄清问题。

出于好奇,你为什么不使用fullPage.js的
scrollOverflow
功能创建滚动条呢?scrollOverflow选项需要一个外部js文件。而且,该选项对我来说工作不稳定。可能是因为我使用了flexbox。我会确保你没有pro你的方法在触摸设备上存在问题。我会提出一个新的问题,但不要太具体。只要问一下如何为一个可滚动元素获得Firefox和Chrome相同的值。你会得到更多的答案,有一个简短而更一般的问题。“不要使用Firefox”你一定是在开玩笑,还是我遗漏了什么?好的,首先非常感谢你的帮助。现在,我将我的窗口大小调整到1280,在chrome上运行良好。事实上,它在chrome上运行,无论大小。在firefox(同一版本),我将div.container>div height设置为200px,它可以工作,但原因很简单。对于小于窗口的高度,将不存在滚动条,第111行上的条件计算为true,并加载下一帧。对于小于窗口高度的任何div高度,都是这样。现在,第111行仅表示箭头键已按下,我们已到达滚动位置的末尾。如果story_top变量(scrollTop)的值与chrome的值相同,则所有计算都将正常运行,但实际情况并非如此。好的:)我将研究chrome与FirefoxIt中scrollTop的不同之处。scrollTop()在Firefox中效果不好。今天下班后,我会试着为你写一篇文章。我确实知道这一点。但在这种情况下,我不知道它是否有帮助。首先,我不是在处理宽度,这是一个高度和滚动条问题。也许,它可能以类似的方式处理高度,但我给出的唯一高度是100vh和th这里只有一个孩子。即使我认为这是真正的问题,5-10像素的差异是有意义的,但是如果你看到日志,Chrome和Firefox的值(对我来说)几乎有80像素的差异。所以,我想这不是原因。