Дек
Как сделать кнопку наверх на сайте
В целях улучшения юзабилити на многих проектах сделана кнопка наверх для сайта, которая появляется при прокрутке страницы вниз. В данном посте разберём скрипт создания такой кнопки.
Предварительно создадим страницу с "рыбным" текстом, что бы было что прокручивать и подключим наш любимый фреймвёрк jquery. Теперь создадим
нашу кнопку. Для примера возьму демо-страницу из своей заметки Html навигация по странице.
Кнопка вверх для сайта задаётся дивом с классом .gototop
.
<div> class="gototop">⇧</div>
.gototop{ width: 50px; height: 50px; background-color: #00b3ee; position: fixed;/*фиксир. позиц*/ bottom: 30px; left: 5%; font-size: 50px; text-align: center; line-height: 50px; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); opacity: 0.5;/*полупрозрачная*/ display: none;/*скрываем, а показываем Jquery*/ -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; -o-border-radius: 10px; border-radius: 10px; -moz-box-shadow: 1px 6px 5px rgba(000,000,000,0.5); -webkit-box-shadow: 1px 6px 5px rgba(000,000,000,0.5); box-shadow: 1px 4px 5px rgba(000,000,000,0.5); cursor: pointer; } .gototop:hover{ filter:progid:DXImageTransform.Microsoft.Alpha(opacity=100); opacity: 1;/*при наведении не прозрачная*/ }
С html и css кодом всё я думаю понятно. Решил наваять не просто кнопку, а сделать так, что бы была и стрелка вверх для сайта.
Стрелку на кнопке мы отобразили с помощью символа юникода. Саму кнопку мы спозиционировали фиксировано
и с помощью css display: none
скрыли её. За появление кнопки будет отвечать скрипт jquery, который мы опишем позже. Конечно кнопку мы могли
скрыть и с помощью javascript, но если js будет отключён на компьютере пользователя, то кнопка будет видна постоянно и не будет работать. Так что
лучше использовать css для скрытия. Теперь давайте посмотрим наш javascript код.
$(document).ready(function(){ $(window).scroll(function () { /*если прокрутка больше 300 показ. кнопку*/ if ($(this).scrollTop() > 300) { $('.gototop, .alert').fadeIn(); /*если нет то скрываем кнопку*/ } else { $('.gototop, .alert').fadeOut(); } }); /*при клике по кнопке переходим вверх стр.*/ $('.gototop').click(function () { $('body,html').animate({ scrollTop: 0 }, 700); return false; }); });
Вот таким вот нехитрым способом мы решили ещё один вопрос юзабилити.