jQuery - scrollBottom [дублировать]

Qt имеет конкретный метод для этого, используя класс QTimer .

Он позволяет создавать таймер (одноразовый или периодический) и подключите свой сигнал timeout к любому слоту (функции), который вам нужно, чтобы сплести свое волшебство.

На самом деле, эта страница со ссылками имеет точно код, который вам нужно использовать для выполнения вашей желаемая функция:

QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000);

Это приведет к тому, что ваша функция update вызывается один раз в секунду (в пределах, налагаемых точностью Qt и т. д.).

75
задан Bin Chen 11 January 2011 в 08:41
поделиться

8 ответов

var scrollBottom = $(window).scrollTop() + $(window).height();
126
ответ дан David Tang 21 August 2018 в 00:41
поделиться
  • 1
    вы можете подумать, что это так просто, как это, что он может быть включен в основную структуру как .scrollBottom (). Странный.. – Curt 11 January 2011 в 10:04
  • 2
    scroll Top - # вертикальных пикселей из документа Top в видимое окно Top. В отличие от прокрутки Top, прокрутка Bottom должна измерять # вертикальных пикселей из документа Bottom в видимое окно Bottom (т. Е. Ответ Альфреда ниже). То, что этот дает, является # вертикального пикселя из документа _top_ в видимое окно Bottom. Это полезно, но не может называть это противоположностью ScrollBottom (я знаю, что это заметный ответ, но для будущих читателей, таких как я) – DeepSpace101 14 February 2013 в 22:58
  • 3
    Это решение не будет работать, если расстояние от вершины может меняться. Например, если у меня есть & lt; div & gt; это должно быть на некотором расстоянии от нижней части страницы, а страница имеет расширяемые / сменные элементы, она изменит высоту тела и, следовательно, расстояние до дна. – crash springfield 28 April 2017 в 19:10
  • 4
    @crashspringfield На самом деле это другой вопрос. Этот вопрос касается размещения вещей возле нижней части окна просмотра не в нижней части страницы. – iPherian 6 May 2017 в 00:45

Я бы сказал, что 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 //
73
ответ дан Alfred 21 August 2018 в 00:41
поделиться

Вот лучший вариант прокрутки вниз для таблицы grid, он будет прокручиваться до последней строки таблицы:

 $('.add-row-btn').click(function () {
     var tempheight = $('#PtsGrid > table').height();
     $('#PtsGrid').animate({
         scrollTop: tempheight
         //scrollTop: $(".scroll-bottom").offset().top
     }, 'slow');
 });
0
ответ дан Dovydas Sopa 21 August 2018 в 00:41
поделиться
// 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;
});
0
ответ дан Ghebrehiywet 21 August 2018 в 00:41
поделиться
var scrollBottom =
    $(document).height() - $(window).height() - $(window).scrollTop();

Я думаю, что лучше получить нижнюю прокрутку.

3
ответ дан pb2q 21 August 2018 в 00:41
поделиться

Это прокрутит до самого верха:

$(window).animate({scrollTop: 0});

Это прокрутит до самого нижнего:

$(window).animate({scrollTop: $(document).height() + $(window).height()});

.. измените окно на нужный идентификатор или класс контейнера если это необходимо (в кавычках).

0
ответ дан snoop_dog 21 August 2018 в 00:41
поделиться

Это быстрый хак: просто присвойте значение прокрутки очень большому числу. Это обеспечит прокрутку страницы донизу. Использование простого javascript:

document.body.scrollTop = 100000;
-3
ответ дан unplugged 21 August 2018 в 00:41
поделиться
  • 1
    Это не будет работать на страницах длиной более 100000 пикселей. Это может показаться довольно кратким случаем, однако в таких случаях, как бесконечные страницы прокрутки, это не невероятно. Если вы действительно хотите решение без jquery, этот ответ может быть лучшим вариантом. – lucash 20 June 2017 в 20:31
  • 2
    ya, нужно использовать как можно большее число 99999999999999999999999999999999. – unplugged 21 June 2017 в 13:06

В будущем я сделал 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);
7
ответ дан Zephyr 21 August 2018 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: