Qt имеет конкретный метод для этого, используя класс QTimer
.
Он позволяет создавать таймер (одноразовый или периодический) и подключите свой сигнал timeout
к любому слоту (функции), который вам нужно, чтобы сплести свое волшебство.
На самом деле, эта страница со ссылками имеет точно код, который вам нужно использовать для выполнения вашей желаемая функция:
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000);
Это приведет к тому, что ваша функция update
вызывается один раз в секунду (в пределах, налагаемых точностью Qt и т. д.).
var scrollBottom = $(window).scrollTop() + $(window).height();
Я бы сказал, что 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 //
Вот лучший вариант прокрутки вниз для таблицы grid, он будет прокручиваться до последней строки таблицы:
$('.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;
});
var scrollBottom =
$(document).height() - $(window).height() - $(window).scrollTop();
Я думаю, что лучше получить нижнюю прокрутку.
Это прокрутит до самого верха:
$(window).animate({scrollTop: 0});
Это прокрутит до самого нижнего:
$(window).animate({scrollTop: $(document).height() + $(window).height()});
.. измените окно на нужный идентификатор или класс контейнера если это необходимо (в кавычках).
Это быстрый хак: просто присвойте значение прокрутки очень большому числу. Это обеспечит прокрутку страницы донизу. Использование простого javascript:
document.body.scrollTop = 100000;
В будущем я сделал 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);
Top
- # вертикальных пикселей из документаTop
в видимое окноTop
. В отличие от прокруткиTop
, прокруткаBottom
должна измерять # вертикальных пикселей из документаBottom
в видимое окноBottom
(т. Е. Ответ Альфреда ниже). То, что этот i> дает, является # вертикального пикселя из документа_top_
в видимое окноBottom
. Это полезно, но не может называть это противоположностью ScrollBottom (я знаю, что это заметный ответ, но для будущих читателей, таких как я) – DeepSpace101 14 February 2013 в 22:58