есть кнопка перемотки вверх-назад, которая первым клик перематывает страницу вверх, запоминаея позицию на странице для возврата.
вторым кликом - происходит возврата сверху страницы в исходное положение на странице (как вконтакте)
хочу добавить обработку событий скролстарт и скролстоп.
для этого использую следующий код
Код:
|
function scrolled() {
//do by scroll start
$('.extended-ControlsMenu').hide();
$(this).off('scroll')[0].setTimeout(function(){
//do by scroll end
$('.extended-ControlsMenu').show();
$(this).on('scroll',scrolled);
}, 1500)
}
$(window).on('scroll',scrolled); |
сам по себе код рабочий, сама по себе конпка "вверх-назад" тоже работает.
но, когда коды в скрипт довать коды кнопки и код обработки старт-стоп скроллинга - кнопка перемотки "вверх" работает только в режиме "вверх", а назад - уже не работает.
файрбаг ошибок в скрипте не показывает.
опытным путем установил, что баг возникает изза строчки
Код:
|
$(this).off('scroll')[0].setTimeout(function(){ |
но, что там не так и как исправить - ума не приложу.
если сможете помочь - буду признателен.
полный код скрипта ниже
Код:
|
jQuery(function($){
var topLink = $('#top-link');
topLink.css({'padding-bottom': $(window).height()});
// если вам не нужно, чтобы кнопка подстраивалась под ширину экрана - удалите следующие четыре строчки в коде
topLink.toplinkwidth();
$(window).resize(function(){
topLink.toplinkwidth();
});
function scrolled() {
//do by scroll start
$('.extended-ControlsMenu').hide();
$(this).off('scroll')[0].setTimeout(function(){
//do by scroll end
$('.extended-ControlsMenu').show();
$(this).on('scroll',scrolled);
}, 1500)
}
$(window).on('scroll',scrolled);
$(window).scroll(function() {
if (jQuery('#top-link').attr('hidden-button') == 'false') {
if($(window).scrollTop() >= 1) {
topLink.fadeIn(300).children('a').html('<span id="topicon"></span><span id="text">Наверх</span>').parent().removeClass('bottom_button').addClass('top_button');
} else {
topLink.children('a').html('<span id="backicon"></span>').parent().removeClass('top_button').addClass('bottom_button');
}
}
});
topLink.click(function(e) {
if($(this).hasClass('bottom_button')){
// при нажатии на кнопку «Вниз» переходим туда, где прекратили чтение
$("body").scrollTo( pos + 'px', 200 );
} else{
// определяем и запоминаем координаты того места страницы, откуда был совершен переход наверх
pos = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
$("body,html").animate({scrollTop: 0},200);
}
return false;
});
}); |