2014-02-12 7 views
1

Я хочу создать div, содержащий бесконечный прокручиваемый контент на странице.«Бесконечный свиток» в div на веб-странице

Для признания конца прокрутки контента для того, чтобы загрузить больше данных из базы данных, которую я написал следующее:

$(window).scroll(function(){ 

    var wintop = $(window).scrollTop(), docheight = $(document).height(), winheight = $(window).height(); 
    var scrolltrigger = 0.95; 

    if ((wintop/(docheight-winheight)) > scrolltrigger) { 
    lastAddedLiveFunc(); 
    } 
}); 

Вопроса: Следующий код для создания бесконечного свитка, который соответствует на всей веб-странице, но как я могу написать то же самое для 'div' внутри веб-страницы?

(Подсказка: точная подобная вещь является тикер на Facebook, на правой стороне, которая показывает последние действия ваших друзей в режиме реального времени.)

ответ

1

принцип точно такой же. Div будет вашим окном просмотра браузера, а содержимое div - вашим документом. Вам просто нужно обменять

  • $(window).scroll() ->$("#someDiv").scroll()
  • $(window).scrollTop() ->$("#someDiv").scrollTop()
  • $(document).height() ->$("#someDiv")[0].scrollHeight
  • $(window).height() ->$("#someDiv").height()

и он должен работать ,

Обратите внимание, что:

  • scrollHeight это свойство, а не функция.
  • scrollHeight не jQuery, поэтому вам нужно получить его из фактического элемента javascript селектора, следовательно, дополнение [0]. Другой способ - использовать $ ("# someDiv"). Prop ("scrollHeight").
+0

Вы знаете эквивалент scrollHeight в JQuery ?! Я знаю, что могу использовать, который был выпущен в jQuery 1.7: $ ("# dvContent"). Prop ("scrollHeight"); Но знаете ли вы какой-либо чистый эквивалент jQuery? – user3286556

+0

Не думайте, что он существует. $ ("# dvContent"). prop ("scrollHeight") или $ ("# dvContent") [0] .scrollHeight кажутся вашими единственными параметрами. – stafffan

+0

Я пробовал использовать его, но он не работает. Не могли бы вы взглянуть на него и сообщить мне, где я поступил не так, и сохранить свою жизнь :(?! http://jsfiddle.net/cyrus2013/FQSx4/2/ – user3286556

0
$("#yourdiv").scroll(function(){ 

//your logic 
} 

Вы можете использовать DIV вместо окна

Например

$('#yourdiv').scrollTop() // etc 
0

использование этого

// get box div position 
var box = document.getElementById('box').offsetTop; 

window.onscroll = function(){ 

    // get current scroll position 
    var scroll_top = document.body.scrollTop || document.documentElement.scrollTop; 

    document.getElementById('scbox').innerText = scroll_top + ' ' + box; 

    // if current scroll position >= box div position then box position fixed 
    if(scroll_top >= box) 
     document.getElementById('box').style.position = 'fixed'; 
    else 
     document.getElementById('box').style.position = 'relative';  
} 
+0

var scroll_top = document.body.scrollTop || document.documentElement.scrollTop; – giraysam

+0

Ваш ответ выглядит интересным! Не могли бы вы проиллюстрировать в JSFiddle ?! – user3286556

+0

http: // jsfiddle.сеть/giraysam/Cdf6b / – giraysam

Смежные вопросы