javascript - .addClass() 在 JS Fiddle 之外不起作用

标签 javascript jquery

我正在尝试向 .column 的所有实例添加一个类视口(viewport)中的类。

This JS Fiddle添加类(class) .swoosh致所有人.column在视口(viewport)中,但是当我在标记中使用完全相同的 js 时,它不会添加 .swoosh类到 .column在视口(viewport)中。

  1. 我检查了 jquery 是否正在加载,确实如此。
  2. 该代码有效,因为它适用于 JS Fiddle

但由于某种原因,.columnthis page 的视口(viewport)中没有上课.swoosh .

Here is the JS Fiddle again .

Here is the live page again .

这是我尝试运行的代码:

function isElementInViewport(el) {
var rect = el.getBoundingClientRect();

return (
    rect.top >= 0 &&
    rect.left >= 0 &&
    rect.bottom <= (window.innerHeight || document. documentElement.clientHeight) &&
    rect.right <= (window.innerWidth || document. documentElement.clientWidth)
    );
}

$.fn.checkViewportAndSetClass = function() {
  $(this).each(function(){
     if (isElementInViewport(this)) {
      $(this).addClass("swoosh");
    } 
  });
 };
$('.column').checkViewportAndSetClass();

 $(window).on("scroll", function() {
    $('.column').checkViewportAndSetClass();
});

最佳答案

您的页面上没有包含 jQuery。在控制台中:“ Uncaught ReferenceError :$未定义”。您可以通过将以下内容添加到 <head> 来链接到 google cdn 副本:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>

关于javascript - .addClass() 在 JS Fiddle 之外不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17515912/

相关文章:

javascript - 使用bootstrap将数据发送到jsp页面中的模态表单

javascript - 在 Canvas 上实现垂直滚动

javascript - 源代码应该知道它正在被测试吗?

javascript - 在间隔中使用 jQuery Glow

javascript - 按零件名称获取类(class)数

jquery - 为长链接添加 <wbr> 和省略号(使用 jquery.linkify 链接)

javascript - 错误在条件表达式中不必要地使用 bool 文字 no-unneeded-ternary

javascript - 数据表:通过 DOM 数据源中的名称引用列

javascript - jQuery 根据文本输入的值填充选择列表

javascript - 当 ng-show 可以适用于两种情况时,为什么要使用 ng-hide