javascript - 屏幕插件在错误的时间加载类名

标签 javascript jquery css addclass

onscreen插件旨在仅在元素位于视口(viewport)内时将类名添加到元素,但是它似乎在页面加载后立即添加类名,这不是本意。

$(function() {
  setInterval(function() {
  $("#star").filter(":onScreen").addClass('animated bounceInRight');
  }, 0)                             
})

我在这个插件中使用它,它是一个书籍效果插件,我认为它在某种程度上与屏幕冲突:http://pastebin.com/UmyJ6zBW这个插件需要在一页上有不同的部分才能工作。在第一部分中使用时在屏幕上工作,但在实际未显示的其他部分中时中断。我该如何解决这个问题?

最佳答案

您可以做三件事中的一件。

  1. 别打扰了。通常,您无需担心不在 View 中的元素的样式。
  2. 使用 setInterval() 但将间隔减少到可接受的最小值但不少于约 20 毫秒。
  3. [首选] 建立一个事件处理程序,以响应导致您的 #star 元素移入/移出屏幕的任何原因。

对于第三种方法:

  • jQuery 动画提供了一个 step 回调,它会在每个动画步骤执行时触发。
  • 由于滚动文档也会导致元素进入/离开 View ,您可能还需要一个scroll 处理程序。

小心点,您应该能够编写一个函数并将其用于两个目的。

关于javascript - 屏幕插件在错误的时间加载类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15024479/

相关文章:

javascript - 批量更新规范化的 Redux 状态

javascript - 如何在 div 的宽度或高度发生变化时自动执行 Javascript 函数?

javascript - 如何在 JavaScript 中对多维数组进行排序

javascript - Laravel - 从 Ajax Post 请求获取数据

jquery - 如何为动画汉堡包图标使用 Font Awesome Bars

html - 响应式分区表

javascript - 使用浏览器打印功能生成自定义大小的pdf

javascript - 在 Page_Load 上禁用列表框

jquery翻转!背景

jquery - 我正在尝试使用 jQuery 更改背景图像,它可以在我的本地机器上使用,但不能用于在线服务