0

简单的问题,简单的要点,在 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.");
        }
     }
 });
4

3 回答 3

2

当用户滚动到 div 的底部时,下面的 javascript 函数会发出警报。我有很多 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 位于视口上方)。

于 2013-09-19T06:22:39.647 回答
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'));

});
于 2013-09-19T06:13:12.400 回答
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');
    }
});

演示

于 2013-09-19T06:29:51.577 回答