Дизайн радио-проигрывателя для сайта на CSS3
- Stats: 1463 0
- Author: RUDEBOX
- Category: Css
- Comments: Комментариев нет
На протяжении всего времени, что мы занимаемся веб дизайном, мы сталкивались с различными взглядами на дизайн, проектами и требованиям к дизайну. Недавно нас просили показать и сделать набросок макета дизайна радио-проигрывателя для сайта, сегодня мы бы хотели поделиться с вами таким необычным макетом, при этом немного изменив его, чтобы не было сходства. В результате мы получили отличный дизайн радио-проигрывателя, в котором вы можете прослушивать любимые станции и добавлять их в избранное.
По умолчанию у нас будет блок, который разделен на две части, слева у нас будут все радиостанции, с возможностью добавления в избранное, а с права будет блок с Вашими любимыми станциями. Внизу мы добавили аудио проигрыватель с элементами управления.
Шаг 1. HTML
Для начала мы создадим общий контейнер, который будет определять параметры списка в середине, и организовывать правила для правильного отображения на странице.
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 |
<div class="panel panel-channel-list favorites"> <header> <div class="title">Избранное</div> </header> <div class="list"> <ul> <li> <div class="title"> <span class="name">247 A State Of Trance Armin Van Buuren</span><span class="country">(UK)</span></div> <div class="categories">Dance</div> <div class="bitrate">128 kbit</div> <div class="star fa fa-star"></div> </li> <li> <div class="title"> <span class="name">Sky Radio</span><span class="country">(ES)</span></div> <div class="categories">Top 40</div> <div class="bitrate">192 kbit</div> <div class="star fa fa-star"></div> </li> <li> <div class="title"> <span class="name">Energy Dance</span><span class="country">(CH)</span></div> <div class="categories">Trance, House</div> <div class="bitrate">64 kbit </div> <div class="star fa fa-star"></div> </li> </ul> </div> </div> |
Затем мы добавляем разметку, в которой будут содержаться блоки, с информацией и станциями, мы добавляем классы для добавления в закладки, а также удобный плеер внизу списка.
Шаг 2. CSS
Теперь нам необходимо добавить немного стилизации, так как большую часть основной работы у нас будет выполнять 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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
.panel.panel-channel-list.available { left: 4%; right: 52%; } .panel.panel-channel-list.favorites { left: 52%; right: 4%; } .panel.panel-controls { position: absolute; left: 4%; right: 4%; bottom: 2%; height: 5rem; padding: 0.5rem; .cover-overlay { display: none; @include absolute(100%, 100%); background-image: url(''); background-size: cover; background-position: center; opacity: 0.2; } .cover { float: left; width: 4rem; height: 4rem; margin-right: 0.5rem; background-image: url(''); background-size: cover; @include border-radius(4px); } .playButton { float: left; width: 3rem; height: 3rem; margin: 0.5rem; border: 2px solid lighten($c, 10%); @include border-radius(3rem); line-height: 3rem; text-align: center; vertical-align: center; i { margin-left: 2px; font-size: 1.4rem; color: lighten($c, 40%); } &.playing i:before { content: "\f04c"; } } .tracker { position: relative; margin-left: 9rem; .slider { margin-top: 0.2rem; .time, .totalTime { float: left; font-size: 0.8rem; i { margin-right: 5px; } .slide { float: left; width: 60%; height: 0.5rem; overflow: hidden; background-color: rgba(White, 0.3); @include border-radius(0.5rem); margin: 0.4rem 0.5rem; .pos { width: 21%; height: 0.5rem; background-color: White; @include border-radius(0.5rem); } } @include clearfix(); } .trackName { font-weight: 600; i { width: 1.2rem; } } .artistName { font-size: 0.9rem; } .favorite { position: absolute; top: 0rem; right: 0.5rem; i { font-size: 1.2rem; } &.starred i:before { content: "\f005" } } .volume { position: absolute; right: 0; bottom: 0; .icon { display: inline-block; padding-bottom: 0.2rem; width: 1rem; } .slide { display: inline-block; width: 4rem; height: 0.5rem; background-color: rgba(White, 0.3); @include border-radius(0.5rem); margin: 0.0rem 0.5rem; .pos { width: 80%; height: 0.5rem; background-color: White; @include border-radius(0.5rem); } |
Мы приводим к рассмотрению часть кода, более детально можно просмотреть в исходниках, давайте перейдем к следующему шагу.
Шаг 3. JS
Так как мы используем такие дополнения как добавление в избранное и регуляторы и перемотка музыки, то нам необходимо добавить соответствующие функции. Для этого у нас будет соответствующий фрагмент кода.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
$(".favorite").on "click", -> $(this).toggleClass("starred"); $(".playButton").on "click", -> $(this).toggleClass("playing"); $(".slider .slide").on "click", (e)-> $this = $(this) pos = (e.offsetX / $this.width()) * 100 console.log pos.toFixed(0) + "%" $this.find(".pos").width(pos + "%"); $(".volume .slide").on "click", (e)-> $this = $(this) pos = (e.offsetX / $this.width()) * 100 roundPos = Math.round(pos / 25) * 25 console.log pos.toFixed(0) + "%, " + roundPos + "%" $this.find(".pos").width(roundPos + "%") if roundPos > 50 $(".volume .icon i").removeClass().addClass "fa fa-volume-up" else if roundPos > 0 $(".volume .icon i").removeClass().addClass "fa fa-volume-down" else $(".volume .icon i").removeClass().addClass "fa fa-volume-off" $ -> $(".list").perfectScrollbar() |
Обратите внимание, что это не полностью готовый и рабочий макет, мы показываем как создать дизайн для такого проигрывателя, и стилизовать его элементы, добавлять функции для ваших нужд придется самостоятельно. Спасибо за понимание.
Отправить ответ