<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jQuery и другое... &#187; accordion</title>
	<atom:link href="http://www.linkexchanger.su/tag/accordion/feed" rel="self" type="application/rss+xml" />
	<link>http://www.linkexchanger.su</link>
	<description>css, html, php, javascript, jQuery, ajax ... - решения, примеры, рецепты</description>
	<lastBuildDate>Tue, 25 May 2010 08:13:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Как использовать виджет Accordion в качестве меню?</title>
		<link>http://www.linkexchanger.su/2009/104.html</link>
		<comments>http://www.linkexchanger.su/2009/104.html#comments</comments>
		<pubDate>Tue, 18 Aug 2009 07:27:35 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery UI]]></category>
		<category><![CDATA[accordion]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[аккордеон]]></category>
		<category><![CDATA[меню]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2009/104.html</guid>
		<description><![CDATA[Что такое Accordion наверное все знают, но если кто не знает, тому лучше сначала прочитать статью jQuery UI &#8211; виджет Accordion, в ней довольно подробно все рассказано. А сегодняшняя статья написана благодаря довольно многочисленным вопросам и моему обещанию рассказать, как, используя accordion, сделать на его основе меню для сайта. Естественно, что при переходе по ссылке [...]]]></description>
			<content:encoded><![CDATA[<p>Что такое Accordion наверное все знают, но если кто не знает, тому лучше сначала прочитать статью <a href="http://www.linkexchanger.su/2009/93.html">jQuery UI &#8211; виджет Accordion</a>, в ней довольно подробно все рассказано. А сегодняшняя статья написана благодаря довольно многочисленным вопросам и моему обещанию рассказать, как, используя accordion, сделать на его основе меню для сайта. Естественно, что при переходе по ссылке открытая секция аккордеона должна оставаться открытой и активный пункт меню должен быть как-то выделен&#8230;.<span id="more-104"></span></p>
<p>Сразу приведу <a href="http://www.linkexchanger.su/examples_2009/accordionMenu/ac_menu.html" target="_blank">пример</a> и выложу <a href="http://www.linkexchanger.su/examples_2009/accordionMenu/accordionMenu.zip">архив демо</a>, а то меня, не без оснований конечно, обвиняли в отсутствии демо в статьях про jQuery UI. Поскольку ничего особенно сложного в этом решении нет, то я буду краток &#8211; только код, пример и минимум необходимых пояснений.</p>
<p>Итак, сначала мы делаем все в точности так же, как написано в статье <a href="http://www.linkexchanger.su/2009/93.html">jQuery UI &#8211; виджет Accordion</a>. Т.е. подключаем необходимые файлы к HTML-странице. Здесь же внесем первое дополнение. Для того, чтобы иметь возможность запоминать состояние секций аккордеона, нам потребуется подключить еще один небольшой, но весьма полезный плагин &#8211; jQuery Cookie.</p>
<pre class="brush: xml;">&lt;script src=&quot;js/jquery.cookie.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre>
<p>Поиметь свежую версию этого плагина можно на <a href="http://plugins.jquery.com/project/Cookie">http://plugins.jquery.com/project/Cookie</a>.</p>
<p>Теперь приведу пример HTML-разметки меню-аккордеона.</p>
<pre class="brush: xml;">
&lt;div id=&quot;accordion&quot;&gt;
  &lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Секция 1&lt;/a&gt;&lt;/h3&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;?1-1&quot;&gt;Пункт меню 1-1&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;?1-2&quot;&gt;Пункт меню 1-2&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;?1-3&quot;&gt;Пункт меню 1-3&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Секция 2&lt;/a&gt;&lt;/h3&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;?2-1&quot;&gt;Пункт меню 2-1&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;?2-2&quot;&gt;Пункт меню 2-2&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;?2-3&quot;&gt;Пункт меню 2-3&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Секция 3&lt;/a&gt;&lt;/h3&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;?3-1&quot;&gt;Пункт меню 3-1&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;?3-2&quot;&gt;Пункт меню 3-2&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;?3-3&quot;&gt;Пункт меню 3-3&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Секция 4&lt;/a&gt;&lt;/h3&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;?4-1&quot;&gt;Пункт меню 4-1&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;?4-2&quot;&gt;Пункт меню 4-2&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;?4-3&quot;&gt;Пункт меню 4-3&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;</pre>
<p>Ничего загадочного тут и вовсе нет. Что еще? Добавим немного стилей, чтобы выделять активный пункт меню. Например так:</p>
<pre class="brush: css;">a.open { color: #f00;}</pre>
<p>т.е. в примере просто выделяем текст ссылки в меню красным цветом.</p>
<p>А теперь самое интересное &#8211; javascript-код:</p>
<pre class="brush: jscript;">&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
  $(&quot;#accordion&quot;).accordion({
    navigation: true
  });
  $(&quot;#accordion li a&quot;).click(function(){
    $.cookie(&quot;openItem&quot;, $(this).attr(&quot;href&quot;));
  });
  $(&quot;#accordion li a[href$=`&quot; + $.cookie(&quot;openItem&quot;) +
  &quot;`]&quot;).addClass(&quot;open&quot;);
});
&lt;/script&gt;</pre>
<p>И здесь ничего сложного! Отыскали нужный элемент по идентификатору <strong>#accordion</strong>, применили к нему возможности плагина. Из опций передали только одну, но в нашем случае необходимую опцию <strong>navigation</strong>, которой присвоили значение <strong>true</strong>. Это обеспечит нам открытие нужной секции аккордеона при переходе по ссылке.</p>
<p>На следующем шаге необходимо обрабатывать щелчок мышкой по пункту меню, чтобы поставить соответствующую куку. Что мы и делаем &#8211; находим все элементы a внутри li, внутри нашего аккордеона, связываем с ними событие click, по которому будет вызвана функция-обработчик.</p>
<p>Тут нам пригодятся возможности плагина jQuery Cookie. Мы устанавливаем куку с именем <strong>openItem</strong>, и значением, которое получаем из атрибута href той ссылки, по которой был совершен клик.</p>
<p>И последний шаг &#8211; при загрузке страницы мы должны прочитать куку (если она конечно есть) и в соответствии с ее значением &laquo;подсветить&raquo; нужный пункт меню. Делаем это &#8211; ищем нужный пункт меню выбирая элемент a внутри li аккордеона. Но не просто, а значение атрибута href которого соответствует значению, сохраненному в куке.</p>
<blockquote><p>Знак $ используем потому, что некоторые браузеры возвращают значения атрибута href по разному. Некоторые отдают абсолютный путь, некоторые &#8211; относительный. Чтобы исключить эту неоднозначность мы ищем такое значение атрибута href, которое заканчивается одинаково со значением, сохраненным в куке.</p></blockquote>
<p>Если такая ссылка будет найдена, то с помощью метода <strong>addClass</strong> мы добавим ей класс <strong>open</strong>, что заставит ее &laquo;покраснеть&raquo;.</p>
<p>Собственно это все, больше тут рассказывать не о чем&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2009/104.html/feed</wfw:commentRss>
		<slash:comments>63</slash:comments>
		</item>
		<item>
		<title>jQuery UI &#8211; виджет Accordion</title>
		<link>http://www.linkexchanger.su/2009/93.html</link>
		<comments>http://www.linkexchanger.su/2009/93.html#comments</comments>
		<pubDate>Fri, 26 Jun 2009 08:27:23 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery UI]]></category>
		<category><![CDATA[accordion]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2009/93.html</guid>
		<description><![CDATA[jQuery UI &#8211; надстройка над JavaScript-библиотекой jQuery. Она поможет создавать по настоящему интерактивные веб-приложения. Сегодня мы познакомимся с виджетом Accordion.

Щелчок по заголовку скрывает/отображает содержимое, разбитое на логические секции. При отображении содержимого одной секции, открытая ранее секция обязательно закрывается.
Для начала посетим страницу настраиваемой закачки на сайте jQuery UI, чтобы получить необходимые нам файлы. Щелкаем на ссылке [...]]]></description>
			<content:encoded><![CDATA[<p>jQuery UI &#8211; надстройка над JavaScript-библиотекой jQuery. Она поможет создавать по настоящему интерактивные веб-приложения. Сегодня мы познакомимся с виджетом Accordion.<br />
<img src="http://www.linkexchanger.su/wp-content/uploads/2009/06/accordion.jpg" alt="Виджет Accordion" /><br />
Щелчок по заголовку скрывает/отображает содержимое, разбитое на логические секции. При отображении содержимого одной секции, открытая ранее секция обязательно закрывается.<span id="more-93"></span><br />
Для начала посетим страницу <a href="http://jqueryui.com/download">настраиваемой закачки</a> на сайте jQuery UI, чтобы получить необходимые нам файлы. Щелкаем на ссылке <strong>Deselect all component</strong> , чтобы не закачивать лишнее, а затем выбираем только то, что нам потребуется &#8211; отмечаем <strong>чекбокс accordion</strong> и видим, что вместе с ним отметился <strong>чекбокс UI Core</strong>. Работа виджета Accordion зависит от него, поэтому он необходим.<br />
Кроме этого, справа есть выпадающий список, где можно выбрать понравившуюся тему оформления. Если все готово, кликаем кнопку <strong>Download</strong> и получаем архив. Можно испытать пример как есть, но интереснее создать свою HTML-страничку, где сначала в разделе HEAD подключить несколько файлов, которые есть в архиве.</p>
<pre class="brush: xml;">&lt;link type=&quot;text/css&quot; href=&quot;css/smoothness/jquery-ui-1.7.1.custom.css&quot; rel=&quot;stylesheet&quot; /&gt;
&lt;script src=&quot;js/jquery-1.3.2.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/jquery-ui-1.7.1.custom.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre>
<p>Мы подключили файл стилевого оформления виджета, файл библиотеки jQuery. В третьем файле объединена функциональность ядра UI и виджета Accordion.<br />
Двигаемся дальше и замечаем, что Accordion предъявляет некоторые требования к HTML-разметке.</p>
<pre class="brush: xml;">
&lt;div id=&quot;accordion&quot;&gt;
  &lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Section 1&lt;/a&gt;&lt;/h3&gt;
  &lt;div&gt;Section 1 content&lt;/div&gt;
  &lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Section 2&lt;/a&gt;&lt;/h3&gt;
  &lt;div&gt;Section 2 content&lt;/div&gt;
  &lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Section 3&lt;/a&gt;&lt;/h3&gt;
  &lt;div&gt;Section 3 content&lt;/div&gt;
&lt;/div&gt;</pre>
<p>Обратите внимание, что по умолчанию виджет считает заголовками секций элементы a (в нашем примере они заключены в тэг h3), а содержимое секций должно быть заключено в следующий непосредственно за ним элемент div. Внутри элемента div содержимое может быть практически любым.<br />
Осталось привязать функциональность виджета к HTML-разметке. Это просто:</p>
<pre class="brush: jscript;">&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
  $(&quot;#accordion&quot;).accordion();
});
&lt;/script&gt;</pre>
<p>Все! Accordion уже работает! Правда использует он пока все настройки по умолчанию, а мы хотим настроить его под себя. Это тоже несложно. Передадим виджету пару настроек.</p>
<pre class="brush: jscript;">&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
  $(&quot;#accordion&quot;).accordion({
  	autoHeight: false,
  	active: 2
  });
});
&lt;/script&gt;</pre>
<p>По умолчанию у аккордеона открывалась первая секция, высота всех секций была одинаковая и равна высоте секции с максимальным количеством содержимого. Передав пару настроек мы добились того, что по умолчанию открывается третья секция и каждая секция имеет высоту, соответствующую ее содержимому.<br />
Мы использовали только две настройки, но их значительно больше и с их помощью можно очень гибко настраивать виджет. Ниже приведен список возможных опций с описаниями.</p>
<p><strong>active</strong> &#8211; Выбирает секцию, открытую при инициализации. По умолчанию имеет значение first child, т.е. открывается первая секция. Установка значения в false не приведет к тому, что все секции будут закрыты. Для того чтобы иметь возможность закрывать все секции используется collapsible: true.</p>
<p><strong>animated</strong> &#8211; Включает или отключает анимацию. Установка опции в false отключит анимацию, применяемую по умолчанию (эффект скольжения). Дополнительно поддерживаются эффекты &#8216;bounceslide&#8217; and &#8216;easeslide&#8217;, но оба эффекта требуют подключения дополнительного плагина jQuery Easing.</p>
<p><strong>autoHeight</strong> &#8211; Автоматическая установка высота секции. По умолчанию используется значение true и высота всех секций определяется секцией с максимальной высотой. При установке значения false все секции будут иметь высоту, определяемую внутренним содержимым секции.</p>
<p><strong>clearStyle</strong> &#8211; По умолчанию используется значение false. Если установить значение true, то после окончания анимации будут очищены css-свойства height и overflow. Эта опция позволяет работать с динамически изменяемым содержимым секций. Не используется вместе с опцией autoHeight.</p>
<p><strong>collapsible</strong> &#8211; По умолчанию используется значение false. Если при инициализации установить значение true, можно будет закрывать открытую секцию щелчком по заголовку, таким образом, чтобы все секции были закрыты.<br />
event	Определяет событие, по которому происходит переключение секций. По умолчанию установлено значение &#8216;click&#8217;. Можно использовать значение &#8216;mouseover&#8217;.</p>
<p><strong>fillSpace</strong> &#8211; По умолчанию опция имеет значение false. При установке значения true открытая секция будет занимать всю возможную высоту, определяемую родительским элементом. Переопределяет опцию autoHeight.</p>
<p><strong>header</strong> &#8211; По умолчанию заголовком секции считается элемент a. Но заголовок можно определить явно, например header: &#8216;h3&#8242;.</p>
<p><strong>icons</strong> &#8211; Значки для использования в заголовках. Это объект, состоящий из двух пар ключ/значение. Может быть определен как &#8216;header&#8217;: &#8216;ui-icon-plus&#8217; и &#8216;headerSelected&#8217;: &#8216;ui-icon-minus&#8217;. Значения являются именами классов css, с помощью которых выбирается соответствующая картинка. Рекомендуется использовать значки, предоставляемые jQuery UI ThemeRoller вместе с многочисленными вариантами стилевого оформления.</p>
<p><strong>navigation</strong> &#8211; По умолчанию используется значение false. Если установить true, разыскивает и активирует ссылку. Используется, как правило, для построения меню на основе виджета, поскольку при перезагрузке страницы позволяет сохранить состояние. Обычно применяют HTML-разметку на основе списков.</p>
<p><strong>navigationFilter</strong> &#8211; В этой опции можно определить функцию, которая будет каким-либо образом обрабатывать ссылку, по которой осуществляется переход. Используется совместно с опцией navigation.</p>
<p>Однако это еще не все. Кроме возможности довольно гибко настроить виджет, можно заставить его реагировать на события. Очень простой пример</p>
<pre class="brush: jscript;">&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
  $(&quot;#accordion&quot;).accordion({
    autoHeight: false,
    active: 2,
    change: function(event, ui) {
      alert(&quot;Произошло событие &quot; + event.type);
    }
  });
});
&lt;/script&gt;</pre>
<p>Обратите внимание на опцию change, значением которой является callback-функция, вызываемая при смене секции. Эта callback-функция может принимать два аргумента. Первый – это обычный объект event, второй аргумент – объект ui, в свойствах которого содержится следующая информация:<br />
<strong>ui.newHeader</strong> – объект jQuery с информацией об активируемом заголовке;<br />
<strong>ui.oldHeader</strong> – объект jQuery с информацией о предыдущем заголовке;<br />
<strong>ui.newContent</strong> – объект jQuery с информацией об активируемом содержимом;<br />
<strong>ui.oldContent</strong> – объект jQuery с информацией о предыдущем содержимом;</p>
<p>И пример того, как можно обратиться к свойствам этих объектов:</p>
<pre class="brush: jscript;">&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
  $(&quot;#accordion&quot;).accordion({
    autoHeight: false,
    active: 2,
    change: function(event, ui) {
      alert(&quot;Старый заголовок: &quot; +
               ui.oldHeader.find(&quot;a&quot;).text() +
  	       &quot;\nНовый контент: &quot; +
               ui.newContent.text());
    }
  });
});
&lt;/script&gt;</pre>
<p>Опций, связанных с событиями всего две:<br />
Опция <strong>changestart</strong> &#8211; Событие <em>accordionchangestart</em> наступает каждый раз при начале смены секций.<br />
Опция <strong>change</strong> &#8211; Событие <em>accordionchange </em>наступает каждый раз после того, как изменилась активная секция. Если используется анимация, то событие наступает по ее завершении, если нет – то событие наступает немедленно.</p>
<p>Нам осталось познакомиться с методами виджета Accordion. В следующем примере продемонстрировано как с помощью метода <strong>option</strong> можно получить и установить значения опций уже после инициализации виджета. Для этого придется в HTML-код с которым мы эксперементируем, добавить пару кнопок:</p>
<pre class="brush: xml;">&lt;button id=&quot;getter&quot;&gt;Get Option&lt;/button&gt;
&lt;button id=&quot;setter&quot;&gt;Set Option&lt;/button&gt;</pre>
<p>и пример javascript-кода:</p>
<pre class="brush: jscript;">&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
  $(&quot;#accordion&quot;).accordion({
    autoHeight: false,
    active: 2,
    animated: false
  });
  $(&quot;#getter&quot;).click(function(){
   alert(&quot;animated: &quot; +
   $(&quot;#accordion&quot;).accordion(&quot;option&quot;,&quot;animated&quot;));
  });
  $(&quot;#setter&quot;).click(function(){
   $(&quot;#accordion&quot;).accordion(&quot;option&quot;,&quot;animated&quot;,&quot;slide&quot;);
   alert(&quot;animated: &quot; +
   $(&quot;#accordion&quot;).accordion(&quot;option&quot;,&quot;animated&quot;));
  });
});
&lt;/script&gt;</pre>
<p>При инициализации виджета, мы использовали опцию animated: false, отключив, таким образом, применяемую по умолчанию анимацию. Попробуйте переключать секции и убедитесь в том, что никаких эффектов при переключении действительно нет. Если щелкнуть по кнопке <strong>Get Option</strong>, мы увидим окно предупреждения, в котором будет выведено текущее значение опции animated. Изменим значение этой опции на slide, щелкнув по кнопке <strong>Set Option</strong>. Получили окно предупреждения с сообщением: animated: slide. Проверим это, переключая секции. Действительно, теперь при переключении секций используется анимация.</p>
<p>Ну, а ниже описаны все возможные методы виджета Accordion:</p>
<p><strong>destroy</strong> &#8211; .accordion(&laquo;destroy&raquo;) полностью удаляет всю функциональность виджета Accordion. Возвращает элементы в состояние, предшествующее инициализации.<br />
<strong>disable</strong> &#8211; .accordion(&laquo;disable&raquo;) временно запрещает использование всей функциональности виджета. Вновь разрешить ее использование можно с помощью метода enable.<br />
<strong>enable</strong> &#8211; .accordion(&laquo;enable&raquo;) разрешает использование всей функциональности виджета, если ранее она была запрещена с использованием метода disable.<br />
<strong>option</strong> &#8211; .accordion(&laquo;option&raquo;, optionName, [value]) с помощью этого метода можно получить или установить значение любой опции виджета после инициализации.<br />
<strong>activate</strong> &#8211; .accordion(&laquo;activate&raquo; , index) с помощью этого метода можно программно активировать необходимые секции. Аргумент index может быть номером секции (отсчет ведется от 0) или селектором jQuery, который выберет необходимый элемент. Передавая значение -1 можно закрыть все секции (только в случае использования опции collapsible:true).</p>
<p>На этом пока закончим, хотя и остались неосвещенными вопросы построения на базе виджета Accordion навигационного меню и мы почти не рассматривали стилевое оформление виджета. Но статья и так получилась довольно громоздкой, а к упомянутым темам, надеюсь, еще удастся вернуться позже.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2009/93.html/feed</wfw:commentRss>
		<slash:comments>58</slash:comments>
		</item>
		<item>
		<title>Пользовательские интерфейсы jQuery: создаем аккордеон</title>
		<link>http://www.linkexchanger.su/2008/22.html</link>
		<comments>http://www.linkexchanger.su/2008/22.html#comments</comments>
		<pubDate>Fri, 25 Jan 2008 12:12:59 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[accordion]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[аккордеон]]></category>
		<category><![CDATA[интерфейс]]></category>
		<category><![CDATA[меню]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/22.html</guid>
		<description><![CDATA[Вы знаете, что такое аккордеон? Правильно &#8211; музыкальный инструмент. А еще аккордеоном называют раскрывающуюся / закрывающуюся панель содержащую какой-либо контент. Его удобно применять, когда содержимое должно быть показано в ограниченном пространстве. Например, есть довольно большое меню, разделенное на разделы, а места, чтобы его отобразить сразу &#8211; просто хватает. Вот тогда и придет на помощь accordion. [...]]]></description>
			<content:encoded><![CDATA[<p>Вы знаете, что такое аккордеон? Правильно &#8211; музыкальный инструмент. А еще аккордеоном называют раскрывающуюся / закрывающуюся панель содержащую какой-либо контент. Его удобно применять, когда содержимое должно быть показано в ограниченном пространстве. Например, есть довольно большое меню, разделенное на разделы, а места, чтобы его отобразить сразу &#8211; просто хватает. Вот тогда и придет на помощь <strong>accordion</strong>. <strong><font color="#ff0000">Внимание! Эта статья устарела!</font></strong> Новую статью можно <a href="http://www.linkexchanger.su/2009/93.html">почитать здесь</a>.<span id="more-22"></span></p>
<p>Посмотрите эти два примера. Пример слева срабатывает по щелчку мышью на панельке-заголовке и имеет довольно интересный эффект &laquo;прыгающего мячика&raquo;, когда панелька падает вниз. Пример справа срабатывает при наведении указателя мыши на панель-заголовок. Тут применен эффект по умолчанию &#8211; простое скольжение.</p>
<blockquote><p>Жалко только, что как всегда в браузере названИЕкоторого Вы знаете без меня, все это выглядит не так прилично как в остальных. Ну, если немного помучаться с CSS, наверняка можно привести все к единообразию).</p></blockquote>
<p><iframe src="http://www.linkexchanger.su/example_jquery/accordion.html" style="border: medium none " width="420" height="360"></iframe></p>
<blockquote><p>Вы можете сохранить <a href="http://www.linkexchanger.su/example_jquery/accordion.zip">исходный код</a> примера и при наличии у Вас библиотеки jQuery, воспроизвести его на своем сайте.</p></blockquote>
<p>Как всегда, нам потребуется подключить саму библиотеку и еще пару-тройку небольших файлов в раздел <strong>HEAD</strong>.</p>
<pre class="brush: xml;">&lt;script src=&quot;js/jquery-1.2.1.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/jquery.dimensions.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/ui.accordion.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/jquery.easing.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre>
<p>Сначала подключаем саму библиотеку, затем файл jquery.dimensions.js (он нам уже знаком &#8211; отвечает за работу с размерами элементов). Интересный нам файл ui.accordion.js &#8211; именно он обеспечивает работу аккордеона. Файл jquery.easing.js понадобится только в том случае, если Вы решите использовать анимацию, отличную от той, что установлена по умолчанию.</p>
<p>HTML и CSS-код приводить не имеет смысла, поскольку он настолько прост, что пояснений не требует. Посмотреть его Вы всегда сможете в исходном коде примера. Не забывайте только, что тот маленький скрипт, код которого я приведу ниже, обращается к элементам по их идентификаторам.</p>
<p>Итак код:</p>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot;&gt;
$(document).ready(function(){
  $(&quot;#example&quot;).accordion({
     animated: &quot;bounceslide&quot;
  });
  $(&quot;#example2&quot;).accordion({
    event: &quot;mouseover&quot;
  });
});
&lt;/script&gt;</pre>
<p>И это все! Мы написали оба аккордеона!<br />
Как всегда весь код обернут в $(document).ready(function(){ &#8230; }); Для первого аккордеона выбран элемент с <strong>id #example</strong>, для второго соответственно <strong>#example2</strong>. В опции <strong>animated</strong> первого аккордеона мы (пользуясь тем, что подключили файл jquery.easing.js) задали интересный эффект, а в опции <strong>event</strong> второго аккордеона указали на то, что срабатывать он должен по событию <strong>mouseover</strong>.</p>
<p>Собственно мы могли поступить еще проще и написать вот так:</p>
<pre class="brush: jscript;">$(&quot;#example&quot;).accordion();</pre>
<p>и такой код прекрасно работал бы, потому, что в файле ui.accordion.js задаются опции по умолчанию.<br />
По умолчанию там заданы опции <strong>animated: slide</strong> и <strong>event: click</strong>, а также очень интересная опция <strong>autoheight: true</strong>. В примере, появляющиеся окошки для отображения контента всегда одинаковы и высота определяется по блоку с максимальным содержимым. Если же опцию <strong>autoheight</strong> установить в <strong>false</strong>, высота будет разная.</p>
<p>Полный список опций можно отыскать на сайте разработчика. Удачи и юзайте jQuery!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/22.html/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
	</channel>
</rss>
