Я сделал свиток наверху и прокручиваю вниз в jquery
. В том, что я делаю, чтобы прокручивать, как с процентом. Например: если свиток сверху вниз составляет 50%
он прокручивается сверху вниз, так как 50%
он уже работает. Но теперь я хочу прокрутить 50%, если снова щелкнуть, затем прокрутить оставшиеся 50% до нижней части страницы. Я не уверен, как это сделать в jquery.
Вот сценарий. Любое предложение было бы замечательным. http://jsfiddle.net/TkYpY/
Спасибо, вики
$('#spnTop').on("click", function () {
var percentageToScroll = 50;
var percentage = percentageToScroll / 100;
var height = $(document).height() - $(window).height();
if(scrollAmount > 0 )
{
scrollAmount = scrollAmount - (height * percentage);
}
console.log('scrollAmount: ' + scrollAmount);
$('html,body').animate({
scrollTop: scrollAmount
}, 'slow', function () {
console.log("reached top");
});
});
var scrollAmount = 0;
$('#spnbottom').on("click", function () {
var percentageToScroll = 50;
var percentage = percentageToScroll / 100;
var height = $(document).height() - $(window).height();
if( scrollAmount < height)
{
scrollAmount = scrollAmount + height * percentage;
}
console.log('scrollAmount: ' + scrollAmount);
jQuery("html, body").animate({
scrollTop: scrollAmount
}, 900);
});
$('#spnTop').on("click", function () {
var percentageToScroll = 80;
var percentage = percentageToScroll / 100;
var height = $(document).scrollTop();
var scrollAmount = height * (1 - percentage);
console.log('scrollAmount: ' + scrollAmount);
$('html,body').animate({
scrollTop: scrollAmount
}, 'slow', function () {
console.log("reached top");
});
});
var scrollAmount = 0;
$('#spnbottom').on("click", function () {
var percentageToScroll = 50;
var percentage = percentageToScroll / 100;
var height = $(document).height() - $(window).height();
scrollAmount = scrollAmount + height * percentage;
console.log('scrollAmount: ' + scrollAmount);
jQuery("html, body").animate({
scrollTop: scrollAmount
}, 900);
});
Я немного изменил вашу скрипку. Кажется мне какая-то проблема расчета. Вот твоя скрипка. Это то, что вам нужно?
Сначала объявите глобальную height
переменной со значением по умолчанию.
В верхнем коде прокрутки замените var height = $(document).scrollTop();
с height -= $(document).height() - $(window).height();
и в нижней прокрутке замените эту var height = $(document).height() - $(window).height();
с height += $(document).height() - $(window).height();
,
Он не прокручивает второй клик, поскольку вы уже достигли прокрутки.
Если вы хотите прокрутить дальше, объявите var scrollAmount вне функции, и когда вы нажмете еще раз на нижнюю ссылку, вычислите следующую строку прокрутки с максимальным размером вашего документа и добавьте его в глобальный прокручиваемый объявленный var.