$(function() { window.last_scroll_position = 0; var show = false var close_button = '' //console.log( g_is_guest , close_button) var to_top_button = $('
наверх
'+ close_button +'
') $('body').append(to_top_button); // наверх $('.to_top_panel', to_top_button).click(function(){ if(to_top_button.hasClass('has_position')){ to_top_button.removeClass('has_position'); $('.to_top_button .arrow', to_top_button).html('↑'); $('.to_top_button .label', to_top_button).html('наверх'); $('html, body').animate({ scrollTop: window.last_scroll_position }, 500); window.last_scroll_position = 0; }else{ to_top_button.addClass('has_position'); $('.to_top_button .arrow', to_top_button).html('↓'); $('.to_top_button .label', to_top_button).html('вниз'); window.last_scroll_position = window.pageYOffset; $('html, body').animate({ scrollTop: 0 }, 500); } }) // закрыть $('.close_panel', to_top_button).click(function(){ $.post('/json/settings/disable_scrollup/', { 'action': 'disable' }, function(json){ if(json.messages == 'ok'){ $('.to_top').remove() $.jGrowl('Панель отключена. Вы можете настроить показ панели в настройках.', { sticky: true }) }else{ show_system_error(json) } }) return false; }) var last_position = 0; $(window).scroll(function () { show_or_hide() if( last_position < window.pageYOffset){ //console.log('скролл вниз', last_position , window.pageYOffset); if( to_top_button.hasClass('has_position') ){ //to_top_button.removeClass('has_position'); //$('.to_top_button .arrow', to_top_button).html('↑'); //$('.to_top_button .label', to_top_button).html('наверх'); //to_top_button.hide() show = false } }else{ //console.log('скролл вверх', last_position , window.pageYOffset); } last_position = window.pageYOffset; }) function show_or_hide(){ if( window.pageYOffset > 400){ if(!show){ to_top_button.show() to_top_button.removeClass('has_position'); $('.to_top_button .arrow', to_top_button).html('↑'); $('.to_top_button .label', to_top_button).html('наверх'); show = true } }else{ if(show && !to_top_button.hasClass('has_position')){ to_top_button.hide() show = false } } } show_or_hide() });