Здравствуйте! В сегодняшнем уроке, рассмотрим реализацию простого кода кнопки «вверх» на Html, jquery и css.
Как и всегда, приступаем к рассмотрению HTML кода. Сегодня он будет довольно примитивный:
<div class="to-top" data-btn="toTop"> ➡ </div>
где:
to-top — класс, используя который мы будем стилизировать нашу кнопку
data-btn="toTop" — дата-атрибут, используя который мы будем отслеживать события скрола и клика по кнопке (да-да, мы можем это сделать и по классу «to-top», я же остановился на дата-атрибуте)
Стилизация кнопки наверх
Для придания кнопке наверх стилей, будем использовать следующий код:
.to-top {
position: fixed;
right: 25px;
bottom: 25px;
display: none;
width: 40px;
height: 40px;
color: #fff;
font-size: 30px;
text-align: center;
line-height: 1.3;
border: 3px solid #008cba;
background-color: #00aae3;
transform: rotate(-90deg);
cursor: pointer;
opacity: 0.3;
transition: all 0.3s;
}
.to-top:hover {
opacity: 1;
}
.to-top--fixed {
display: inline-block;
}
По умолчанию, мы прячем кнопку и задаем ей фиксированную позицию в правом нижнем углу.
position: fixed; right: 25px; bottom: 25px; display: none;
И скорее всего, в реальной работе, кнопке придется задать свойство z-index отличное от нуля, но это зависит от других элементов используемых на вашем сайте.
Остальные свойства, такие как:
transform: rotate(-90deg); cursor: pointer; opacity: 0.3; transition: all 0.3s;
больше придают визуальный эффект нашей кнопке, чем имеют практическое значение.
При наведении на кнопку, мы устанавливаем свойство прозрачности в единицу:
.to-top:hover {
opacity: 1;
}
А класс:
.to-top--fixed {
display: inline-block;
}
используется чтобы отобразить наш блок.
JavaScript код кнопки вверх
Для манипулирования с событиями кнопки, используется следующий код:
jQuery(document).ready(function()
{
jQuery(window).scroll(function()
{
var scroll_top = jQuery(window).scrollTop();
if(scroll_top >= 300)
{
jQuery('[data-btn="toTop"]').addClass('to-top--fixed');
}
else
{
jQuery('[data-btn="toTop"]').removeClass('to-top--fixed');
}
});
jQuery('[data-btn="toTop"]').on('click', function(e)
{
e.preventDefault();
jQuery('html, body').animate({scrollTop: 0}, 300);
});
});
Здесь мы отслеживаем два события:
1. Событие окна «scroll».
2. Событие кнопки «click».
Определяем, на какой высоте сейчас мы находимся:
var scroll_top = jQuery(window).scrollTop();
Если на высоте более 300px от верха экрана, то добавляем нашей кнопке класс «to-top--fixed»:
jQuery('[data-btn="toTop"]').addClass('to-top--fixed');
т. е. добавляем кнопке свойство «display: inline-block;».
В противном же случае, т. е. если экран выше отметки 300px, мы удаляем выше упомянутый класс.
А вот при клике по кнопке (отслеживается по дата-атрибуту «data-btn»):
jQuery('[data-btn="toTop"]').on('click', function(e)
{
e.preventDefault();
jQuery('html, body').animate({scrollTop: 0}, 300);
});
мы плавно прокручиваем экран вверх:
jQuery('html, body').animate({scrollTop: 0}, 300);
На этом все. Код урока можно найти на этой странице.
