Odometer – библиотека, написанная на JavaScript, создающая красивую анимацию смены чисел/букв с плавными переходами и интересными темами оформления. К тому же для использования данной библиотеки на сайтах wordpress есть плагин.
Скачать исходники для статьи можно ниже
Демонстрацию примеров работы библиотеки можно посмотреть здесь:
“github.hubspot.com/odometer/docs/welcome/”
Страница библиотеки Odometer на Github:
“github.com/HubSpot/odometer”
и
“github.hubspot.com/odometer/”
Темы оформления переходов библиотеки:
“github.hubspot.com/odometer/api/themes/”
Давайте рассмотрим ниже 2 варианта включения данной библиотеки на сайте wordpress (с помощью кода и плагина):
1-ый вариант с помощью кода:
Вам нужно только включить файл js в тему вашего сайта с помощью следующего кода:
<link rel="stylesheet" href="odometer-theme-car.css" /> <script type="text/javascript" src="odometer.js"></script>
В этом примере я использую тему одометра, похожую на автомобильный счетчик.
Теперь любой элемент, которому вы зададите класс odometer, будет преобразован в одометр.
Для обновления значений счетчика можно использовать либо собственный javascript, либо код jQuery. Сначала вызовите setTimeout функцию, а затем определите обновленное значение, как в следующем фрагменте кода:
<script> setTimeout(function(){ odometer.innerHTML = 5555; }, 1000); </script>
Если вы используете jQuery, то код будет следующим:
setTimeout(function(){ $('.odometer').html(5555); }, 1000);
Значение 1000 в коде означает, что процесс обновления будет выполнен через одну секунду после полной загрузки страницы.
Затем добавьте odometerкласс к любому элементу, который вы хотите, например:
<p class="odometer">3252</p>
И значение 3252 постепенно будет изменено на 5555.
Дополнительные функции:
Одометер предоставляет вам некоторые параметры для настройки. Это полезно, когда настройка по умолчанию не подходит вам. Чтобы иметь возможность задавать параметры, создайте такой код:
<script> window.odometerOptions = { format: '(ddd).dd' }; </script>
Данный код задает формат отображения, в данном примере будут показаны 2 знака после запятой.
Другие параметры можете задать с помощью следующего кода:
window.odometerOptions = { auto: false, // Don't automatically initialize everything with class 'odometer' selector: '.my-numbers', // Change the selector used to automatically find things to be animated format: '(,ddd).dd', // Change how digit groups are formatted, and how many digits are shown after the decimal point duration: 3000, // Change how long the javascript expects the CSS animation to take theme: 'car', // Specify the theme (if you have more than one theme css file on the page) animation: 'count' // Count is a simpler animation method which just increments the value, // use it when you're looking for something more subtle. };
2-рой вариант использовать wordpress плагин:
Страница плагина на Github:
“github.com/Sobieray/Odometer-Plugin”
Или можно скачать с моего сайта:
“mnogoblog.ru/wp-content/uploads/2019/09/Odometer-Plugin-master-1.zip”
Установка плагина стандартная – скачиваем zip архив и через админку wordpress устанавливаем на свой сайт, в пункте “Плагины”, “Добавить новый” и жмем кнопку “Загрузить плагин”, выбираем закачанный zip файл и устанавливаем плагин, после активируем его.
Теперь нужно вставить шорткод в нужной записи/страничке сайта:
[odometer start_number="0" finish_number="432" text="Title"][/odometer]
Плагин может не работать, поэтому настроим его.
Для этого заходим в админке, в пункт “Плагины”, подпункт “Редактор”, справа в списке плагинов выбираем Odometer:
И заходим в файл custom.css и в самый его низ впишем следующий код:
.odometer { font-size: 40px; }
После этого плагин должен заработать!
Чтобы изменить тему оформления счетчика нужно заменить код файла odometer-theme-default.css на нужный, который можно найти здесь:
“github.hubspot.com/odometer/api/themes/”
Например, для автомобильного счетчика код следующий:
@import url("//fonts.googleapis.com/css?family=Arimo"); .odometer.odometer-auto-theme, .odometer.odometer-theme-car { display: inline-block; vertical-align: middle; *vertical-align: auto; *zoom: 1; *display: inline; position: relative; } .odometer.odometer-auto-theme .odometer-digit, .odometer.odometer-theme-car .odometer-digit { display: inline-block; vertical-align: middle; *vertical-align: auto; *zoom: 1; *display: inline; position: relative; } .odometer.odometer-auto-theme .odometer-digit .odometer-digit-spacer, .odometer.odometer-theme-car .odometer-digit .odometer-digit-spacer { display: inline-block; vertical-align: middle; *vertical-align: auto; *zoom: 1; *display: inline; visibility: hidden; } .odometer.odometer-auto-theme .odometer-digit .odometer-digit-inner, .odometer.odometer-theme-car .odometer-digit .odometer-digit-inner { text-align: left; display: block; position: absolute; top: 0; left: 0; right: 0; bottom: 0; overflow: hidden; } .odometer.odometer-auto-theme .odometer-digit .odometer-ribbon, .odometer.odometer-theme-car .odometer-digit .odometer-ribbon { display: block; } .odometer.odometer-auto-theme .odometer-digit .odometer-ribbon-inner, .odometer.odometer-theme-car .odometer-digit .odometer-ribbon-inner { display: block; -webkit-backface-visibility: hidden; } .odometer.odometer-auto-theme .odometer-digit .odometer-value, .odometer.odometer-theme-car .odometer-digit .odometer-value { display: block; -webkit-transform: translateZ(0); } .odometer.odometer-auto-theme .odometer-digit .odometer-value.odometer-last-value, .odometer.odometer-theme-car .odometer-digit .odometer-value.odometer-last-value { position: absolute; } .odometer.odometer-auto-theme.odometer-animating-up .odometer-ribbon-inner, .odometer.odometer-theme-car.odometer-animating-up .odometer-ribbon-inner { -webkit-transition: -webkit-transform 2s; -moz-transition: -moz-transform 2s; -ms-transition: -ms-transform 2s; -o-transition: -o-transform 2s; transition: transform 2s; } .odometer.odometer-auto-theme.odometer-animating-up.odometer-animating .odometer-ribbon-inner, .odometer.odometer-theme-car.odometer-animating-up.odometer-animating .odometer-ribbon-inner { -webkit-transform: translateY(-100%); -moz-transform: translateY(-100%); -ms-transform: translateY(-100%); -o-transform: translateY(-100%); transform: translateY(-100%); } .odometer.odometer-auto-theme.odometer-animating-down .odometer-ribbon-inner, .odometer.odometer-theme-car.odometer-animating-down .odometer-ribbon-inner { -webkit-transform: translateY(-100%); -moz-transform: translateY(-100%); -ms-transform: translateY(-100%); -o-transform: translateY(-100%); transform: translateY(-100%); } .odometer.odometer-auto-theme.odometer-animating-down.odometer-animating .odometer-ribbon-inner, .odometer.odometer-theme-car.odometer-animating-down.odometer-animating .odometer-ribbon-inner { -webkit-transition: -webkit-transform 2s; -moz-transition: -moz-transform 2s; -ms-transition: -ms-transform 2s; -o-transition: -o-transform 2s; transition: transform 2s; -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0); transform: translateY(0); } .odometer.odometer-auto-theme, .odometer.odometer-theme-car { -moz-border-radius: 0.34em; -webkit-border-radius: 0.34em; border-radius: 0.34em; font-family: "Arimo", monospace; padding: 0.15em; background: #000; color: #eee0d3; } .odometer.odometer-auto-theme .odometer-digit, .odometer.odometer-theme-car .odometer-digit { -moz-box-shadow: inset 0 0 0.3em rgba(0, 0, 0, 0.8); -webkit-box-shadow: inset 0 0 0.3em rgba(0, 0, 0, 0.8); box-shadow: inset 0 0 0.3em rgba(0, 0, 0, 0.8); background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzMzMzMzMyIvPjxzdG9wIG9mZnNldD0iNDAlIiBzdG9wLWNvbG9yPSIjMzMzMzMzIi8+PHN0b3Agb2Zmc2V0PSI2MCUiIHN0b3AtY29sb3I9IiMxMDEwMTAiLz48c3RvcCBvZmZzZXQ9IjgwJSIgc3RvcC1jb2xvcj0iIzMzMzMzMyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzMzMzMzMyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #333333), color-stop(40%, #333333), color-stop(60%, #101010), color-stop(80%, #333333), color-stop(100%, #333333)); background-image: -moz-linear-gradient(top, #333333 0%, #333333 40%, #101010 60%, #333333 80%, #333333 100%); background-image: -webkit-linear-gradient(top, #333333 0%, #333333 40%, #101010 60%, #333333 80%, #333333 100%); background-image: linear-gradient(to bottom, #333333 0%, #333333 40%, #101010 60%, #333333 80%, #333333 100%); padding: 0 0.15em; } .odometer.odometer-auto-theme .odometer-digit:first-child, .odometer.odometer-theme-car .odometer-digit:first-child { -moz-border-radius: 0.2em 0 0 0.2em; -webkit-border-radius: 0.2em; border-radius: 0.2em 0 0 0.2em; } .odometer.odometer-auto-theme .odometer-digit:last-child, .odometer.odometer-theme-car .odometer-digit:last-child { -moz-border-radius: 0 0.2em 0.2em 0; -webkit-border-radius: 0; border-radius: 0 0.2em 0.2em 0; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2VlZTBkMyIvPjxzdG9wIG9mZnNldD0iNDAlIiBzdG9wLWNvbG9yPSIjZWVlMGQzIi8+PHN0b3Agb2Zmc2V0PSI2MCUiIHN0b3AtY29sb3I9IiNiYmFhOWEiLz48c3RvcCBvZmZzZXQ9IjgwJSIgc3RvcC1jb2xvcj0iI2VlZTBkMyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2VlZTBkMyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #eee0d3), color-stop(40%, #eee0d3), color-stop(60%, #bbaa9a), color-stop(80%, #eee0d3), color-stop(100%, #eee0d3)); background-image: -moz-linear-gradient(top, #eee0d3 0%, #eee0d3 40%, #bbaa9a 60%, #eee0d3 80%, #eee0d3 100%); background-image: -webkit-linear-gradient(top, #eee0d3 0%, #eee0d3 40%, #bbaa9a 60%, #eee0d3 80%, #eee0d3 100%); background-image: linear-gradient(to bottom, #eee0d3 0%, #eee0d3 40%, #bbaa9a 60%, #eee0d3 80%, #eee0d3 100%); background-color: #eee0d3; color: #000; } .odometer.odometer-auto-theme .odometer-digit .odometer-digit-inner, .odometer.odometer-theme-car .odometer-digit .odometer-digit-inner { left: 0.15em; } .odometer.odometer-auto-theme.odometer-animating-up .odometer-ribbon-inner, .odometer.odometer-auto-theme.odometer-animating-down.odometer-animating .odometer-ribbon-inner, .odometer.odometer-theme-car.odometer-animating-up .odometer-ribbon-inner, .odometer.odometer-theme-car.odometer-animating-down.odometer-animating .odometer-ribbon-inner { -webkit-transition-timing-function: linear; -moz-transition-timing-function: linear; -ms-transition-timing-function: linear; -o-transition-timing-function: linear; transition-timing-function: linear; }
На этом всё. Красивых Вам сайтов!