当前位置: 首页 > 面试题库 >

用户滚动到特定元素时触发事件-使用jQuery

洪弘亮
2023-03-14
问题内容

我的h1不在页面上。

<h1 id="scroll-to">TRIGGER EVENT WHEN SCROLLED TO.</h1>

我想在用户滚动到h1或在浏览器视图中触发警报时触发。

$('#scroll-to').scroll(function() {
     alert('you have scrolled to the h1!');
});

我该怎么做呢?


问题答案:

您可以计算offset元素的,然后将其与scroll值进行比较,例如:

$(window).scroll(function() {
   var hT = $('#scroll-to').offset().top,
       hH = $('#scroll-to').outerHeight(),
       wH = $(window).height(),
       wS = $(this).scrollTop();
   if (wS > (hT+hH-wH)){
       console.log('H1 on the view!');
   }
});

检查这个 演示小提琴

更新了 Demo Fiddle 无提示-而是将FadeIn()元素

更新了代码,以检查元素是否在视口内。因此,无论您向上滚动还是向下滚动向if语句添加一些规则,此方法都有效:

   if (wS > (hT+hH-wH) && (hT > wS) && (wS+wH > hT+hH)){
       //Do something
   }

jsfiddle



 类似资料:
  • 我想开发一个带有div和一些样式的文件拖放组件: dragenter:更改div边框颜色 dragleave:还原为原始div边框颜色 在Firefox 35(Ubuntu)上,当div有一个滚动条(水平或垂直)并且在滚动条中移动文件时,我会发生以下事件: < li>dragenter:移过div边框 < li>dragenter:在滚动条上移动 < li>dragleave:离开滚动条 所以我在

  • 如题,父元素绑定竖向滚动事件,子元素绑定了横向滚动事件,在子元素上竖向滚动失效? 我的需求是,父元素整体上下可以滚动,其中一块子元素区域是左右滚动的轮播图,左右可滚动,在 ios 12.5.2 iphone 5s 下,在子元素左右滚动的轮播图区域,上滑,无法触发父元素的滚动事件,想问下大家这是什么原因,有没有解决方案?

  • 问题内容: 当用户滚动页面时,我想做一些有趣的jQuery东西。但是我不知道如何解决这个问题,因为只有方法。 有任何想法吗? 问题答案: 您可以使每次用户滚动时都有一个超时被覆盖。这样,当他在一定毫秒后停止运行时,您的脚本将运行,但是如果他在此期间滚动,则计数器将重新开始,并且脚本将等待直到完成滚动为止。 更新: 因为这个问题又采取了一些行动,所以我认为我不妨使用添加事件的jQuery扩展对其进行

  • 问题内容: 我正在上传多个图像,并将它们放置在ondiv必须切换某些类的某些div中。我是否必须将添加onclick事件的部分放在ajax成功函数中?非常感谢! 我正在使用“ on”上的jquery,但似乎不起作用。可能我缺少了一些东西 这是我的代码: Javascript: HTML: 问题答案: 对于动态创建的元素,您必须使用.live()但是,在1.7中不推荐使用,而在中将其完全删除。该签名

  • 问题内容: 我有这个元素: 然后,我还有其他一些元素,例如其他文本输入,文本区域等。 当用户点击带,页面应该滚动到页面的最后一个元素与一个漂亮的动画。它应该是滚动到底部而不是顶部。 页面的最后一项是带有的按钮: 动画不应太快并且应该流畅。 我正在运行最新的jQuery版本。我更喜欢不安装任何插件,而是使用默认的jQuery功能来实现此目的。 问题答案: 假设您有一个ID为的按钮,请尝试以下示例:

  • 我的元素在屏幕上不可见,但当我使用.isDisplayed()方法时,我的代码如下 send_mail是要找到的元素的xpath。这是tracelog的帮助!我不能使用while循环进行迭代,直到元素在应用程序中被视为可见时才显示出来。