jQuery scrollTo 无法正常工作,html 设置为 100%

Posted

技术标签:

【中文标题】jQuery scrollTo 无法正常工作,html 设置为 100%【英文标题】:jQuery scrollTo not working body,html set 100% 【发布时间】:2011-07-01 05:21:58 【问题描述】:

刚刚从 SO 用户那里得到了关于这个问题的一些很棒的帮助:

jQuery on window scroll animate background image position

正如您在此处看到的,我想在用户滚动页面时逐步滚动 divs 背景图像。请参阅此工作版本:

http://jsfiddle.net/nicklansdell/HFxVj/4/

给出的答案完美无缺。然而,除了能够使用浏览器滚动条滚动页面外,我还想包含一些额外的功能,当单击锚点时,将页面滚动到 divs 哈希位置。我正在使用 scrollTo 插件来实现这一点,在我包含以下 CSS 之前效果很好:

body, html 
    height: 100%;
    min-height: 100%;

不幸的是,如果我包含这个页面 scrollTo 动画不起作用但包含它允许背景图像位置动画工作,它似乎是一个或另一个,但当然我需要两个:-) 任何人都可以建议一个这里的解决方法?非常感谢。

编辑*

我已经把我的问题缩小了一点。问题与正文无关,html 被设置为高度 100%。归结为给#page div 一个物理高度。背景图像滚动需要 100% 的高度,但不需要为 scrollTo 工作指定高度。请查看我的 JSFiddle http://jsfiddle.net/nicklansdell/HFxVj/4/ 更新并尝试使用 #page 样式来了解我的意思。

【问题讨论】:

小提琴中看不到动画代码。另一方面 - 我也没有在 Html 区域看到任何内容。我应该看到吗? @Niklas 抱歉,我正在玩弄代码,并把所有的 scrollTo 引用都拿出来了。我已将它们放回原处并缩小了问题范围,请参阅上面的编辑。 抱歉,我暂时没有任何想法,祝你好运! 【参考方案1】:

您是否使用$.scrollTo('selector-for-target-element', time); 进行滚动?对于这种语法,body 的任何一个 HTML 都需要具有自动高度。我有类似的问题,我通过明确提及需要滚动的父 div 来解决。

$('parent-div-selector').scrollTo('selector-for-target-element', time);
instead of 
$.scrollTo('selector-for-target-element', time);

它成功了。

希望对你有帮助。

【讨论】:

【参考方案2】:

只是一个远景 - 您是否尝试将 css 应用于 body 或 html,而不是两者?

只有身体:

body  
height: 100%;
min-height: 100%;

只有 html:

html  
height: 100%;
min-height: 100%;

【讨论】:

非常感谢您的建议,但不幸的是它不起作用【参考方案3】:

只将高度应用到正文,而不是 html。

【讨论】:

以上是关于jQuery scrollTo 无法正常工作,html 设置为 100%的主要内容,如果未能解决你的问题,请参考以下文章

jQuery scrollTo 插件在 iOS 上变成 Jerky

ScrollView 中的 ScrollTo 无法按预期工作

jQuery函数无法正常工作

jquery 无法正常工作语法错误

jQuery 无法正常工作

jQuery 在 Laravel 5 中无法正常工作