<?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>markup-javascript.com &#187; jQuery</title>
	<atom:link href="http://markup-javascript.com/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://markup-javascript.com</link>
	<description>Блог web-технолога</description>
	<lastBuildDate>Thu, 03 Jun 2010 19:13:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Запрет выделения текста с помощью jQuery</title>
		<link>http://markup-javascript.com/2010/05/14/zapret-vydeleniya-teksta-s-pomoshhyu-jquery/</link>
		<comments>http://markup-javascript.com/2010/05/14/zapret-vydeleniya-teksta-s-pomoshhyu-jquery/#comments</comments>
		<pubDate>Fri, 14 May 2010 14:59:47 +0000</pubDate>
		<dc:creator>Алексей</dc:creator>
				<category><![CDATA[JS Plugins]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Методики]]></category>

		<guid isPermaLink="false">http://markup-javascript.com/?p=713</guid>
		<description><![CDATA[На практике мне часто приходится применять данный функционал. Но чаще не из-за того что бы запретить выделение для копипастеров, тем более что данная фича легко обходится просто выключив на время javascript. А чаще в проектах где приходится крутить слайдеры, кастомные скролы, drag&#038;drop. Т.к. здесь активно участвуют события нажатия и перетаскивание которые также выделяют текст на [...]]]></description>
			<content:encoded><![CDATA[<p>На практике мне часто приходится применять данный функционал. Но чаще не из-за того что бы запретить выделение для копипастеров, тем более что данная фича легко обходится просто выключив на время javascript. А чаще в проектах где приходится крутить слайдеры, кастомные скролы, drag&#038;drop. Т.к. здесь активно участвуют события нажатия и перетаскивание которые также выделяют текст на сайте&#8230; хотя это не требовалось. Поэтому я часто пользуюсь данными функциями&#8230;</p>
<div class="codecolorer-container javascript twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">jQuery.<span style="color: #660066;">fn</span>.<span style="color: #660066;">extend</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> <br />
&nbsp; &nbsp; disableSelection <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">onselectstart</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">unselectable</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;on&quot;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jQuery<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'-moz-user-select'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'none'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; enableSelection <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">onselectstart</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">unselectable</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;off&quot;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jQuery<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'-moz-user-select'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'auto'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">// кроссбраузерный вызов</span><br />
$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body *'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">disableSelection</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>
<strong>$(&#8216;body *&#8217;)</strong> &#8211; именно такой селектор будет для этих метов кроссбраузерным, просто $(&#8216;body&#8217;) или $(document) &#8211; не работает в Opera.
</p>
<ul>
<li><strong>disableSelection</strong> &#8211; запрет выделения</li>
<li><strong>enableSelection</strong> &#8211; возврат выделения</li>
</ul>
<p>
Ничего нового я в этой статье не открыл, а просто хотел поделится функциями с вами, т.к. до определенного момента вечно искал что-то подобное в инете.</p>
]]></content:encoded>
			<wfw:commentRss>http://markup-javascript.com/2010/05/14/zapret-vydeleniya-teksta-s-pomoshhyu-jquery/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Masonry &#8211; динамический layout</title>
		<link>http://markup-javascript.com/2010/03/21/masonry-dinamicheskij-layout/</link>
		<comments>http://markup-javascript.com/2010/03/21/masonry-dinamicheskij-layout/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 13:10:51 +0000</pubDate>
		<dc:creator>Алексей</dc:creator>
				<category><![CDATA[JS Plugins]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Верстка]]></category>

		<guid isPermaLink="false">http://markup-javascript.com/?p=700</guid>
		<description><![CDATA[
В нескольких последних проектах столкнулся с плагином под названием masonry, который замечательно помогает экономить место на сайте в котором блоки с контентом идут по порядку, а с моими правками вообще превращается в клевый эффект, который произведет впечатление на любого пользователя.


На скрине наглядно видно эффект плагина. До применения все блоки обтекают друг друга из-за чего получается [...]]]></description>
			<content:encoded><![CDATA[<p>
В нескольких последних проектах столкнулся с плагином под названием <strong><a href="http://desandro.com/resources/jquery-masonry/">masonry</a></strong>, который замечательно помогает экономить место на сайте в котором блоки с контентом идут по порядку, а с моими правками вообще превращается в клевый эффект, который произведет впечатление на любого пользователя.
</p>
<p>
На скрине наглядно видно эффект плагина. До применения все блоки обтекают друг друга из-за чего получается некрасивые строки и много свободного места, а после блоки расставлены наиболее оптимальным образом.
</p>
<p><a href="http://markup-javascript.com/wp-content/uploads/2010/03/masonry.gif"><img src="http://markup-javascript.com/wp-content/uploads/2010/03/masonry.gif" alt="" title="masonry" width="630" height="617" class="alignleft size-full wp-image-702" /></a><br />
<span id="more-700"></span></p>
<p>
Я упоминал выше о моей модификации, теперь подробнее :), я изменил всего-лишь одну строчку, и на мой взгляд плагин от этого только выиграл. Для наглядности эффекта поресайзете окно браузера.
</p>
<p>
<strong><a href="http://markup-javascript.com/examples/example020/index.html">Моя модификация</a></strong>, а вот еще <a href="http://desandro.com/demo/masonry/tumblelog.html">страничка с живым примером</a>.
</p>
<p>
Параметры плагина для инициализации:
</p>
<div class="codecolorer-container javascript twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#wrapper'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">masonry</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; singleMode<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Этот параметр ставится в true, если все ваши блоки имеют одинаковую ширину</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; columnWidth<span style="color: #339933;">:</span> <span style="color: #CC0000;">240</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Ширина колонки в вашей сетке, параметр по умолчанию - ширина первого блока</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; itemSelector<span style="color: #339933;">:</span> <span style="color: #3366CC;">'.box:visible'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Селектор блоков</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; resizeable<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Перестройка сетки блоков при ресайзе окна</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; appendedContent<span style="color: #339933;">:</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.new_content'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Объект элемента который вставляется в сетку динамически</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; saveOptions<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Этот параметр сохраняет параметры инициализации первого вызова</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> &nbsp;<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// callback.</span><br />
&nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<h3 class="download"><a href="http://markup-javascript.com/examples/example020/js/jquery.masonry.js">Моя версия скрипта</a></h3>
]]></content:encoded>
			<wfw:commentRss>http://markup-javascript.com/2010/03/21/masonry-dinamicheskij-layout/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Скролящийся блок</title>
		<link>http://markup-javascript.com/2010/01/10/skrolyashhijsya-blok/</link>
		<comments>http://markup-javascript.com/2010/01/10/skrolyashhijsya-blok/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 10:03:51 +0000</pubDate>
		<dc:creator>Алексей</dc:creator>
				<category><![CDATA[JS Plugins]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://markup-javascript.com/?p=645</guid>
		<description><![CDATA[
Очень часто в интернете встречаются сайты с большим количеством информации на одной странице, из-за чего приходится усердно работать колесиком мышки что бы вернутся к навигации или иному полезному блоку. Для облегчения путешествия пользователя по таким страницам часто прибегают к эффекту скролящегося блока. Для ясности представляю вам первый пример.



Данный эффект стал встречаться в моих проектах довольно [...]]]></description>
			<content:encoded><![CDATA[<p>
Очень часто в интернете встречаются сайты с большим количеством информации на одной странице, из-за чего приходится усердно работать колесиком мышки что бы вернутся к навигации или иному полезному блоку. Для облегчения путешествия пользователя по таким страницам часто прибегают к эффекту скролящегося блока. Для ясности представляю вам <a href="http://markup-javascript.com/examples/example019/index.html">первый пример</a>.
</p>
<p><span id="more-645"></span></p>
<p>
Данный эффект стал встречаться в моих проектах довольно часто, поэтому я решил написать небольшой плагин &#8211; <strong>jquery.movingBlock.js</strong>.
</p>
<h3>Требования для работы плагина:</h3>
<h4>HTML/CSS</h4>
<p>Как всегда свои плагины я стараюсь сделать наиболее универсальными, чем меньше они зависят от HTML/CSS кода &#8211; тем лучше, поэтому для данного плагина определенных требований при верстке нет!</p>
<h4>javaScript:</h4>
<div class="codecolorer-container javascript twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery-1.3.2.min.js&quot;&gt;&lt;/script&gt;<br />
&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery.movingBlock.js&quot;&gt;&lt;/script&gt;<br />
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; $<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">movingBlock</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; holder<span style="color: #339933;">:</span><span style="color: #3366CC;">'div.wrapper'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; topDif<span style="color: #339933;">:</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bottomDif<span style="color: #339933;">:</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; toEl<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cssTop<span style="color: #339933;">:</span><span style="color: #3366CC;">'marginTop'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; duration<span style="color: #339933;">:</span><span style="color: #CC0000;">350</span>&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></div>
<p>
В роли главного объекта $(&#8216;#sidebar&#8217;) выступает непосредственно скролящийся элемент, а теперь детальнее о параметрах:
</p>
<ul>
<li><strong>holder</strong> &#8211; селектор обертки (родителя) скроляшегося элемента, главный параметр, т.к. указывает в каком элементе будет скролиться блок;</li>
<li><strong>topDif</strong> &#8211; отступ элемента от верхней части экрана;</li>
<li><strong>bottomDif</strong> &#8211; отступ элемента от нижней части экрана;</li>
<li><strong>toEl</strong> &#8211; если вы хотите что бы блок скролился в обертке до определенного элемента, то в данном праметре вам нужно указать селектор этого элемента;</li>
<li><strong>cssTop</strong> &#8211; изменяющееся свойство при скроле (marginTop или top);</li>
<li><strong>duration</strong> &#8211; время анимации.</li>
</ul>
<p>
Для наглядности хочу продемонстрировать еще пару примеров: <a href="http://markup-javascript.com/examples/example019/inner.html">пример 2</a>, <a href="http://markup-javascript.com/examples/example019/inner2.html">пример 3</a>.
</p>
<h3 class="download">
<a href="http://markup-javascript.com/examples/example019/jquery.movingBlock.rar">Скачать плагин</a><br />
</h3>
]]></content:encoded>
			<wfw:commentRss>http://markup-javascript.com/2010/01/10/skrolyashhijsya-blok/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>@font-face вместо Cufon</title>
		<link>http://markup-javascript.com/2009/11/27/font-face-vmesto-cufon/</link>
		<comments>http://markup-javascript.com/2009/11/27/font-face-vmesto-cufon/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 13:39:46 +0000</pubDate>
		<dc:creator>Алексей</dc:creator>
				<category><![CDATA[JS Plugins]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Верстка]]></category>
		<category><![CDATA[Методики]]></category>

		<guid isPermaLink="false">http://markup-javascript.com/?p=629</guid>
		<description><![CDATA[
Использование красивых шрифтов на сайте перестало быть редкостью, на помощь верстальщикам пришли такие JS библиотеки как sIFR , typeface и Cufon. В них есть как множество плюсов так и минусов&#8230; также можно задаться вопросом, что из этого списка лучше использовать для своего проекта, и я вам скажу, что лучше использовать @font-face и отображать шрифт как [...]]]></description>
			<content:encoded><![CDATA[<p>
Использование красивых шрифтов на сайте перестало быть редкостью, на помощь верстальщикам пришли такие JS библиотеки как <a href="http://ru.wikipedia.org/wiki/Scalable_Inman_Flash_Replacement">sIFR </a>, <a href="http://typeface.neocracy.org/">typeface</a> и <a href="http://wiki.github.com/sorccu/cufon/about">Cufon</a>. В них есть как множество плюсов так и минусов&#8230; также можно задаться вопросом, что из этого списка лучше использовать для своего проекта, и я вам скажу, что лучше использовать <strong>@font-face</strong> и отображать шрифт как обычный текст.
</p>
<p>
Но как всегда есть браузеры ;) которые это свойство не поддерживают и нечего не остаётся как использовать вышеперечисленные библиотеки. Сегодня я хочу познакомить вас с методикой как, используя нестандартный шрифт, разграничить методы отображения шрифтов между этими браузерами.
</p>
<p><span id="more-629"></span></p>
<p>
Для этой цели я воспользуюсь <a href="http://code.google.com/p/jquery-fontavailable/"><strong>jquery-fontavailable</strong></a>. Данный плагин позволяет определить поддержку нестандартного фонта браузером, даже если он подключен с помощью @font-face. Итак сразу покажу пример, в старых браузерах у вас отобразится шрифт сгенерированный cufon_ом, а в тех где поддерживается @font-face &#8211; будет текст.
</p>
<h3>Пример работы скрипта:</h3>
<p><iframe frameborder="0" width="100%" height="50px" src="http://markup-javascript.com/examples/example018/index.html"></iframe></p>
<p>
Стандартный плагин jquery-fontavailable работает иногда не корректно, поэтому я его немного усовершенствовал. Моя версия этого плагина выглядит так (копирайты я оставил, т.к. изменил всего две строчки):
</p>
<div class="codecolorer-container javascript twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #006600; font-style: italic;">/* fontAvailable jQuery Plugin, v1.1<br />
&nbsp;*<br />
&nbsp;* Copyright (c) 2009, Howard Rauscher<br />
&nbsp;* Licensed under the MIT License<br />
&nbsp;*/</span><br />
&nbsp;<br />
<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> element<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; $.<span style="color: #660066;">fontAvailable</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>fontName<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> width<span style="color: #339933;">,</span> height<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// prepare element, and append to DOM</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>element<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; element <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">'span'</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">'visibility'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'hidden'</span> <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">'position'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'absolute'</span> <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">'top'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'-10000px'</span> <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">'left'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'-10000px'</span> <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">'abcdefghijklmnopqrstuvwxyz'</span> <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">appendTo</span><span style="color: #009900;">&#40;</span> document.<span style="color: #660066;">body</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// get the width/height of element after applying a fake font</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> __FAKEFONT__ <span style="color: #339933;">=</span> element.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'font-family'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; width <span style="color: #339933;">=</span> element<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'font-family'</span><span style="color: #339933;">,</span> __FAKEFONT__<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span style="color: #660066;">width</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; height <span style="color: #339933;">=</span> element.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// set test font</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; element.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'font-family'</span><span style="color: #339933;">,</span> fontName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>width <span style="color: #339933;">!==</span> element.<span style="color: #660066;">width</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> height <span style="color: #339933;">!==</span> element.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> navigator.<span style="color: #660066;">appVersion</span>.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Chrome'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>jQuery<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>
Удивительно, но Google Chrome не поддерживает свойство @font-face из-за соображений безопасности. Но это можно обойти выключив в командной строке <em>&#8211;enable-remote-fonts</em>. Но все же, я сделал что бы в модифицированной версии шрифт в Chrome куфонился.
</p>
<h3>Что нужно для работы данного метода.</h3>
<h4>CSS код:</h4>
<div class="codecolorer-container css twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a1a100;">@font-face {</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;KB Zero&quot;</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; src<span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">&quot;../fonts/zero.ttf&quot;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
html<span style="color: #00AA00;">,</span> body<span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #3333ff;">:Arial</span><span style="color: #00AA00;">,</span> Helvetica<span style="color: #00AA00;">,</span> <span style="color: #993333;">sans-serif</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
p <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font</span><span style="color: #00AA00;">:</span><span style="color: #993333;">bold</span> <span style="color: #933;">16px</span> <span style="color: #ff0000;">&quot;KB Zero&quot;</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></div>
<p>
В css коде мы с помощью @font-face объявляем font-family и указываем путь к файлу шрифта. Для body указывается стандарный web шрифт, это нужно для работы скрипта. Ну и применяем шрифт к тегу P. HTML код я показывать не буду т.к. там у меня находится только одно предложение завернутое в тег P.
</p>
<h4>JavaScript код:</h4>
<div class="codecolorer-container javascript twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>$.<span style="color: #660066;">fontAvailable</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'KB Zero'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Cufon.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>fontFamily<span style="color: #339933;">:</span> <span style="color: #3366CC;">'KB Zero'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>
Исходя из того, что пример был построен на базе Cufon, я не буду рассказывать как его подключить, это можно посмотреть <a href="http://markup-javascript.com/2009/05/10/cufon-implementaciya-nestandartnyx-shriftov/">сдесь</a>.
</p>
<p>
Логика подключения fontAvailable выглядит элементарно&#8230;<br />
<strong>$.fontAvailable(&#8216;KB Zero&#8217;)</strong>- возвращает булеву переменную после проверки на поддержку браузером данного шрифта, а значит нам нужно инициализировать плагин в условии, и если шрифт не поддерживается &#8211; будет отрабатывать Cufon
</p>
<p>
Вместе с этим плагином можно использовать и <a href="http://ru.wikipedia.org/wiki/Scalable_Inman_Flash_Replacement">sIFR </a> с <a href="http://typeface.neocracy.org/">typeface</a>, достаточно лишь инициализировать их в данном условии.
</p>
<h3 class="download"><a href="http://markup-javascript.com/examples/example018/example.7z">Скачать пример</a></h3>
]]></content:encoded>
			<wfw:commentRss>http://markup-javascript.com/2009/11/27/font-face-vmesto-cufon/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Обновился плагин для слайдшоу</title>
		<link>http://markup-javascript.com/2009/10/30/obnovilsya-plagin-dlya-slajdshou/</link>
		<comments>http://markup-javascript.com/2009/10/30/obnovilsya-plagin-dlya-slajdshou/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 13:32:28 +0000</pubDate>
		<dc:creator>Алексей</dc:creator>
				<category><![CDATA[JS Plugins]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://markup-javascript.com/?p=609</guid>
		<description><![CDATA[
Одним из наиболее популярных скриптов в моем блоге является плагин для галерей и слайдшоу. Поэтому я постарался как можно быстрее сделать апдейты и фиксы для этого скрипта.


Хочется сразу выразит вам благодарность, многие пишут мне о найденных багах в скрипте, все эти письма и комментарии я учитывал, и наконец-то  выделил для этого время.

Обновления в плагине:

Самый [...]]]></description>
			<content:encoded><![CDATA[<p>
Одним из наиболее популярных скриптов в моем блоге является <strong><a href="http://markup-javascript.com/2009/02/05/slajdshou/">плагин для галерей и слайдшоу</a></strong>. Поэтому я постарался как можно быстрее сделать апдейты и фиксы для этого скрипта.
</p>
<p>
Хочется сразу выразит вам благодарность, многие пишут мне о найденных багах в скрипте, все эти письма и комментарии я учитывал, и наконец-то  выделил для этого время.
</p>
<h3>Обновления в плагине:</h3>
<p>
Самый главный апдейт в коде &#8211; это оптимизация, 70% кода было переписано заново. Сказывается опыт работы в этой отрасли&#8230; смотря на многие свои старые плагины &#8211; хочется большинство переделать.<br />
Новый код уменшился в размере с 5.5 КБ до 3.5 КБ, и за счет новых параметров увеличился до 5 КБ, за счет нового алгоритма &#8211; уменьшена нагрузка на браузер.
</p>
<p>Еще несколько мелких апдейтов и фиксов:</p>
<ul>
<li>Пофикшен баг связанный с паузой и переключением на следующий/предыдущий слайд</li>
<li>Пофикшены баги связанные с несуществующими ссылками</li>
<li>Изменено название параметра с numElementLink на numElement</li>
<li>Добавлен параметр noCicle &#8211; для не циклического переключения</li>
<li>Добавлен параметр disableClass &#8211; клас на prev/next, работает в связке с noCicle</li>
</ul>
<p>
Детальнее по плагину вы можете почитать в обновленном <strong><a href="http://markup-javascript.com/2009/02/05/slajdshou/">посте</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://markup-javascript.com/2009/10/30/obnovilsya-plagin-dlya-slajdshou/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Прокрутка списка объектов по событию mousemove</title>
		<link>http://markup-javascript.com/2009/07/19/prokrutka-spiska-obektov-po-sobytiyu-mousemove/</link>
		<comments>http://markup-javascript.com/2009/07/19/prokrutka-spiska-obektov-po-sobytiyu-mousemove/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 13:52:06 +0000</pubDate>
		<dc:creator>Алексей</dc:creator>
				<category><![CDATA[JS Plugins]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://markup-javascript.com/?p=517</guid>
		<description><![CDATA[
Лето, жара&#8230; хочется отдыхать и купаться, но никак не писать интересные статьи :) поэтому опять я пишу с небольшим перерывом. Долго думал &#8211; чем же Вас порадовать на этот раз, &#8220;валидация форм&#8221; &#8211; большая статья (напишу позже разбив на пару частей :), &#8220;AJAX upload файлов&#8221; &#8211; хмм.. интересно, но нужен хороший пример (будет позже :), [...]]]></description>
			<content:encoded><![CDATA[<p>
Лето, жара&#8230; хочется отдыхать и купаться, но никак не писать интересные статьи :) поэтому опять я пишу с небольшим перерывом. Долго думал &#8211; чем же Вас порадовать на этот раз, &#8220;валидация форм&#8221; &#8211; большая статья (напишу позже разбив на пару частей :), &#8220;AJAX upload файлов&#8221; &#8211; хмм.. интересно, но нужен хороший пример (будет позже :), &#8220;как сделать свой JS фреймверк&#8221; &#8211; наверное будет цикл нескольких статей и начну точно не сегодня :)))
</p>
<p>
Вот так я долго не решался&#8230; но на днях у одного из моих коллег было задание сделать карусель, которая бы вращалась при перемещении мышки, причем по бокам были ПНГ затенения&#8230; похардкодив немного он конечно же сделал :))) Но у меня тоже были наработки по этому направлению, и я решил на выходных усовершенствовать свой плагин, чтобы он работал в любых условиях :)
</p>
<h3>Плагин &#8211; mouseGallerySlide</h3>
<p><iframe frameborder="0" width="100%" height="100px" style="overflow:hidden;" src="http://markup-javascript.com/examples/example016/listScroller.html"></iframe><br />
<span id="more-517"></span></p>
<p>
Вы можете открыть <strong><a target="_blank" href="http://markup-javascript.com/examples/example016/listScroller.html">пример в новом окне</a></strong>.
</p>
<p>
В первом примере нажимать на картинки не получится, т.к. сверху лежит абсолютно позиционированный div, это я сделал специально, хотел показать, что сверху объекта могут накладываться любые слои не мешая функционалу плагина. Секрет в том, что события происходят в зависимости от положения мышки на странице. Если нужны кликабельные картинки и тени по бокам &#8211; повесьте два маленьких diva, тогда центральная часть списка будет доступна для клика.
</p>
<h3>Теперь детально по коду примера и плагина:</h3>
<p>
Как всегда опишу только нужную структуру HTML и CSS необходимые для работы плагина&#8230; все остальные эффекты это дело вашего воображения.
</p>
<h4>HTML:</h4>
<div class="codecolorer-container html4strict twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;scrollGallery&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;images/pic01-small.jpg&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ...<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;images/pic05-small.jpg&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></div></div>
<h4>CSS:</h4>
<div class="codecolorer-container css twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6666ff;">.scrollGallery</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">480px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">60px</span><span style="color: #00AA00;">;</span>&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span><span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<span style="color: #6666ff;">.scrollGallery</span> ul <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">31999px</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<span style="color: #6666ff;">.scrollGallery</span> ul li <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></div>
<p>
Для правильной работы плагина нам необходимо:<br />
- объект-родитель с заданными размерами блока и overflow, position:relative ставится для IE, чтобы внутренние объекты не вылазили за границы<br />
- двигающейся элемент, в нашем примере это UL с большоооой шириной&#8230; :)<br />
- ну и флотнутые элементы галереи (li)
</p>
<h4>JavaScript:</h4>
<div class="codecolorer-container javascript twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery-1.3.2.min.js&quot;&gt;&lt;/script&gt;<br />
&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery.mouseGallerySlide.1.1.0.js&quot;&gt;&lt;/script&gt;<br />
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; $<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'load'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div.scrollGallery'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">mouseGallerySlide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scrollElParent<span style="color: #339933;">:</span> <span style="color: #3366CC;">'ul'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scrollEl<span style="color: #339933;">:</span> <span style="color: #3366CC;">'li'</span>&nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></div>
<p>
В примере для этого плагина я воспользовался нестандартной инициализацией скрипта $(window).bind(&#8216;load&#8217;, function(){&#8230;}), вместо $(document).ready(function(){&#8230;}), все из-за того, что такие браузеры как Chrome и Safari не правильно считают параметры блоков пока не загрузились картинки, это можно также поправить захордкодив ширину LI или задав размеры картинкам через атрибуты width и height&#8230; тут можно поступать как кому угодно.
</p>
<h4>Параметры плагина:</h4>
<ul>
<li><strong>scrollElParent</strong> &#8211; селектор двигающегося элемента</li>
<li><strong>scrollEl</strong> &#8211; селектор слайдов</li>
</ul>
<h3>Простой пример:</h3>
<p><iframe frameborder="0" width="100%" height="100px" style="overflow:hidden;" src="http://markup-javascript.com/examples/example016/listScroller2.html"></iframe></p>
<p>
Вы можете открыть <strong><a target="_blank" href="http://markup-javascript.com/examples/example016/listScroller2.html">пример в новом окне</a></strong>.
</p>
<h3 class="download"><a href="http://markup-javascript.com/examples/example016/jquery.mouseGallerySlide.1.1.0.rar">Скачать плагин</a></h3>
]]></content:encoded>
			<wfw:commentRss>http://markup-javascript.com/2009/07/19/prokrutka-spiska-obektov-po-sobytiyu-mousemove/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Динамические блоки на jQuery</title>
		<link>http://markup-javascript.com/2009/06/21/dinamicheskie-bloki-na-jquery/</link>
		<comments>http://markup-javascript.com/2009/06/21/dinamicheskie-bloki-na-jquery/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 15:36:32 +0000</pubDate>
		<dc:creator>Алексей</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JS Plugins]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://markup-javascript.com/?p=479</guid>
		<description><![CDATA[
В каждом втором моем проекте, где нужно делать различные эффекты на JavaScript, встречаются различные блоки, которые выдвигаются, выезжают или их нужно вытягивать мышкой. Эффекты такого рода очень просто получить с помощью продвинутых фреймверков, но темнемение на разработку таких маленьких скриптов в сумме уходит много времени. Во всяком случае мне было постоянно лень написать что-то универсальное [...]]]></description>
			<content:encoded><![CDATA[<p>
В каждом втором моем проекте, где нужно делать различные эффекты на JavaScript, встречаются различные блоки, которые выдвигаются, выезжают или их нужно вытягивать мышкой. Эффекты такого рода очень просто получить с помощью продвинутых фреймверков, но темнемение на разработку таких маленьких скриптов в сумме уходит много времени. Во всяком случае мне было постоянно лень написать что-то универсальное до сегодняшнего момента, и в каждом проекте я делал эти минискрипты. Но т.к. время &#8211; деньги, а времени как и денег вечно не хватает &#8211; представляю вам первую версию моего плагина <strong>dynamicBlocks</strong>.
</p>
<h3>Пример динамических блоков:</h3>
<p><iframe frameborder="0" width="100%" height="160px" src="http://markup-javascript.com/examples/example014/dynamicBlock.html"></iframe></p>
<p>
Пример может работать немного некорректно в iframe (если двигая блок убрать мышку из области iframe). Нормальную работу вы можете посмотреть открыв <strong><a target="_blank" href="http://markup-javascript.com/examples/example014/dynamicBlock.html">пример в новом окне</a></strong>.<br />
<span id="more-479"></span></p>
<h3>Детальнее по плагину:</h3>
<p>
Пример хорошо демонстрирует возможности плагина и дополнительных объяснений функционала думаю не требуется. Исходя из этого приступим сразу к описанию параметров плагина и необходимого для работы html и css кода.
</p>
<h3>HTML/CSS</h3>
<p>
Т.к. по сути эффекты плагина очень просты, то код и стили к нему тоже будут элементарными. Основа всех выезжающих блоков это изменение таких параметров как left, right, bottom, top, margin-left, margin-right и т.п. Значит для эффекта нам нужен главный блок (родитель) для которого мы будем изменять эти параметры и элемент внутри него, который будет вызывать событие эффекта.
</p>
<h4>HTML код блоков в примере:</h4>
<div class="codecolorer-container html4strict twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;leftBlock&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;content&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Текстовое поле выдвигающегося блока...<br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;opener&quot;</span>&gt;</span><span style="color: #ddbb00;">&amp;gt;</span><span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;topBlock&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;content&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Текстовое поле выдвигающегося блока...<br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;opener&quot;</span>&gt;</span>Open<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></div></div>
<h4>CSS:</h4>
<div class="codecolorer-container css twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #cc00cc;">#leftBlock</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span><span style="color: #933;">-180px</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<span style="color: #cc00cc;">#topBlock</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">150px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span><span style="color: #933;">-130px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span><span style="color: #933;">215px</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></div>
<p>
Из стилей я выделил для вас только те, на которые стоит обратить внимание и то наиболее важными для плагина являются свойства top и left. Именно их плагин сделает начальным отсчетом, тоже самое было бы если вместо абсолютных координат я использовал бы margin. В примере margin используется в правом блоке.
</p>
<h4>JS:</h4>
<div class="codecolorer-container javascript twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery-1.3.2.min.js&quot;&gt;&lt;/script&gt;<br />
&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery.dynamicBlocks.js&quot;&gt;&lt;/script&gt;<br />
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#leftBlock'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">dynamicBlocks</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; opener<span style="color: #339933;">:</span><span style="color: #3366CC;">'a.opener'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; event<span style="color: #339933;">:</span><span style="color: #3366CC;">'move'</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#topBlock'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">dynamicBlocks</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; opener<span style="color: #339933;">:</span><span style="color: #3366CC;">'a.opener'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; changeStyle<span style="color: #339933;">:</span><span style="color: #3366CC;">'top'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; setParam<span style="color: #339933;">:</span><span style="color: #3366CC;">'0'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; event<span style="color: #339933;">:</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; duration<span style="color: #339933;">:</span><span style="color: #CC0000;">300</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></div>
<ul>
<li><strong>opener</strong> &#8211; селектор элемента при событии на котором выдвигается блок (default: &#8216;a&#8217;)</li>
<li><strong>changeStyle</strong> &#8211; стиль изменяемый у родительского блока (default: &#8216;left&#8217;)</li>
<li><strong>setParam</strong> &#8211; параметр стиля, до которого будет происходит изменение от начального, заданного в css (default: 0)</li>
<li><strong>event</strong> &#8211; событие при которым будет выдвигаться блок, событие &#8220;move&#8221; будет выдвигать блок при помощи мышки (default: &#8216;click&#8217;)</li>
<li><strong>duration</strong> &#8211; время анимации. На событие &#8220;move&#8221; не распространяется (default: 500)</li>
</ul>
<p>
На этом мое описание можно закончить, остаётся пожелать приятного использования. Если при использовании будут обнаружены баги пишите на мыло.
</p>
<h3 class="download"><a href="http://markup-javascript.com/examples/example014/dynamicBlock.rar">Скачать плагин</a></h3>
]]></content:encoded>
			<wfw:commentRss>http://markup-javascript.com/2009/06/21/dinamicheskie-bloki-na-jquery/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
