На последнем проекте http://goldnews.ru потребовалось сделать так, чтобы покупатель, просматривая список товаров (может быть 100 строк по 1 товару), имел возможность быстро вернутся к началу страницы - чтобы, например, выбрать другую категорию. Решили сделать не мгновенный переход (просто <a href="#top">), а плавную анимацию. Как это работает, можно увидеть в моём блоге - стрелка слева внизу. Будем использовать замечательный jQuery.
Сначала откроем файл со стилями нашего шаблона /templates/НАШ_ШАБЛОН/css/template.css
и добавим в самый конец стили:
#back-top { position: fixed; bottom: 30px; margin-left: 12px; } #back-top a { width: 108px; display: block; text-align: center; font: 11px/100% Arial, Helvetica, sans-serif; text-transform: uppercase; text-decoration: none; color: #bbb; -webkit-transition: 1s; -moz-transition: 1s; transition: 1s; } #back-top a:hover { color: #000; } #back-top span { width: 108px; height: 108px; display: block; margin-bottom: 7px; background: #ddd url(up-arrow.png) no-repeat center center; -webkit-border-radius: 15px; -moz-border-radius: 15px; border-radius: 15px; -webkit-transition: 1s; -moz-transition: 1s; transition: 1s; } #back-top a:hover span { background-color: #777; }
Закрываем файл и сохраняем. В эту же папку кладем картинку стрелки (возьмите по ссылке).
Далее открываем index.php нашего шаблона и вначале, до <jdoc:include type="head" /> прописываем скрипты:
<!--Подключаем jQuery--> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script> <script type="text/javascript"> // Устраняем конфликт между библиотеками jQuery и MooTools var j = jQuery.noConflict(); j(document).ready(function(){ // Сначала скрываем стрелку j("#back-top").hide(); // Анимируем саму стрелку j(function () { j(window).scroll(function () { if (j(this).scrollTop() > 100) { j('#back-top').fadeIn(); } else { j('#back-top').fadeOut(); } }); // Плавно скролим тело сайта по клику на нашу стрелку j('#back-top a').click(function () { j('body,html').animate({ scrollTop: 0 }, 800); return false; }); }); }); </script>
Далее, если у нашего тэга body нет никакого id - прописываем <body id="top">, если же у нас у body уже есть какой- то id - не будем его трогать. Пропишем после body - <span id="top"></span>
и дальше рисуем саму кнопку:
<p id="back-top"> <a href="#top"><span></span>Вверх</a> </p>
Преобразуем файл в кодировку UTF-8 без ВОМ и сохраняем.
Проверяем работоспособность...
(C) По материалам http://webdesignerwall.com