2015-05-20 2 views
-1

Я упражнялся в создании простой кнопки Back-To-Top, которая активируется при прокрутке страницы после определенной суммы. Это JQueryJQuery back to top кнопка прыгает вверх, вместо прокрутки

$(document).ready(function() { 
    $(window).scroll(function() { 
    if ($(this).scrollTop() > offset) { 
     $('.back-to-top-button').fadeIn(200); 
    } else { 
     $('.back-to-top-button').fadeOut(200); 
    } 
}); 

}); 



/*Scroll Plugin*/ 
$('.back-to-top-button').click(function(event) { 
    $('html, body').animate({scrollTop: 0}, 'slow'); 
    event.preventDefault(); 
}); 

и это, как я положил его в HTML

<a href="#" class="back-to-top-button" style="display: inline;"> 
       <i class="fa fa-chevron-circle-up"></i> 
     </a> 

Проблема заключается в том, что не будет перемещаться вверх, вместо этого он просто прыгает сверху. Я не могу найти какое-либо решение в Интернете, поскольку, похоже, он делает это только на моем сайте, и каждый раз, когда я пытаюсь использовать его на других сайтах, он работает.

+0

Я не вижу, где вы устанавливаете переменную смещения? – Stewartside

+0

Демонстрация: http://jsfiddle.net/nnmvf9r7/1/ Вы правы, это должно быть сделано только на вашем сайте. Можете ли вы показать нам больше своего кода? –

+1

_ «Проблема в том, что она не будет прокручиваться вверх, вместо этого она просто прыгает сверху» - это, вероятно, означает, что ваш обработчик кликов для элемента вообще не выполняется, либо потому, что селектор, используемый для привязки обработчика события ничего не соответствует, или, возможно, потому, что предыдущая ошибка сценария препятствует дальнейшему выполнению. – CBroe

ответ

0

Теперь он работает. Я объявил event handlerвнутриdocument ready функции

$(document).ready(function() { 

var offset = 250; 
var duration = 300; 
$(window).scroll(function() { 
    if ($(this).scrollTop() > offset) { 
     $('.back-to-top-button').fadeIn(duration); 
    } else { 
     $('.back-to-top-button').fadeOut(duration); 
    } 
}); 


/*Scroll Plugin*/ 
$(".back-to-top-button").click(function(event) { 
     $('html, body').animate({scrollTop: 0}, 'slow'); 
     event.preventDefault(); 
    }); 

}); 
Смежные вопросы