Я хочу размещать элемент внизу страницы, когда пользователь прокручивает страницу. Это похоже на «фиксированное положение», но я не могу использовать CSS «position: fixed», так как браузеры многих моих клиентов не могут это поддерживать.
Я заметил, что jquery может получить верхнюю позицию текущего окна просмотра, но как я могу получить нижнюю часть области просмотра прокрутки?
Итак, я спрашиваю, как узнать: $ (window) .scrollBottom ()
javascript
jquery
Бин Чен
источник
источник
Top
- это количество пикселей по вертикали от документаTop
до видимого окнаTop
. Как полная противоположность прокруткиTop
, прокруткаBottom
должна измерять количество вертикальных пикселей от документаBottom
до видимого окнаBottom
(то есть ответ Альфреда ниже). Что это дает является # вертикального пиксела документа_top_
в видимом окнеBottom
. Это наверняка полезно, хотя и не могу назвать это противоположностью ScrollBottom (я знаю, что это заметный ответ, но для будущих читателей, таких как я)Я бы сказал, что scrollBottom как прямая противоположность scrollTop должен быть:
var scrollBottom = $(document).height() - $(window).height() - $(window).scrollTop();
Вот небольшой уродливый тест, который мне подходит:
// SCROLLTESTER START // $('<h1 id="st" style="position: fixed; right: 25px; bottom: 25px;"></h1>').insertAfter('body'); $(window).scroll(function () { var st = $(window).scrollTop(); var scrollBottom = $(document).height() - $(window).height() - $(window).scrollTop(); $('#st').replaceWith('<h1 id="st" style="position: fixed; right: 25px; bottom: 25px;">scrollTop: ' + st + '<br>scrollBottom: ' + scrollBottom + '</h1>'); }); // SCROLLTESTER END //
источник
На будущее я сделал scrollBottom плагином jquery, который можно использовать так же, как scrollTop (то есть вы можете установить число, и он будет прокручивать это количество снизу страницы и возвращать количество пикселей снизу страницы или верните количество пикселей от нижней части страницы, если число не указано)
$.fn.scrollBottom = function(scroll){ if(typeof scroll === 'number'){ window.scrollTo(0,$(document).height() - $(window).height() - scroll); return $(document).height() - $(window).height() - scroll; } else { return $(document).height() - $(window).height() - $(window).scrollTop(); } } //Basic Usage $(window).scrollBottom(500);
источник
var scrollBottom = $(document).height() - $(window).height() - $(window).scrollTop();
Думаю, лучше получить нижний скролл.
источник
Это переместится на самый верх:
$(window).animate({scrollTop: 0});
Это будет прокручиваться в самый низ:
$(window).animate({scrollTop: $(document).height() + $(window).height()});
.. при необходимости измените окно на желаемый идентификатор контейнера или класс (в кавычках).
источник
overflow-y: auto
чтобы он фактически прокручивался до нижней части текста (который выходит за пределы высоты div)?scrollHeight
- см .: stackoverflow.com/q/7381817Вот лучший вариант прокрутки вниз для сетки таблицы, он будет прокручиваться до последней строки сетки таблицы:
$('.add-row-btn').click(function () { var tempheight = $('#PtsGrid > table').height(); $('#PtsGrid').animate({ scrollTop: tempheight //scrollTop: $(".scroll-bottom").offset().top }, 'slow'); });
источник
// Back to bottom button $(window).scroll(function () { var scrollBottom = $(this).scrollTop() + $(this).height(); var scrollTop = $(this).scrollTop(); var pageHeight = $('html, body').height();//Fixed if ($(this).scrollTop() > pageHeight - 700) { $('.back-to-bottom').fadeOut('slow'); } else { if ($(this).scrollTop() < 100) { $('.back-to-bottom').fadeOut('slow'); } else { $('.back-to-bottom').fadeIn('slow'); } } }); $('.back-to-bottom').click(function () { var pageHeight = $('html, body').height();//Fixed $('html, body').animate({ scrollTop: pageHeight }, 1500, 'easeInOutExpo'); return false; });
источник
пытаться:
$(window).scrollTop( $('body').height() );
источник
var scrolltobottom = document.documentElement.scrollHeight - $(this).outerHeight() - $(this).scrollTop();
источник
Это быстрый прием: просто назначьте значение прокрутки очень большому числу. Это обеспечит прокрутку страницы вниз. Используя простой javascript:
document.body.scrollTop = 100000;
источник