把這個問題和最好的答案結(jié)合在一起當用戶滾動通過頁面的某一部分時,jQuery觸發(fā)操作
var element_position = $('#scroll-to').offset().top;$(window).on('scroll', function() {
var y_scroll_pos = window.pageYOffset;
var scroll_pos_test = element_position;
if(y_scroll_pos > scroll_pos_test) {
//do stuff
}});
更新
我已經(jīng)改進了代碼,以便當元素位于屏幕的一半而不是頂部時觸發(fā)。如果用戶點擊屏幕底部,并且該函數(shù)尚未啟動,它也將觸發(fā)代碼。
var element_position = $('#scroll-to').offset().top;var screen_height = $(window).height();var activation_offset = 0.5;
//determines how far up the the page the element needs to be before triggering the functionvar
activation_point = element_position - (screen_height * activation_offset);var max_scroll_height = $('body').height() - screen_height - 5;
//-5 for a little bit of buffer//Does something when user scrolls to it OR//Does it when user has reached the bottom
of the page and hasn't triggered the function yet$(window).on('scroll', function() {
var y_scroll_pos = window.pageYOffset;
var element_in_view = y_scroll_pos > activation_point;
var has_reached_bottom_of_page = max_scroll_height <= y_scroll_pos && !element_in_view;
if(element_in_view || has_reached_bottom_of_page) {
//Do something
}});