Статьи

Создайте интерфейс с вкладками, используя jQuery

Создание интерфейсов с вкладками неожиданно становится несложным делом при использовании функции вкладок в библиотеке пользовательского интерфейса jQuery. Его можно использовать для создания совершенно уникальных интерфейсов без необходимости быть богом кодирования — используя только одну строку кода!





Чтобы создать эффекты jQuery позже в этом уроке, вам сначала потребуется
последняя библиотека jQuery и
Пользовательский интерфейс jQuery с элементами «Core» и «Tabs». Если вы предпочитаете, вы можете
возьмите эти файлы из исходных файлов этого учебника.

Поместите эти два файла в каталог на вашем сервере. Также создайте следующие файлы:

  • index.html
  • style.css
  • sprinkle.js

index.html будет для вашего HTML, style.css для стиля страницы
в CSS и sprinkle.js для нашей анимации jQuery.

Внутри index.html , давайте откроем документ:

01
02
03
04
05
06
07
08
09
10
11
12
13
<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Transitional//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»>
<html xmlns=»http://www.w3.org/1999/xhtml»>
<head>
<meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″ />
<title>jQuery UI Tabs Demo</title>
<link href=»style.css» rel=»stylesheet» type=»text/css» />
<script type=»text/javascript» src=»jquery-1.2.6.min.js»></script>
<script type=»text/javascript» src=»jquery-ui-personalized-1.5.2.packed.js»></script>
<script type=»text/javascript» src=»sprinkle.js»></script>
</head>
<body>
</body>
</html>

Здесь мы устанавливаем наш DOCType в XHTML 1 Transitional и импортируем наши файлы CSS и JS.
Обязательно измените «jquery-1.2.6.min.js» и «jquery-ui-personalized-1.5.2.packed.js».
если ваши файлы jQuery имеют другое имя файла.


Это одно из наиболее распространенных вариантов использования интерфейса с вкладками:

Между тегами <body> в нашем индексном файле введите следующее:

01
02
03
04
05
06
07
08
09
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
<div id=»tabvanilla» class=»widget»>
 
<ul class=»tabnav»>
<li><a href=»#popular»>Popular</a></li>
<li><a href=»#recent»>Recent</a></li>
<li><a href=»#featured»>Featured</a></li>
</ul>
 
<div id=»popular» class=»tabdiv»>
<ul>
<li><a href=»#»>Welsh Zombie Sheep Invasion</a></li>
<li><a href=»#»>Sheep Rising From The Dead</a></li>
<li><a href=»#»>Blogosphere Daily Released!</a></li>
<li><a href=»#»>Aliens Infiltrate Army Base In UK Town</a></li>
<li><a href=»#»>U2 Rocks New York’s Central Park</a></li>
<li><a href=»#»>TA Soldiers Wear Uniforms To Work</a></li>
<li><a href=»#»>13 People Rescued From Flat Fire</a></li>
<li><a href=»#»>US Troops Abandon Afghan Outpost</a></li>
<li><a href=»#»>Are We Alone?
<li><a href=»#»>Apple iPhone 3G Released</a></li>
</ul>
</div><!—/popular—>
 
<div id=»recent» class=»tabdiv»>
<p>Lorem ipsum dolor sit amet.</p>
</div><!—/recent—>
 
<div id=»featured» class=»tabdiv»>
<ul>
<li><a href=»#»>Aliens Infiltrate Army Base In UK Town</a></li>
<li><a href=»#»>Are We Alone?
<li><a href=»#»>U2 Rocks New York’s Central Park</a></li>
<li><a href=»#»>TA Soldiers Wear Uniforms To Work</a></li>
<li><a href=»#»>13 People Rescued From Flat Fire</a></li>
<li><a href=»#»>US Troops Abandon Afghan Outpost</a></li>
<li><a href=»#»>Sheep Rising From The Dead</a></li>
<li><a href=»#»>Blogosphere Daily Released!</a></li>
<li><a href=»#»>Apple iPhone 3G Released</a></li>
<li><a href=»#»>Welsh Zombie Sheep Invasion</a></li>
</ul>
</div><!—featured—>
 
</div><!—/widget—>

Мы начнем с открытия элемента DIV с идентификатором «tabvanilla» и классом «widget».
Идентификатор будет использоваться jQuery для определения области, на которую он должен воздействовать, и
класс предназначен для простоты использования при моделировании.

Далее идет неупорядоченный список с классом ‘tabnav’. Список содержит три
разные названия вкладок, каждая со ссылкой в ​​стиле «#xxxxx». Это важно
поскольку это будут идентификаторы следующих разделов.

Следующий div имеет идентификатор «популярные», это соответствует ссылке во вкладках
над. «Недавние» и «популярные» DIV также включены. Эти разделы, что будет
будет показан / скрыт jQuery, когда соответствующая ссылка выбрана.

В зависимости от того, какой контент у вас есть, у вас должно быть что-то вроде этого:

Давайте сделаем это немного лучше, не так ли?

Добавьте следующее в ваш файл style.css . Это будет объяснено ниже.

01
02
03
04
05
06
07
08
09
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
* {
margin: 0;
padding: 0;
}
 
body {
font-size: 75%;
color: #222;
background: #ffffff;
font-family: «Helvetica Neue», Helvetica, Arial, sans-serif;
line-height: 1.6em;
}
 
.widget {
width: 310px;
margin: 20px;
padding: 10px;
background: #f3f1eb;
border: 1px solid #dedbd1;
margin-bottom: 15px;
}
 
.widget a {
color: #222;
text-decoration: none;
}
 
.widget a:hover {
color: #009;
text-decoration: underline;
}
 
.tabnav li {
display: inline;
list-style: none;
padding-right: 5px;
}
 
.tabnav li a {
text-decoration: none;
text-transform: uppercase;
color: #222;
font-weight: bold;
padding: 4px 6px;
outline: none;
}
 
.tabnav li a:hover, .tabnav li a:active, .tabnav li.ui-tabs-selected a {
background: #dedbd1;
color: #222;
text-decoration: none;
}
 
.tabdiv {
margin-top: 2px;
background: #fff;
border: 1px solid #dedbd1;
padding: 5px;
}
 
.tabdiv li {
list-style-image: url(«star.png»);
margin-left: 20px;
}
 
.ui-tabs-hide {
display: none;
}
  • * — Удаляет настройки браузера по умолчанию для полей и отступов.
  • Тело — добавляет некоторые основные стили текста.
  • .widget — — Немного цвета для различения
    Tab Areaa.
  • .widget a — Стиль ссылок.
  • .tabnav li — отображает список в «встроенном» (горизонтальном)
    манера. Дает немного отступов между ними.
  • .tabnav li a — это помогает выделить вкладки из любого
    другой контент.
  • .tabdiv — Придает разделу контента немного больше стиля.
    отделить его от вкладок.
  • .tabdiv li — добавляет пользовательское изображение для списков внутри
    область контента. Файл star.png можно загрузить из этого руководства
    исходные файлы.
  • .ui-tabs-hide — jQuery будет применять класс ‘ui-tabs-hide’

    div не используется Это устанавливает его так, что они не будут отображаться, когда JQuery говорит об этом
    к.

Теперь у вас должно быть что-то вроде следующего:

Он не получит никаких наград за дизайн, но нам интересна функциональность
в; так что давайте погрузимся в JQuery.

По сути, jQuery позволяет пользователю изменять стили элементов на странице
в реальном времени. Поэтому в нашем случае мы хотим, чтобы jQuery скрывал все элементы внутри div # tabvanilla.
кроме той, которая соответствует выбранной вкладке.

Откройте sprinkle.js и вставьте следующее:

1
2
3
$(document).ready(function() {
    $(‘#tabvanilla > ul’).tabs({ fx: { height: ‘toggle’, opacity: ‘toggle’ } });
});

ЭТО ОНО! Но что это значит?

1
$(document).ready(function() {

В этой строке написано «Когда документ готов, сделайте следующее …» — «готово»
означает, когда загружены самые основы страницы (т.е. просто необработанный HTML); это будет
не ждите изображений и видео, как если бы вы использовали вместо ‘onload’ .

1
$(‘#tabvanilla > ul’).tabs({ fx: { height: ‘toggle’, opacity: ‘toggle’ } });

Это говорит браузеру, чтобы выглянуть из списка ul внутри элемента
с идентификатором tabvanilla , и использовать вкладки
функция для взаимодействия с. Мы также определяем два анимационных эффекта ( fx:)
Переключение высоты и непрозрачности. Это заставит область «исчезать и скользить»
при переключении вкладок.

Попробуйте. Теперь у вас должно быть что-то похожее на изображение ниже; с
плавная анимация при переключении вкладок.


Именно здесь вы можете увидеть большие эффекты, сделанные с использованием того же кода. Следующий,
мы создадим простой ‘Video Selector’, который можно было увидеть во многих WordPress
шаблоны недавно.

Исходя из предыдущего интерфейса, добавьте следующее в ваш index.html
файл.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
<div id=»featuredvid» class=»widget»>
 
<div class=»fvid» id=»vid-1″>
<object width=»270″ height=»152″> <param name=»allowfullscreen» value=»true» /> <param name=»allowscriptaccess» value=»always» /> <param name=»movie» value=»http://www.vimeo.com/moogaloop.swf?clip_id=1211060&server=www.vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=00ADEF&fullscreen=1″ /> <embed src=»http://www.vimeo.com/moogaloop.swf?clip_id=1211060&server=www.vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=00ADEF&fullscreen=1″ type=»application/x-shockwave-flash» allowfullscreen=»true» allowscriptaccess=»always» width=»270″ height=»152″></embed></object>
</div>
 
<div class=»fvid» id=»vid-2″>
<object width=»270″ height=»219″><param name=»movie» value=»http://www.youtube.com/v/gPwmG3VuO_E&hl=en&fs=1″></param><param name=»allowFullScreen» value=»true»></param><embed src=»http://www.youtube.com/v/gPwmG3VuO_E&hl=en&fs=1″ type=»application/x-shockwave-flash» allowfullscreen=»true» width=»270″ height=»219″></embed></object>
</div>
 
<div class=»fvid» id=»vid-3″>
<object width=»270″ height=»219″><param name=»movie» value=»http://www.youtube.com/v/p86BPM1GV8M&hl=en&fs=1″></param><param name=»allowFullScreen» value=»true»></param><embed src=»http://www.youtube.com/v/p86BPM1GV8M&hl=en&fs=1″ type=»application/x-shockwave-flash» allowfullscreen=»true» width=»270″ height=»219″></embed></object>
</div>
 
<ul class=»vidselector»>
    <li><a href=»#vid-1″><span>Where The Hell Is Matt?
    <li><a href=»#vid-2″><span>Clint Eastwood’s The Office
    <li><a href=»#vid-3″><span>Pale Blue Dot
</ul>
 
</div><!—/featuredvid—>

Мы начинаем с создания другого div .widget, но на этот раз с идентификатором featuredvid
(важно, чтобы у него был другой идентификатор, так как это то, что jQuery использует для различения
вкладка разделов друг от друга).

Далее у нас есть три элемента .fvid с их собственными уникальными идентификаторами. Внутри каждого есть
Вставить код для видео.

Наконец, внизу находится наш список «.vidselector», который будет действовать как наша вкладка. В качестве
в предыдущем примере ссылка каждого элемента списка соответствует одному из
Идентификаторы.

У вас должно быть что-то похожее на это:

В файле style.css , следуя CSS из нашего предыдущего примера,
вставить следующее:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
#featuredvid {
text-align: center;
}
 
.fvid {
margin-bottom: 5px;
}
 
.vidselector li {
text-align: left;
list-style: none;
padding: 5px;
background: #ffffff;
border: 1px solid #dedbd1;
text-transform: uppercase;
margin-bottom: 5px;
}
  • .vidselector li — создает эффект в штучной упаковке для видео
    ссылка, чтобы войти.

Внутри sprinkle.js добавьте следующее перед строкой, содержащей });
из предыдущего примера.

1
$(‘#featuredvid > ul’).tabs();

Это говорит вашему браузеру использовать функцию вкладок для взаимодействия со списком ul внутри
элемент #featuredvid. На этот раз мы не определяем анимационные эффекты, так как
из-за характера содержимого в этих полях (видео) эффекты обычно не работают
очень хорошо.

Одна из проблем, возникающих с этим эффектом, заключается в том, что Internet Explorer не делает паузу
видео на вкладке при переключении на другую, что приводит к продолжению воспроизведения звука
фон. Этого не происходит в Firefox, Opera или Safari.


Надеюсь, этот урок показал вам, что с помощью jQuery можно сделать гораздо больше
функции, чем вы изначально думали. Проверьте
из официальной документации для jQuery UI / Tabs .

Оба эти эффекта были включены в CocoaNews
первый в семействе тем WordPress от vivaWP
наступает середина августа.