Автор

11 05.2017
Адаптивные таблицы цен на jQuery

Адаптивные таблицы цен на jQuery


Простые гибкие таблицы цен, в 3 разных стилях и с оживленной анимацией при переключении на разные планы.

 

ДЕМО
ИСХОДНИКИ

 

Готовая таблица цен является одним из тех ресурсов, которые имеются в нашем наборе инструментов. Они не являются особо сложными с точки зрения дизайна и удобства пользователей, но они представляют собой ключевой раздел нашей веб-страницы: именно там потенциальный клиент принимает меры.

Мы собрали легко настраиваемую таблицу ценообразования в 3 разных стилях. Кроме того, мы включили наш популярный фильтр контента Bouncy как переход при переключении с одного плана на другой.

На небольших устройствах мы использовали новый подход: вместо того, чтобы перечислять все функции по вертикали, - которые заставили бы пользователя прокручивать много, чтобы пройти за пределы ценового сегмента, мы перечислили их по горизонтали. Таким образом мы экономим много места; Пользователи могут сразу сравнить все цены, и они могут погрузиться глубже в функции, если они заинтересованы.

 

Создание структуры

HTML структурирован в 2 блока: div.cd-pricing-switcher, содержащий фильтр, и ul.cd-pricing-list, содержащий таблицы ценообразования. Внутри каждого элемента списка .cd-pricing-list мы вложили второй элемент ul (тот, который вращается), содержащий таблицы цен в качестве элементов списка.

Каждая таблица ценообразования составлена из заголовка .cd-pricing (содержащего название и цену плана), тела .cd-pricing (содержащего функции плана) и .cd-price-footer (содержащего кнопку действия).

<div class="cd-pricing-container">
<div class="cd-pricing-switcher">
<p class="fieldset">
<input type="radio" name="duration" value="monthly" id="monthly" checked>
<label for="monthly">Monthly</label>
<input type="radio" name="duration" value="yearly" id="yearly">
<label for="yearly">Yearly</label>
<span class="cd-switch"></span>
</p>
</div> <!-- .cd-pricing-switcher -->

<ul class="cd-pricing-list">
<li>
<ul class="cd-pricing-wrapper">
<li data-type="monthly" class="is-visible">
<header class="cd-pricing-header">
<h2>Basic</h2>
<div class="cd-price">
<span class="cd-currency">$</span>
<span class="cd-value">30</span>
<span class="cd-duration">mo</span>
</div>
</header> <!-- .cd-pricing-header -->

<div class="cd-pricing-body">
<ul class="cd-pricing-features">
<li><em>256MB</em> Memory</li>
<!-- other features here -->
</ul>
</div> <!-- .cd-pricing-body -->

<footer class="cd-pricing-footer">
<a class="cd-select" href="https://s-sd.ru">Select</a>
</footer> <!-- .cd-pricing-footer -->
</li>

<li data-type="yearly" class="is-hidden">
<!-- pricing table content here -->
</li>
</ul> <!-- .cd-pricing-wrapper -->
</li>

<li class="cd-popular">
<ul class="cd-pricing-wrapper">
<li data-type="monthly" class="is-visible">
<!-- pricing table content here -->
</li>

<li data-type="yearly" class="is-hidden">
<!-- pricing table content here -->
</li>
</ul>
</li> <!-- .cd-pricing-wrapper -->

<li>
<ul class="cd-pricing-wrapper">
<li data-type="monthly" class="is-visible">
<!-- pricing table content here -->
</li>

<li data-type="yearly" class="is-hidden">
<!-- pricing table content here -->
</li>
</ul> <!-- .cd-pricing-wrapper -->
</li>
</ul> <!-- .cd-pricing-list -->
</div> <!-- .cd-pricing-container -->

 

Добавление стиля

На небольших устройствах .cd-pricing-footer находится в позиции: абсолютная и помещается над заголовочным файлом .cd-price, чтобы покрыть его (мы присвоили одинаковый размер обоим элементам). Кнопка действия имеет display: block и height: 100%, так что он имеет такое же измерение нижнего колонтитула таблицы (события pointer-events: none назначенный заголовку .cd-pricing-header, обеспечивает возможность нажатия кнопки). В .cd-pricing-body есть overflow-x: auto, чтобы скрыть часть элемента ul.cd-pricing-features - ширина которого может быть выше.

.cd-pricing-header {
  height: 80px;
  pointer-events: none;
}
 
.cd-pricing-body {
  overflow-x: auto;
  /* smooth scrolling on touch devices */
  -webkit-overflow-scrolling: touch;
}
 
.cd-pricing-footer {
  position: absolute;
  top: 0;
  left: 0;
  height: 80px;
  width: 100%;
}
 
.cd-select {
  display: block;
  height: 100%;
  /* hide button text on mobile */
  overflow: hidden;
  text-indent: 100%;
  white-space: nowrap;
  color: transparent;
}

На настольных устройствах (ширина окна просмотра более 1170 пикселей) css довольно прост (вы можете найти дополнительные комментарии в scss / css файле для сложных деталей).

Одно важное замечание: мы создали 3 класса для настройки таблиц цен (все классы должны быть применены к элементу .cd-pricing-container):

  1. Cd-full-width - установить ширину: 100% к контейнеру .cd-pricing, с max-width: none (по умолчанию мы устанавливаем ширину: 90% и max-width: 1170px);
  2. Cd-tables-have-margin - добавить правое поле для таблиц цен;
  3. Cd-secondary-theme - сочетание различных цветовых тем;

В нашей демонстрации мы создали 3 разных стиля таблиц: первый - по умолчанию, второй - добавление к контейнеру .cd-pricing как классов .cd-full-width, так и .cd-second-theme, а последнее добавление Класс .cd-tables-have-margin.

Одно важное замечание: стили, связанные с этими 3-мя классами, отличаются только на настольных устройствах.

Дополнительное примечание о анимации: как указано в комментариях, если у вас есть только 2 варианта переключения (в нашем демо «Ежемесячно» и «Ежегодно»), более естественным является инвертировать направление вращения при переключении с одного варианта на другой. По этой причине мы создали класс .cd-bounce-invert, который будет добавлен в список расценок ul.cd. Если у вас есть более двух вариантов, просто удалите этот класс, и вращение сохранит направление.

 

Обработка событий

Мы использовали jQuery для удаления тонкого градиента с правой стороны тела таблицы калькуляции (только для мобильной версии), который мы добавили, чтобы указать, что в конце прокрутки есть больше контента.

 

Вот и всё!


vk.com/club.ssdru

Подписывайтесь на нашу группу в контакте vk.com/club.ssdru


Статьи по темеjQuery

30 10.2017
Адаптивные таблицы цен на jQuery

Все современные браузеры, кроме IE9- поддерживают CSS transitions и CSS animations, которые позволяют реализовать анимацию средствами CSS, без привлечения JavaScript.


20 03.2013
Адаптивные таблицы цен на jQuery

В этой статье покажу способ создания всплывающего окна на любом сайте. Использовать будем jQuery плагин fancybox. А чтобы добавить смысловой нагрузки статье, вставим в модальное окошко форму отправки письма. Сразу хочу заметить модальные окна на этом плагине работают на всех браузерах. Приступим!


21 04.2013
Адаптивные таблицы цен на jQuery

Если вы используете какие то графические редакторы на сайте, или просто хотите скрасить некий материал с помощью выбора цвета, или дать возможность оформить на свой вкус комментарии пользователю тогда этот урок именно для Вас. В сегодняшнем уроке речь пойдет о скрипте Flexi Color Picker, который использует только JavaScript для создания интерфейса выбора цвета. Без flash, изображений, однопиксельных div. Для его работы не нужно никаких библиотек.


26 12.2015
Адаптивные таблицы цен на jQuery

Иногда при разработке возникает необходимость вставить ссылку на скайпнейм пользователя, чтобы при нажатии мы перешли к диалогу с владельцем этого скайпнейма. Визуально это может выглядеть так: Skype: studio25kadr

Решить данный вопрос можно таким способом, при нажатии на ссылку мы перейдем к диалогу с пользователем....


105 Публикаций

Раскрутка в соцсетях

В данном блоге описано где и как сделать накрутку групп, сообществ и личных страничек в популярных социальных сетях и тест платных сайтов занимающихся накруткой.


Перейти в Блог

О КОМПАНИИ

Studio Design существует с 2001 года. Основной нашей деятельностью до 2007 года было видеопроизводство ( видеореклама и документальные фильмы, о чем подробно описано в нашем блоге ). С 2007 года, вот уже как лет, наша основная специфика - это создание сайтов для бизнеса или частной деятельности, веб дизайн, а также поддержка и администрирование готовых проектов. Каждая выполненная нами работа - это уникальный, а самое главное, адаптивный под все современные мобильные устройства дизайн сайта. Мы готовы создать сайт с нуля для каждого клиента с любого уголка России! Мы поможем Вам в создании, как одностраничных сайтов – визиток, так и крупных интернет магазинов или корпоративных сайтов. А все наши работы, большинство из которых действуют и по сей день!

Close

Целовальников Сергей


Веб-дизайн, HTML5, CSS3, jQuery, JavaScript, Верстка.

Верстальщик с большим опытом работы. Занимаюсь созданием сайтов с 2005 года. Постоянно обучаюсь и совершенствую свои навыки. Веду свои проекты, в том числе и данный блог.

Close