jQuery 对scrollTop() 的响应缓慢

2024-03-18

我一直在尝试制作调整高度导航,如下所示:http://www.kriesi.at/themes/enfold/ http://www.kriesi.at/themes/enfold/

正如在 jsfiddle 上看到的那样,我已经非常接近了:http://jsfiddle.net/magnusbrad/4DK3F/12/ http://jsfiddle.net/magnusbrad/4DK3F/12/

<div id="nav" class="header">
nav here
<ul class="right">
    <li>item 1</li>
    <li>item 2</li>
    <li>item 3</li>
</ul>
</div>

$(window).scroll(function () {
if ($(document).scrollTop() === 0) {
    $('#nav.header').animate({height:'140px'}, 500);
    $('ul.right').animate({'line-height':'140px'}, 500);
} else {
    $('#nav.header').animate({height:'40px'}, 500);
    $('ul.right').animate({'line-height':'40px'}, 500);
}
});

当您向下滚动时,动画效果完美,但是,当您滚动回页面顶部时,更新并运行 else 语句需要大约 10 秒的时间。为了使该操作更快、更实时地发生,我缺少什么?


问题是.animate()每次调用时都会添加到队列中。因此,当您从顶部滚动时,每个滚动事件的另一个动画都会添加到动画队列中。然后当你回到顶部时,.animate({height:'140px'}, 500)动画被添加到队列的末尾,这意味着它只会在所有其他动画发生后才会发生(每个动画需要 500 毫秒)。当然,您看不到这些其他动画的发生,因为您告诉 jQuery 对它们已有的值进行动画处理,因此视觉上没有发生任何事情。

http://api.jquery.com/animate/ http://api.jquery.com/animate/

Try:

var atTop = !$(document).scrollTop();

$(window).scroll(function () {

    if ($(document).scrollTop() === 0 && !atTop) {

        $('#nav.header').animate({height:'140px'}, 500);
        $('ul.right').animate({'line-height':'140px'}, 500);

        atTop = true;

    } else if (atTop) {

        $('#nav.header').animate({height:'40px'}, 500);
        $('ul.right').animate({'line-height':'40px'}, 500);

        atTop = false;

    }
});

http://jsfiddle.net/4DK3F/32/ http://jsfiddle.net/4DK3F/32/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery 对scrollTop() 的响应缓慢 的相关文章

随机推荐

  • 使用 Nom 5 解析带有转义引号的单引号字符串

    我是 Rust 和 Nom 的新手 我正在尝试解析可能包含转义引号的 单 引号字符串 例如 foo bar or x x or 我找到了escaped 宏 其文档 https docs rs nom 5 0 1 nom macro esca
  • LinkedList 为同一功能提供了多种方法 - 为什么? [复制]

    这个问题在这里已经有答案了 我正在检查Java util LinkedList类 发现Linked List类提供了几个方法 public void addFirst E e public boolean offerFirst E e pu
  • 通过单独的线程在表单上绘图

    我正在尝试构建一个多线程游戏 其中我有一个单独的线程用于在不是主线程的表单上进行绘画 这给我们带来了线程安全技术 我已经阅读了很多相关文章 但我不确定我是否正确理解了它 我的问题是我有一个结构 其中每个数据对象都在表单上自行绘制 所以我不知
  • 如何使用XHTML/HTML给网站添加站内搜索功能? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我真的很想学习如何为我的网站制作自己的搜索引擎 我有定义的按钮和标签 但它不搜索 我无法弄清楚用于实际搜索该网站的 HTML 或 XHTM
  • 杰克逊 FAIL_ON_UNKNOWN_PROPERTIES 为 false 不起作用

    我正在尝试使 jackason 的 thrift 反序列化向后兼容 ObjectMapper mapper getObjectMapper false pretty mapper configure DeserializationFeatu
  • 将opentok视频会议集成到parse.com + iOS应用程序中

    这个问题不仅针对代码 还针对我的应用程序设计 我有一个 iPhone 应用程序 需要 opentok 来处理视频 音频会话 我已经经历过基本样品 http www tokbox com opentok ios docs index html
  • 在 iOS 上禁用全屏自动播放

    我遇到的唯一问题是 根据苹果文档 我无法禁用全屏播放视频 这是默认启用的 需要设置如下 webView configuration allowsInlineMediaPlayback true 这是基于我的理解它应该是怎样的 然而 这不起作
  • 是否可以在 DOM 中移动

    我想创建一个
  • 在Scheme中编写一个自动记忆器。有关宏和包装器的帮助

    我在Scheme中编写自动记忆器时遇到了一些问题 我有一个有效的 memoize 函数 它创建一个哈希表并检查该值是否已经计算出来 如果之前已经计算过 则返回值 否则调用该函数 define memoizer fun let a table
  • 如何决定创建受检异常或非受检异常[重复]

    这个问题在这里已经有答案了 我想知道如何知道创建并抛出已检查异常或未检查异常 例如 我有一项服务 它会获取一些数据并在使用之前对其进行验证 在验证过程中 某个字段不符合规则 我想抛出一个异常 比如 ValidationException 我
  • gapi.client.load 与 google.load

    我对如何正确加载 Google 的 API 感到困惑 我看到提到了两种不同的方法 First 谷歌 API 加载器 https developers google com loader https developers google com
  • 以 RESTful 方式调用资源上的服务器端方法

    请记住 我对 REST 有初步的了解 假设我有这个网址 http api animals com v1 dogs 1 现在 我想让服务器让狗叫 只有服务器知道如何执行此操作 假设我想让它在 CRON 作业上运行 让狗在接下来的时间里每 10
  • 如何禁用java中的运行时警告?

    我在 java 程序中使用 jar 文件 它在运行时生成警告 但我不希望我的客户看到这些警告 我怎样才能禁用这些警告 警告如下 Sep 25 2009 10 10 33 PM com gargoylesoftware htmlunit In
  • 如何列出 Cassandra 中所有可用的键空间?

    我是 Cassandra 的新手 正在尝试使用 Cassandra 实现一个玩具应用程序 我在 Cassandra 数据库中创建了一个键空间和几个列族 但我忘记了集群的名称 我试图查找是否有任何查询可以列出所有可用的键空间 有人知道这样的查
  • 将 asp.net、C# GridView 输出到 PDF 的好方法是什么

    我尝试使用 Microsoft ReportingControls 但发现它们过于麻烦 而且文档太少 我想要一个简单的控件 可以将 GridView 控件转换为 PDF 文档 我已经开始研究 PDFSHArp 但在文档方面遇到了死胡同 iT
  • HTML Canvas 上的图像无法下载

    我有 HTML 画布 它可以很好地显示图像 我有这个 jquery 代码来下载图像 img download click function var data canvas toDataURL download href data I tri
  • wmode=透明 Youtube 视频 Iframe 无法在带有引导模式的 IE 中工作

    我有一个网络应用程序 我使用 iframe 标签嵌入 Youtube 视频 我也在使用引导模式 因此 当引导模式无法与 YouTube 视频重叠时 IE 中就会出现问题 现在我用谷歌搜索这个问题 发现很多答案都说添加 wmode trans
  • 如何使用 std::atomic<>

    我有一个类 我想在不同的线程中使用 我想我可以使用std atomic这边走 class A int x public A x 0 void Add x void Sub x 在我的代码中 std atomic a a 并在不同的线程中 a
  • Amazon API 提交请求太快

    我正在创建一个游戏比较网站 并希望将亚马逊价格包含在其中 我面临的问题是使用他们的 API 来获取我已有的 25 000 种产品的价格 我目前正在使用 Amazons API 中的 ItemLookup 并让它能够检索价格 但是在大约 10
  • jQuery 对scrollTop() 的响应缓慢

    我一直在尝试制作调整高度导航 如下所示 http www kriesi at themes enfold http www kriesi at themes enfold 正如在 jsfiddle 上看到的那样 我已经非常接近了 http