Урок по созданию кнопки "Вверх" с плавной прокруткой страницы на jQuery + исходные коды и пример
На мой взгляд кнопка "Вверх" просто незаменима и я мне трудно представить более-менее хороший сайт без нее. Очень удобно пробежавшись до низа статьи всего в один клик взлететь до самого верха страницы. Скрипт, который я хочу вам показать отличается минималистичным дизайном, который подойдет любому сайту. Кнопка "вверх" имеет плавную прокрутку, которая реализована при помощи jQuery. И, конечно, кнопка будет показывать только если пользователь проскролил страничку вниз.
Итого, мы создали абзац с идентификатором и тег span, в котором будет храниться наша кнопка.
CSS
Займемся кодом CSS-файла.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#back-top{/* нижний отступ */bottom:28px;/* кнопка будет скролиться вместе со страницей */position:fixed;/* отступ от правго края экрана */margin-left:-149px;}#back-topa{/* внешний вид кнопки */-webkit-transition:1s;display:block; -moz-transition: 1s;
width:107px;text-align:center;text-decoration:none;font:12px/100%Arial;color:#bbb;transition:1s;}#back-topa:hover{/* при наведении на кнопку */color:#000;}#back-topspan{/* стрелочка */-webkit-transition:1s;width:107px; -moz-transition: 1s;
height:107px;display:block;margin-bottom:8px;/* путь до иконки, которую вы хотите разместить */background:#dddurl(img.jpg)no-repeatcentercenter;transition:1s;/* закругления для углов */-moz-border-radius:14px;-webkit-border-radius:14px;border-radius:14px;}#back-topa:hoverspan{background-color:#778;}
Основа готова (должно получиться как здесь), но сейчас прокрутка работает быстро, нет плавного эффекта. Его мы добавим при помощи jQuery.
Код для кнопки "Вверх"
jQuery
Данный скрипт скрывает кнопочку, а затем при скролле проверяет прокручена ли страница на 100px или нет. Если страница прокручена, то кнопка "Вверх" появляется, иначе скрывается. По клику на кнопку скрипт красивенько так прокручивает страничку в начало.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<scripttype="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script><script>$(document).ready(function(){// сначала скроем кнопку$("#back-top").hide();// событие скролла$(function(){$(window).scroll(function(){// покажем кнопку если высота до верха экрана больше 100pxif($(this).scrollTop()>100){$('#back-top').fadeIn();}else{$('#back-top').fadeOut();}});// по клику страница перематывается на начало$('#back-top a').click(function(){$('body,html').animate({scrollTop:0},799);returnfalse;});});});</script>
Комментарии