2014-09-30 51 views
0

我试图让固定的表头,并且当你向下滚动并且表头去掉屏幕时可以捕获事件或catch元素吗?如何获取/ catch事件关闭屏幕元素?

+0

是的,这是可能的。 [如何在StackOverflow上提问](http://stackoverflow.com/help/how-to-ask) – 2014-09-30 21:45:24

+0

你可以给我一些代码吗?例? – Gtopuria 2014-09-30 21:47:04

+0

你可以与我们分享你的尝试吗? – 2014-09-30 21:47:29

回答

1

一种方法是使用窗口的滚动事件,并检查元素在那里是否可见。

如何检查是否一个元素在屏幕上,这里回答:Check if element is visible on screen

这里是如何把这些代码到自定义事件entered_view和exited_view:

var $element = $('#some_element'); 
var is_visible = false; 

$(window).on('scroll', function (e) { 
    // Check if $element is on screen using code from other answer 

    if (checkVisible($element)) { 
     if (!is_visible) { 
      $element.trigger('entered_view'); 
     } 
     is_visible = true; 
    } else { 
     if (is_visible) { 
      $element.trigger('exited_view'); 
     } 
     is_visible = false; 
    } 
}); 

一旦你得到它的工作,你可能还想要反弹滚动事件:Here's info about debouncing/throttling in jquery

+0

你可能要抖,由于滚动能火数十次第二... – dandavis 2014-09-30 22:01:00

+0

@dandavis是的,这是绝对正确的,只是试图保持简单的答案/复杂下。编辑,以反映 – michaelb 2014-09-30 22:05:26

+0

你是对的,很高兴提供代码,我只是试图做一个好的gooder的情况下,一个noob遇到代​​码,并想知道为什么它陷入他们的蹩脚设备(检测可见性可能是昂贵的)... – dandavis 2014-09-30 22:08:33