确定已滚动到底部的d​​iv的id

时间:2013-09-19 06:05:18

标签: javascript jquery scroll

简单的问题,容易点,在SO中找不到答案。当用户滚动到div的底部时,下面的javascript函数会发出警报。我有很多div,但我只想在滚动div id = imageloc时运行警报。

 $(window).scroll( function() {
     if ( document.documentElement.clientHeight + $( document ).scrollTop() >= document.body.offsetHeight ) { 
        if (this.id == "imageloc" ) {
            alert("bottom of the page.");
        }
     }
 });

3 个答案:

答案 0 :(得分:2)

  

当用户滚动到时,下面的javascript函数会发出警报   div的底部。我有很多div,但我只想让警报运行   当div id = imageloc被滚动时。

也许我误解了,但是它的措辞就像你有很多可滚动的div,如果其中一个滚动到底部就想做点什么。然后你应该听听这个特殊div上的scroll事件:

$("#imageloc").scroll( function(e) {
     if ( this.scrollTop >= this.scrollHeight - this.offsetHeight ) { 
        console.log( 'bottom' )
     }
 });

http://jsfiddle.net/aheh5/

如果要在文档滚动到特定div的底部之后执行某些操作,请尝试以下操作:http://jsfiddle.net/aheh5/1/(但是,每当用户滚动窗口并且#imageloc位于视口)。

答案 1 :(得分:1)

像这样使用

$(window).scroll(function() {

var winTop = $(this).scrollTop();
var $divs = $('div');

var top = $.grep($divs, function(item) {
    return $(item).position().top <= winTop;
});

alert($(top).attr('id'));

});

答案 2 :(得分:1)

您可以尝试这样的事情,

var imgLocTop = $('#imageloc').offset().top ; 
var $window = $(window); 
var limit = Math.abs($window.height() - imgLocTop); 
$window.scroll( function() { 
    if($window.scrollTop() >= limit) {
      alert('Reached the required div');
    }
});

Demo