<?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>javascript &#8212; Nikita Spivak</title>
	<atom:link href="https://nikita-sp.com.ua/tag/javascript/feed" rel="self" type="application/rss+xml" />
	<link>https://nikita-sp.com.ua</link>
	<description>web developer&#039;s portfolio</description>
	<lastBuildDate>Tue, 26 Jan 2016 15:37:04 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>Как защитить контент сайта от копирования</title>
		<link>https://nikita-sp.com.ua/2015/11/kak-zashhitit-kontent-sayta-ot-kopirovaniya.html</link>
					<comments>https://nikita-sp.com.ua/2015/11/kak-zashhitit-kontent-sayta-ot-kopirovaniya.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Mon, 16 Nov 2015 08:00:07 +0000</pubDate>
				<category><![CDATA[Создание сайтов]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[создание сайтов]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=2817</guid>

					<description><![CDATA[Целью создания сайта зачастую является продвижение и продажа продукта или услуг и для создания качественного сайта и его продвижения необходим качественный контент: оригинальный и качественный текст и оригинальные изображения. Оригинальность контента &#8212; одно из основных правил при продвижении сайта. Однако оригинальность вашего сайта актуальна лишь первое время, т.к. ваши конкуренты узнают о вашем сайте и [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>Целью создания сайта</strong> зачастую <strong>является продвижение</strong> и продажа продукта или услуг и для <strong>создания качественного сайта</strong> и его продвижения <strong>необходим качественный контент</strong>: оригинальный и качественный текст и оригинальные изображения. Оригинальность контента &#8212; одно из основных правил при продвижении сайта.</p>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/11/how-toprotect-content-from-stealing.png" rel="lightbox[2817]" data-wpel-link="internal"><img fetchpriority="high" decoding="async" width="900" height="450" itemprop="image" class="aligncenter size-full wp-image-2827" src="http://nikita-sp.com.ua/wp-content/uploads/2015/11/how-toprotect-content-from-stealing.png" alt="Как защитить контент сайта от воровства" srcset="https://nikita-sp.com.ua/wp-content/uploads/2015/11/how-toprotect-content-from-stealing.png 900w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/how-toprotect-content-from-stealing-600x300.png 600w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/how-toprotect-content-from-stealing-150x75.png 150w" sizes="(max-width: 900px) 100vw, 900px" /></a></p>
<p>Однако оригинальность вашего сайта актуальна лишь первое время, т.к. ваши конкуренты узнают о вашем сайте и будут копировать ваш контент к себе на сайт или на сайты-мусорки (что еще хуже), тем самым понижая уникальность вашего сайта, понижая его в выдаче. Очень часто ко мне обращаются клиенты с вопросом <strong>как же защитить свои тексты и картинки на сайте</strong>, давайте же разберемся как это можно сделать.<span id="more-2817"></span></p>
<h2>Что такое защита контента сайта</h2>
<p>Большинство людей, которые сталкивались с вопросом защиты текстов и картинок сайта, считают, что для защиты контента достаточно <strong>отключить контекстное меню</strong> (кнопку правой мыши) и <strong>выделение текста на сайте</strong>, или добавлять к скопированному тексту ссылку на страницу откуда скопирован текст.</p>
<p>Но, к сожалению, <strong>все эти способы псевдозащиты абсолютно не защищают контент страницы вашего сайта</strong>, и только мешают и раздражают пользователей и разработчиков. Например, многие пользователи любят во время чтения статьи выделять текст который читают (как будто ведут пальцем по печатной странице), а разработчик не может посмотреть исходный код элемента.</p>
<p>Отключение контекстного меню и блокировка выделения текста обладают следующими недостатками:</p>
<ol>
<li>реализованы на JavaScript &#8212; отключите JS в браузере и вы сможете пользоваться контекстным меню и выделять текст;</li>
<li>код страницы все-равно доступен &#8212; горячие клавиши Ctrl+Shift+J в Chrome открывает консоль JS, где вы можете перейти на вкладку &#171;Elements&#187; и легко скопировать текст/сохранить изображение;</li>
<li>страницу можно сохранить к себе на компьютер со всем ее текстом и картинками Ctrl+S в помощь.</li>
</ol>
<p>Дело в том, что когда вы открываете любую страницу в интернете ее содержимое загружается на ваш компьютер, соответственно <strong><span style="text-decoration: underline;">в любом случае пользователь получает контент который вы ему предоставили на страницах вашего сайта</span></strong>. Казалось бы безвыходная ситуация, ведь все, что бы мы не предоставили пользователю может быть украдено.</p>
<p>Однако, безвыходных ситуаций не бывает, и для того чтобы понять, как защитить контент сайта, давайте разберемся с защитой информации в целом. Защита информации реализуется несколькими способами:</p>
<ul>
<li>запрет доступа &#8212; <em>доступ к информации полностью закрыт для сторонних пользователей</em>;</li>
<li>шифрование &#8212; <em>информация находится в открытом доступе, но она зашифрована, например при помощи ключа</em>;</li>
<li>частичный доступ &#8212; <em>пользователи могут ознакомиться только с определенной частью информации</em>.</li>
</ul>
<blockquote><p><em>(если какой-то пункт пропустил &#8212; пишите в комментариях)</em></p></blockquote>
<p>Поскольку сайт предназначен для просмотра неизвестными нам людьми, то второй вариант сразу отпадает, а так как страница загружается к пользователю на компьютер, то первый вариант тоже не подходит &#8212; мы не можем просто запретить доступ к изображению например &#8212; тогда оно не откроется у пользователя и в теле страницы.</p>
<h2>Защита текста на сайте</h2>
<p>К сожалению, защитить текст на сайте, на сколько я знаю, практически невозможно, и если вы обладаете обратной информацией буду рад если вы поделитесь ею. Как я и говорил ранее, страница загружается к пользователю на компьютер и текст с ней. Единственный вариант защитить текст от копирования &#8212; выкладывать его в виде изображений, однако тогда в нем не будет никакого смысла, т.к. поисковый робот не сможет его проиндексировать и будет видеть картинку.</p>
<p>В виду этого, поисковые системы Google и Яндекс пытаются решить проблему определения авторских прав и предлагают по два решения.</p>
<h3>Быстрое добавление страниц</h3>
<p>Вы можете указать поисковой системе на то что добавили новую страницу, чтобы ускорить индексацию текста на ней. Сделать это можно по следующим ссылкам:</p>
<ul>
<li><a href="https://www.google.com/webmasters/tools/submit-url?hl=ru" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="ext-link wpel-icon-right">Google Search Console<span class="wpel-icon wpel-image wpel-icon-6"></span></a>;</li>
<li><a href="https://webmaster.yandex.ua/addurl.xml" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="ext-link wpel-icon-right">Яндекс.Вебмастер<span class="wpel-icon wpel-image wpel-icon-6"></span></a>;</li>
</ul>
<p>и вот как это выглядит:</p>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-add-to-google.jpg" rel="lightbox[2817]" data-wpel-link="internal"><img decoding="async" width="600" height="311" itemprop="image" class="aligncenter size-medium wp-image-2832" src="http://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-add-to-google-600x311.jpg" alt="Сохранить текст от воровства путем добавления страницы в индекс Google" srcset="https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-add-to-google-600x311.jpg 600w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-add-to-google-960x498.jpg 960w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-add-to-google-150x78.jpg 150w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-add-to-google.jpg 1100w" sizes="(max-width: 600px) 100vw, 600px" /></a></p>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-add-to-yandex.jpg" rel="lightbox[2817]" data-wpel-link="internal"><img decoding="async" width="600" height="396" itemprop="image" class="aligncenter size-medium wp-image-2833" src="http://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-add-to-yandex-600x396.jpg" alt="Сохранить текст от воровства путем добавления страницы в индекс Яндекс" srcset="https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-add-to-yandex-600x396.jpg 600w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-add-to-yandex-150x99.jpg 150w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-add-to-yandex.jpg 897w" sizes="(max-width: 600px) 100vw, 600px" /></a></p>
<h3>Указание авторства для Google</h3>
<p><img loading="lazy" decoding="async" width="597" height="201" itemprop="image" class="aligncenter size-full wp-image-2838" src="http://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-google.jpg" alt="Сохранить текст от воровства путем добавления тега с указанием авторства Google+" srcset="https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-google.jpg 597w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-google-150x51.jpg 150w" sizes="auto, (max-width: 597px) 100vw, 597px" /></p>
<p>Поисковая система Google также предлагает подтверждать авторство контента страниц при помощи специальных тегов:</p>
<ul>
<li>&lt;meta <span class="html-attribute-name">name</span>=&#187;<span class="html-attribute-value">author</span>&#187; <span class="html-attribute-name">content</span>=&#187;<span class="html-attribute-value">Nikita Spivak</span>&#171;&gt;</li>
<li>&lt;link <span class="html-attribute-name">rel</span>=&#187;<span class="html-attribute-value">author</span>&#187; <span class="html-attribute-name">href</span>=&#187;<a class="html-attribute-value html-resource-link ext-link wpel-icon-right" href="https://plus.google.com/u/0/+NikitaSp_ua" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer">https://plus.google.com/u/0/+NikitaSp_ua<span class="wpel-icon wpel-image wpel-icon-6"></span></a>&#171;/&gt;</li>
<li>&lt;link <span class="html-attribute-name">rel</span>=&#187;<span class="html-attribute-value">publisher</span>&#187; <span class="html-attribute-name">href</span>=&#187;<a class="html-attribute-value html-resource-link ext-link wpel-icon-right" href="https://plus.google.com/u/0/+NikitaSp_ua" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer">https://plus.google.com/u/0/+NikitaSp_ua<span class="wpel-icon wpel-image wpel-icon-6"></span></a>&#171;/&gt;</li>
</ul>
<p>Бытует мнение что первый тег уже не актуален, но я пока продолжаю его использовать. Author-тег указывает на ссылку страницы автора в Google+, а publisher &#8212; это непосредственно страница самого издательства (бизнес-страница), в моем случае, это одна и та же страница.</p>
<h3>Добавление оригинальных текстов в Яндекс</h3>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-yandex.jpg" rel="lightbox[2817]" data-wpel-link="internal"><img loading="lazy" decoding="async" width="600" height="493" itemprop="image" class="aligncenter size-medium wp-image-2836" src="http://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-yandex-600x493.jpg" alt="Сохранить текст от воровства путем добавления всех новых текстов в сервис Оригинальные тексты в Яндекс.Вебмастер" srcset="https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-yandex-600x493.jpg 600w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-yandex-960x788.jpg 960w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-yandex-150x123.jpg 150w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-yandex.jpg 1139w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></p>
<p>Обязательно добавьте свой ресурс в систему <a href="http://webmaster.yandex.ru/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="ext-link wpel-icon-right">Яндекс.Вебмастер<span class="wpel-icon wpel-image wpel-icon-6"></span></a> и подключите в разделе &#171;Содержимое сайта&#187; сервис &#171;Оригинальные тексты&#187;.</p>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-yandex-2.jpg" rel="lightbox[2817]" data-wpel-link="internal"><img loading="lazy" decoding="async" width="600" height="494" itemprop="image" class="aligncenter size-medium wp-image-2837" src="http://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-yandex-2-600x494.jpg" alt="Сохранить текст от воровства путем добавления всех новых текстов в сервис Оригинальные тексты в Яндекс.Вебмастер" srcset="https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-yandex-2-600x494.jpg 600w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-yandex-2-960x790.jpg 960w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-yandex-2-150x123.jpg 150w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/save-text-from-slealing-from-website-yandex-2.jpg 1130w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></p>
<h3>Кросспостинг как метод защиты текста</h3>
<p>Кросспостинг — умышленное автоматическое, полуавтоматическое или ручное помещение одной и той же статьи, ссылки или темы, в форумы, блоги, либо иной формы сайты или публичные переписки, в том числе и в режиме онлайнового общения (<a href="https://ru.wikipedia.org/wiki/Кросспостинг" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="ext-link wpel-icon-right">подробнее на Вики<span class="wpel-icon wpel-image wpel-icon-6"></span></a>).</p>
<p>Как это помогает защитить текст? Вероятность того, что поисковые системы проиндексируют быстрее социальную сеть или другой огромный ресурс, где вы будете размещать ссылки на страницы своего сайта, чем ваш собственный сайт &#8212; больше, да и указание даты и времени будет подтверждением вашего авторства.</p>
<h2>Защита изображений на сайте</h2>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/11/image-thief.jpg" rel="lightbox[2817]" data-wpel-link="internal"><img loading="lazy" decoding="async" width="398" height="402" itemprop="image" class="aligncenter size-full wp-image-2830" src="http://nikita-sp.com.ua/wp-content/uploads/2015/11/image-thief.jpg" alt="Воровство изображений с сайта" ></a></p>
<p>Что касается защиты изображений на страницах сайта, то тут ситуация немного проще ввиду наличия водяных знаков, которые можно наложить на изображения. Однако не все так просто как может на первый взгляд показаться:</p>
<ul>
<li>некоторые типы водяных знаков можно безболезненно удалить;</li>
<li>при наложении водяных знаков сохраняется доступность оригиналов;</li>
</ul>
<p>поэтому при реализации функционала наложения водяного знака на изображение будьте внимательны и попробуйте выступить в роли злоумышленника чтобы выявить как можно больше слабых мест в функционале с целью их дальнейшего устранения.</p>
<p>Накладывайте сложные водяные знаки, ведь простой можно обрезать, удалить, перекрыть своим водяным знаком. Пример слабого водяного знака и как можно <strong>удалить такой водяной знак с изображения</strong> я описывал в статье &#171;<a href="http://nikita-sp.com.ua/2015/11/vodyanyie-znaki-na-izobrazheniyah-i-kak-udalit-prostoy-vodyanoy-znak.html" data-wpel-link="internal">Водяные знаки на изображениях и как удалить простой водяной знак</a>&#171;.</p>
<p>В случае, если вы загружаете оригинал изображения на сервер и водяной знак накладывается автоматически, при этом копия оригинального изображения сохраняется &#8212; убедитесь что директория, в которой хранятся оригиналы изображений не доступна для пользователей.</p>
<p>Например в CMS OpenCart изображения хранятся в корневой папке <em>image</em>, которая содержит два каталога:</p>
<ul>
<li>cache;</li>
<li>data.</li>
</ul>
<p>В директории <em>data</em> хранятся оригиналы изображений, которые прикреплены к продуктам интернет магазина, а в папке <em>cache</em> находятся копии этих изображений, уменьшенных до используемого на сайте размера и с водяным знаком. При этом файловая структура в директории <em>cache</em> полностью повторяет структуру папки <em>data</em>, а файлы имеют те же названия, что позволяет злоумышленнику скопировать адрес изображения с водяным знаком, например:</p>
<p><em>http://example.com/image/<strong>cache</strong>/data/catalog/product-<strong>300&#215;800</strong>.jpg</em></p>
<p>и обратиться по адресу:</p>
<p><em>http://example.com/image/data/catalog/product.jpg</em></p>
<p>Поэтому необходимо закрывать доступ к директории с оригинальными файлами, или при создании копии с водяным знаком генерировать случайное название файла, чтобы предотвратить возможность обращения к оригиналам изображений с целью дальнейшего использования на сторонних ресурсах.</p>
<p>Надеюсь данная статья поможет вам защитить ваш контент от копирования, а сайт от падения в выдачах поисковых систем. Если вы знаете еще какие-либо способы защиты контента от его копирования &#8212; пишите в комментариях.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2015/11/kak-zashhitit-kontent-sayta-ot-kopirovaniya.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Кроссбраузерный GrayScale с поддержкой Internet Explorer 10/11</title>
		<link>https://nikita-sp.com.ua/2015/11/krossbrauzernyiy-grayscale-s-podderzhkoy-internet-explorer-10-11.html</link>
					<comments>https://nikita-sp.com.ua/2015/11/krossbrauzernyiy-grayscale-s-podderzhkoy-internet-explorer-10-11.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Sun, 08 Nov 2015 09:00:17 +0000</pubDate>
				<category><![CDATA[Вёрстка]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=2686</guid>

					<description><![CDATA[Одной из основных задач при создании сайта является проверка корректного отображения страниц сайта во всех браузерах &#8212; проверка кроссбраузерности сайта. Еще совсем недавно почти каждый браузер имел свою платформу и в связи с этим необходимо было очень тщательно проверять каждую страницу сайта, т.к. каждая платформа имела свои особенности. Но в последние годы, все основные браузеры мигрировали [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Одной из основных задач при создании сайта является проверка корректного отображения страниц сайта во всех браузерах &#8212; проверка кроссбраузерности сайта. Еще совсем недавно почти каждый браузер имел свою платформу и в связи с этим необходимо было очень тщательно проверять каждую страницу сайта, т.к. каждая платформа имела свои особенности.</p>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/11/grayscale-image-internet-explorer-10-11.jpg" rel="lightbox[2686]" data-wpel-link="internal"><img loading="lazy" decoding="async" width="960" height="363" itemprop="image" class="aligncenter wp-image-2797 size-large" src="http://nikita-sp.com.ua/wp-content/uploads/2015/11/grayscale-image-internet-explorer-10-11-960x363.jpg" alt="Обесцвечивание картинок Internet Explorer 10-11" srcset="https://nikita-sp.com.ua/wp-content/uploads/2015/11/grayscale-image-internet-explorer-10-11-960x363.jpg 960w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/grayscale-image-internet-explorer-10-11-600x227.jpg 600w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/grayscale-image-internet-explorer-10-11-150x57.jpg 150w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/grayscale-image-internet-explorer-10-11.jpg 1476w" sizes="auto, (max-width: 960px) 100vw, 960px" /></a></p>
<p>Но в последние годы, все основные браузеры мигрировали на <a href="https://ru.wikipedia.org/wiki/WebKit" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="ext-link wpel-icon-right">платформу WebKit<span class="wpel-icon wpel-image wpel-icon-6"></span></a>, что упростило разработку кроссбраузерных сайтов, однако компания Microsoft старается выделиться и выпускает Internet Explorer на платформе Trident вплоть до последней, 11-ой версии всеми горячо любимого браузера. Но на этом MS решили не останавливаться, и сделать жизнь разработчиков еще разнообразнее и насыщенней, путем удаления фильтров из IE 10 и 11 версий, что повлекло сложности, в том числе и с обесцвечиванием картинок с помощью CSS, методом наложения Grayscale фильтра.<span id="more-2686"></span></p>
<p>И поскольку, как уже было написано выше, в Internet Explorer начиная с версии 10 были <a href="http://blogs.msdn.com/b/ie/archive/2012/06/04/legacy-dx-filters-removed-from-ie10-release-preview.aspx" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="ext-link wpel-icon-right">отключены DX Filters<span class="wpel-icon wpel-image wpel-icon-6"></span></a>, то необходимо искать другое альтернативное решение. Одним из таких решений является наложение SVG слоя (<a href="http://jsfiddle.net/KatieK/qhU7d/2/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="ext-link wpel-icon-right">jsFiddle<span class="wpel-icon wpel-image wpel-icon-6"></span></a>):</p>
<pre class="brush: css; title: Код:; notranslate">
img.grayscale:hover {
	filter: url(&quot;data:image/svg+xml;utf8,&lt;svg xmlns=\'http://www.w3.org/2000/svg\'&gt;&lt;filter id=\'grayscale\'&gt;&lt;feColorMatrix type=\'matrix\' values=\'1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0\'/&gt;&lt;/filter&gt;&lt;/svg&gt;#grayscale&quot;);
}

svg {
	background:url(http://4.bp.blogspot.com/-IzPWLqY4gJ0/T01CPzNb1KI/AAAAAAAACgA/_8uyj68QhFE/s400/a2cf7051-5952-4b39-aca3-4481976cb242.jpg);
}
</pre>
<p>Но данное решение предполагает добавление дополнительных элементов в HTML и в рамках работы над проектом это было не самым хорошим решением, т.к. элементами для обесцвечивания были блок-ссылки с фоном, поэтому я прибег к старому доброму трюку с двумя изображениями:</p>
<ul>
<li>оригинальное изображение;</li>
<li>предварительно обесцвеченное изображение;</li>
</ul>
<p>Таким образом достигается эффект 100% работоспособности в браузерах Internet Explorer без громоздкого кода и костылей. Обращаю внимание на то, что данный метод используется только в случае если пользователь использует IE, а для остальных браузеров будет применено просто CSS правило:</p>
<pre class="brush: css; title: Код:; notranslate">

.directions .direction a.open-modal{
	-webkit-filter: grayscale(100%);
	-moz-filter: grayscale(100%);
	-ms-filter: grayscale(100%);
	-o-filter: grayscale(100%);
	filter: grayscale(100%);
	filter: grayscale(1); /* Firefox 4+ */
	filter: gray; /* IE 6-9 */
}

</pre>
<p>Принцип работы скрипта достаточно прост и элегантен (требует подключенную библиотеку jQuery):</p>
<ol>
<li>размещаем несколько блок-ссылок с фоном;</li>
<li>загружаем оригиналы и обесцвеченные копии изображений в одну директорию, где у обесцвеченных копий имя файла формируется по принципу &#171;название&#187;-grey, например: <em>original-name<strong>-grey</strong>.jpg;</em></li>
<li>прописываем соответствующий CSS-код для позиционирования изображения (а также его размеров).</li>
</ol>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/11/grayscaled-image-for-ie.jpg" rel="lightbox[2686]" data-wpel-link="internal"><img loading="lazy" decoding="async" width="960" height="603" itemprop="image" class="aligncenter size-large wp-image-2801" src="http://nikita-sp.com.ua/wp-content/uploads/2015/11/grayscaled-image-for-ie-960x603.jpg" alt="Дополнительный элемента обесцвеченного изображения в Internet Explorer" srcset="https://nikita-sp.com.ua/wp-content/uploads/2015/11/grayscaled-image-for-ie-960x603.jpg 960w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/grayscaled-image-for-ie-600x377.jpg 600w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/grayscaled-image-for-ie-150x94.jpg 150w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/grayscaled-image-for-ie.jpg 1398w" sizes="auto, (max-width: 960px) 100vw, 960px" /></a></p>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/11/no-grayscaled-image.jpg" rel="lightbox[2686]" data-wpel-link="internal"><img loading="lazy" decoding="async" width="960" height="668" itemprop="image" class="aligncenter size-large wp-image-2800" src="http://nikita-sp.com.ua/wp-content/uploads/2015/11/no-grayscaled-image-960x668.jpg" alt="Нет дополнительного элемента обесцвеченного изображения в других браузерах" srcset="https://nikita-sp.com.ua/wp-content/uploads/2015/11/no-grayscaled-image-960x668.jpg 960w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/no-grayscaled-image-600x417.jpg 600w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/no-grayscaled-image-150x104.jpg 150w, https://nikita-sp.com.ua/wp-content/uploads/2015/11/no-grayscaled-image.jpg 1353w" sizes="auto, (max-width: 960px) 100vw, 960px" /></a></p>
<p>Теперь, если вы откроете страницу с помощью Internet Explorer 10-11, то вы увидите, что добавляется элемент IMG в блок-ссылку, который перекрывает фон родительского элемента, и исчезает (fadeOut) при наведении на блок.</p>
<p style="text-align: center;"><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/11/grascale-in-ie-11/" target="_blank" data-wpel-link="internal">Посмотреть в живую</a> | <a href="http://nikita-sp.com.ua/wp-content/uploads/2015/11/grascale-in-ie-11.zip" data-wpel-link="internal">Скачать демо</a></p>
<p>Подводя итог хочется сказать что остается загадкой для чего Microsoft отключила по-умолчанию фильтры в своем браузере, когда IE только их начал поддерживать, но видимо на это были свои причины. Надеюсь данная статья вам помогла и вы уже поставили лайк и подписались на паблики. Желаю вам поменьше Клиентов-пользователей IE.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2015/11/krossbrauzernyiy-grayscale-s-podderzhkoy-internet-explorer-10-11.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Локализация атрибутов при помощи l20n</title>
		<link>https://nikita-sp.com.ua/2015/06/lokalizatsiya-atributov-pri-pomoshhi-l20n.html</link>
					<comments>https://nikita-sp.com.ua/2015/06/lokalizatsiya-atributov-pri-pomoshhi-l20n.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Tue, 23 Jun 2015 06:30:11 +0000</pubDate>
				<category><![CDATA[Статьи о JavaScript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[модули и плагины]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=2379</guid>

					<description><![CDATA[В прошлый раз мы познакомились с фреймворком l20n, который позволяет добавить на ваш сайт локализацию при помощи JavaScript. Однако, в некоторых случаях, как показал опыт, необходима локализация не только текста внутри HTML-элементов (тегов), но и их атрибутов. Дело в том что при локализации сайта, в некоторых случаях, приходится использовать, например, разные классы стилей оформления для [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>В прошлый раз мы <a href="http://nikita-sp.com.ua/2015/06/lokalizatsiya-sayta-na-javascript-l20n.html" target="_blank" data-wpel-link="internal">познакомились с фреймворком l20n</a>, который позволяет <a href="http://nikita-sp.com.ua/2015/06/lokalizatsiya-sayta-na-javascript-l20n.html" target="_blank" data-wpel-link="internal">добавить на ваш сайт локализацию при помощи JavaScript</a>. Однако, в некоторых случаях, как показал опыт, необходима локализация не только текста внутри HTML-элементов (тегов), но и их атрибутов.</p>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/04/l20n-adding-tags-and-attributes.jpg" rel="lightbox[2379]" data-wpel-link="internal"><img loading="lazy" decoding="async" width="600" height="280" itemprop="image" class="aligncenter size-medium wp-image-2451" src="http://nikita-sp.com.ua/wp-content/uploads/2015/04/l20n-adding-tags-and-attributes-600x280.jpg" alt="Добавление тегов и атрибутов в L20N" srcset="https://nikita-sp.com.ua/wp-content/uploads/2015/04/l20n-adding-tags-and-attributes-600x280.jpg 600w, https://nikita-sp.com.ua/wp-content/uploads/2015/04/l20n-adding-tags-and-attributes-150x70.jpg 150w, https://nikita-sp.com.ua/wp-content/uploads/2015/04/l20n-adding-tags-and-attributes.jpg 726w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></p>
<p>Дело в том что при локализации сайта, в некоторых случаях, приходится использовать, например, разные классы стилей оформления для разных языков сайта. Ярким примером такой необходимости является использование изображений, содержащих текст на разных языках, в качестве фона элемента.<span id="more-2379"></span></p>
<p>Итак, для решения проблемы локализации любого атрибута с помощью JavaScript фреймворка l20n, нам необходимо открыть сам файл скрипта и найти следующие строки:</p>
<pre class="brush: jscript; title: Код:; notranslate">
z = {
    elements: [&quot;a&quot;, &quot;em&quot;, &quot;strong&quot;, &quot;small&quot;, &quot;s&quot;, &quot;cite&quot;, &quot;q&quot;, &quot;dfn&quot;, &quot;abbr&quot;, &quot;data&quot;, &quot;time&quot;, &quot;code&quot;, &quot;var&quot;, &quot;samp&quot;, &quot;kbd&quot;, &quot;sub&quot;, &quot;sup&quot;, &quot;i&quot;, &quot;b&quot;, &quot;u&quot;, &quot;mark&quot;, &quot;ruby&quot;, &quot;rt&quot;, &quot;rp&quot;, &quot;bdi&quot;, &quot;bdo&quot;, &quot;span&quot;, &quot;br&quot;, &quot;wbr&quot;],
    attributes: {
        global: [&quot;title&quot;, &quot;aria-label&quot;],
        a: [&quot;download&quot;],
        area: [&quot;download&quot;, &quot;alt&quot;],
        input: [&quot;alt&quot;, &quot;placeholder&quot;],
        menuitem: [&quot;label&quot;],
        menu: [&quot;label&quot;],
        optgroup: [&quot;label&quot;],
        option: [&quot;label&quot;],
        track: [&quot;label&quot;],
        img: [&quot;alt&quot;],
        textarea: [&quot;placeholder&quot;],
        th: [&quot;abbr&quot;]
    }
}
</pre>
<p><span style="color: #ff0000;">Обратите внимание:</span> в данной статье приводится не минифицированный кусок кода, поэтому при поиске по файлу лучше пользоваться просто тегами или атрибутами. Например: &#171;placeholder&#187;, &#171;small&#187; и т.д.</p>
<p>В данном объекте (<em>z</em>) определяются все возможные элементы для локализации их скриптом, а также доступные для обработки атрибуты. Если вам необходимо добавить элемент для локализации, которого нет в списке, достаточно добавить его в массив <em>elements</em> объекта <em>z</em>. Пример добавления элемента для локализации:</p>
<pre class="brush: jscript; title: Код:; notranslate">
z = {
    elements: [&quot;a&quot;, &quot;em&quot;, &quot;strong&quot;, &quot;small&quot;, &quot;s&quot;, &quot;cite&quot;, &quot;q&quot;, &quot;dfn&quot;, &quot;abbr&quot;, &quot;data&quot;, &quot;time&quot;, &quot;code&quot;, &quot;var&quot;, &quot;samp&quot;, &quot;kbd&quot;, &quot;sub&quot;, &quot;sup&quot;, &quot;i&quot;, &quot;b&quot;, &quot;u&quot;, &quot;mark&quot;, &quot;ruby&quot;, &quot;rt&quot;, &quot;rp&quot;, &quot;bdi&quot;, &quot;bdo&quot;, &quot;span&quot;, &quot;br&quot;, &quot;wbr&quot;, &quot;YOUR_ELEMENT&quot;],
    attributes: {
        global: [&quot;title&quot;, &quot;aria-label&quot;],
        a: [&quot;download&quot;],
        area: [&quot;download&quot;, &quot;alt&quot;],
        input: [&quot;alt&quot;, &quot;placeholder&quot;],
        menuitem: [&quot;label&quot;],
        menu: [&quot;label&quot;],
        optgroup: [&quot;label&quot;],
        option: [&quot;label&quot;],
        track: [&quot;label&quot;],
        img: [&quot;alt&quot;],
        textarea: [&quot;placeholder&quot;],
        th: [&quot;abbr&quot;]
    }
}
</pre>
<p>Добавление атрибута, если его необходимо локализовать для всех элементов, производится в массив <em>global</em> объекта <em>attributes</em> объекта <em>z</em>, если же вы хотите локализовать атрибут только в определенных элементах, то можете добавить новый массив в attributes, именем которого будет имя тега для локализации, а значением выступает массив имен атрибутов для локализации.</p>
<p>Пример добавления общего атрибута для локализации (атрибут будет локализован для всех элементов страницы):</p>
<pre class="brush: jscript; title: Код:; notranslate">
z = {
    elements: [&quot;a&quot;, &quot;em&quot;, &quot;strong&quot;, &quot;small&quot;, &quot;s&quot;, &quot;cite&quot;, &quot;q&quot;, &quot;dfn&quot;, &quot;abbr&quot;, &quot;data&quot;, &quot;time&quot;, &quot;code&quot;, &quot;var&quot;, &quot;samp&quot;, &quot;kbd&quot;, &quot;sub&quot;, &quot;sup&quot;, &quot;i&quot;, &quot;b&quot;, &quot;u&quot;, &quot;mark&quot;, &quot;ruby&quot;, &quot;rt&quot;, &quot;rp&quot;, &quot;bdi&quot;, &quot;bdo&quot;, &quot;span&quot;, &quot;br&quot;, &quot;wbr&quot;],
    attributes: {
        global: [&quot;title&quot;, &quot;aria-label&quot;, &quot;class&quot;],
        a: [&quot;download&quot;],
        area: [&quot;download&quot;, &quot;alt&quot;],
        input: [&quot;alt&quot;, &quot;placeholder&quot;],
        menuitem: [&quot;label&quot;],
        menu: [&quot;label&quot;],
        optgroup: [&quot;label&quot;],
        option: [&quot;label&quot;],
        track: [&quot;label&quot;],
        img: [&quot;alt&quot;],
        textarea: [&quot;placeholder&quot;],
        th: [&quot;abbr&quot;]
    }
}
</pre>
<p>Пример добавления локализации атрибута для определенного элемента (атрибут будет локализован только для указанного элемента):</p>
<pre class="brush: jscript; title: Код:; notranslate">
z = {
    elements: [&quot;a&quot;, &quot;em&quot;, &quot;strong&quot;, &quot;small&quot;, &quot;s&quot;, &quot;cite&quot;, &quot;q&quot;, &quot;dfn&quot;, &quot;abbr&quot;, &quot;data&quot;, &quot;time&quot;, &quot;code&quot;, &quot;var&quot;, &quot;samp&quot;, &quot;kbd&quot;, &quot;sub&quot;, &quot;sup&quot;, &quot;i&quot;, &quot;b&quot;, &quot;u&quot;, &quot;mark&quot;, &quot;ruby&quot;, &quot;rt&quot;, &quot;rp&quot;, &quot;bdi&quot;, &quot;bdo&quot;, &quot;span&quot;, &quot;br&quot;, &quot;wbr&quot;],
    attributes: {
        global: [&quot;title&quot;, &quot;aria-label&quot;],
        a: [&quot;download&quot;],
        area: [&quot;download&quot;, &quot;alt&quot;],
        input: [&quot;alt&quot;, &quot;placeholder&quot;],
        menuitem: [&quot;label&quot;],
        menu: [&quot;label&quot;],
        optgroup: [&quot;label&quot;],
        option: [&quot;label&quot;],
        track: [&quot;label&quot;],
        img: [&quot;alt&quot;],
        textarea: [&quot;placeholder&quot;],
        th: [&quot;abbr&quot;],
        your_element: [&quot;param1&quot;, &quot;param2&quot;, &quot;etc&quot;]
    }
}
</pre>
<p>Вот таким простым образом вы можете модифицировать <a href="http://nikita-sp.com.ua/2015/06/lokalizatsiya-sayta-na-javascript-l20n.html" target="_blank" data-wpel-link="internal">фреймворк l20n для локализации сайта на JavaScript</a>. Данное решение было найдено в достаточно поспешном темпе, и если вы знакомы более красивым и лаконичным решением (без редактирования файла фрейморка), буду рад если поделитесь им в комментариях.</p>
<p><strong>UPD:</strong> после того как мы добавили необходимые атрибуты в список разрешенных, их необходимо локализовать в файле локализации. Локализация атрибутов производится следующим образом в файле локализации:</p>
<pre class="brush: jscript; title: Код:; notranslate">
&lt;testimg alt:&quot;Тестовый альт&quot; title:&quot;Тестовый заголовок&quot;&gt;
&lt;testp &quot;Текст для параграфа&quot; class:&quot;Локализованный класс&quot;&gt;
</pre>
<p>А в файле html будет выглядеть так:</p>
<pre class="brush: xml; title: Код:; notranslate">
&lt;img src=&quot;image.png&quot; alt=&quot;Test alt&quot; title=&quot;Test title&quot; data-l10n-id=&quot;testimg&quot;&gt;
&lt;p class=&quot;localized class&quot; data-l10n-id=&quot;testp&gt;Text for the paragraph&lt;/p&gt;
</pre>
<p>Спасибо пользователям, которые указали на недостаток в статье по локализации атрибутов. По какой-то причине, на момент написания статьи, я счел это очевидным. <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2015/06/lokalizatsiya-atributov-pri-pomoshhi-l20n.html/feed</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Локализация сайта на JavaScript l20n</title>
		<link>https://nikita-sp.com.ua/2015/06/lokalizatsiya-sayta-na-javascript-l20n.html</link>
					<comments>https://nikita-sp.com.ua/2015/06/lokalizatsiya-sayta-na-javascript-l20n.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Sat, 13 Jun 2015 17:40:15 +0000</pubDate>
				<category><![CDATA[Статьи о JavaScript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[интересно]]></category>
		<category><![CDATA[создание сайтов]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=2377</guid>

					<description><![CDATA[В первую очередь, сайт является лицом компании, публичного деятеля или любой другой личности. Целью создания сайта является расширение аудитории покупателей или пользователей услуги, представляемой на сайте, поэтому представление информации на сайте на разных языках является неотъемлимой частью для международного бизнеса. Как правило, сайты с несколькими яыками &#8212; это крупные порталы или небольшие сайты-визитки, направленные на представление [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>В первую очередь, сайт является лицом компании, публичного деятеля или любой другой личности. Целью создания сайта является расширение аудитории покупателей или пользователей услуги, представляемой на сайте, поэтому представление информации на сайте на разных языках является неотъемлимой частью для международного бизнеса.</p>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/04/l20n-thumb-726x350.jpg" rel="lightbox[2377]" data-wpel-link="internal"><img loading="lazy" decoding="async" width="600" height="280" itemprop="image" class="aligncenter size-medium wp-image-2433" src="http://nikita-sp.com.ua/wp-content/uploads/2015/04/l20n-thumb-726x350-600x280.jpg" alt="Локализация сайта при помощи l20n" srcset="https://nikita-sp.com.ua/wp-content/uploads/2015/04/l20n-thumb-726x350-600x280.jpg 600w, https://nikita-sp.com.ua/wp-content/uploads/2015/04/l20n-thumb-726x350-150x70.jpg 150w, https://nikita-sp.com.ua/wp-content/uploads/2015/04/l20n-thumb-726x350.jpg 726w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></p>
<p>Как правило, сайты с несколькими яыками &#8212; это крупные порталы или небольшие сайты-визитки, направленные на представление информации пользователям нескольких стран. Создание нескольких языковых версий для сайтов местного масштаба (городского, областного, масштаба страны) является абсолютно не обоснованной затратой средств и времени.<span id="more-2377"></span></p>
<p>Сегодня мы рассмотрим один из вариантов создания мультиязычного сайта при помощи JavaScript библиотеки l20n. Данная библиотека позволяет создать мультиязычный сайт используя всего несколько файлов для локализации и собственно саму библиотеку.</p>
<h2>Как локализовать сайт с помощью JavaScript</h2>
<p>Для локлизации сайта с помощью JavaScript можно использовать библиотеку l20n. Структура файлов данного фреймворка достаточно проста: файл, который необходимо локализовать с подключенным файлом скрипта l20n.js и папка с локализациями. Данный фреймворк от компании Mozilla распространяется бесплатно, и вы можете с ним ознакомится по ссылке <a href="http://l20n.org/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="ext-link wpel-icon-right">http://l20n.org/<span class="wpel-icon wpel-image wpel-icon-6"></span></a>.</p>
<p>Бибилиотека позволяет не только локализировать ваш сайт, но и сама определяет, какой язык показать пользователю, на основании его настроек на устройстве, с которого произведено посещение.</p>
<p>Интегрировать скрипт в вашу страничку достаточно просто:</p>
<ol>
<li>скачайте библиотеку по ссылке выше;</li>
<li>подключите его в файле, который необходимо локализовать;</li>
<li>разметьте соответствующим образом файл, который необходимо локализовать;</li>
<li>создайте файлы локализации.</li>
</ol>
<p>Вы можете <a href="http://nikita-sp.com.ua/wp-content/uploads/2015/04/www.zip" data-wpel-link="internal">скачать простой пример локализации</a> странички при помощи фреймворка l20n от Mozilla для трех языков: английский, русский, французский. Данный пример покажет вам наглядно как работает данная библиотека. Внимание: вам необходимо запускать демо на сервере/локальном сервере &#8212; при обычном открытии файла index.html браузер выдаст ошибку: <span style="color: #ff0000;"><em>XMLHttpRequest cannot load file:///<strong>YOUR_PATH</strong>/www/locales/browser.json. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.</em></span></p>
<p>Данный фреймворк очень удобный для создания небольших мультиязычных сайтов, т.к. реализация мультиязычности для крупных проектов зачастую реализуется с помощью PHP, т.к. локализация на JavaScript имеет ряд определенных положительных и негативных характеристик.</p>
<h2>Положительные и негативные стороны локализации JavaScript</h2>
<p>Одним из преимуществ такой локализации является полное ограждение разработчика от проблем перевода, а также относительно быстрая интеграция в проект &#8212; достаточно лишь создать необходимый файл локализации и прописать места где необходимо использовать подстановку строк из локализационного файла.</p>
<p>Однако, присутствуют и негативные стороны использования JavaScript как средства для локализации вашего сайта, такие как:</p>
<ol>
<li>По умолчанию, разработчики l20n предлагают оставлять теги для подстановки локализованных строк пустыми, что чревато понижением в поисковой выдаче, т.к. робот не видит текста на вашем сайте, т.к. поисковый робот парсит вашу страницу без JavaScript! Этот огромный недостаток можно с легкостью исправить, просто заполнив теги предпочтительным, преобладающим языком на вашем сайте, как это сделано в примере.</li>
<li>Поисковая система не сможет проиндексировать разные версии сайта, и будет видеть только одну версию &#8212; версию, которую вы указали в предыдущем пункте. Если реализовать локализацию на php, то можно создать для поисковой системы отдельные каталоги с разными локализациями.</li>
<li>На мой взгляд такая реализация мультиязычности не подойдет для больших порталов и крупных сайтов, т.к. она достаточно проста и не функциональна. Необходимо будет прописывать текст для каждой странички отдельно, т.е. такая конструкция позволительна исключительно для сайтов, состоящих из нескольких страниц.</li>
</ol>
<p>Несмотря на все недостатки данного фреймворка, я тем не менее рекомендую с ним ознакомиться, и использовать в небольших проектах, например лендинг пейдж, промо и т.п. страницах.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2015/06/lokalizatsiya-sayta-na-javascript-l20n.html/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Selection Slider &#8212; jQuery плагин слайдера с секциями для выбора</title>
		<link>https://nikita-sp.com.ua/2015/05/selection-slider-jquery-plugin-sections-to-select-items.html</link>
					<comments>https://nikita-sp.com.ua/2015/05/selection-slider-jquery-plugin-sections-to-select-items.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Sat, 09 May 2015 15:50:25 +0000</pubDate>
				<category><![CDATA[Плагины и модули]]></category>
		<category><![CDATA[Статьи о JavaScript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[создание сайтов]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=2402</guid>

					<description><![CDATA[Несмотря на обилие плагинов слайдшоу и слайдеров написанных под популярный фреймворк jQuery, столкнувшись с задачей, где необходимо было создать слайдшоу, состоящее из нескольких частей, я не смог найти ничего стоящего. Одним из вариантов решения задачи является использование нескольких объектов одного слайдшоу в одном блоке, но данная конструкция не всегда может быть надежной и не везде [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Несмотря на обилие плагинов слайдшоу и слайдеров написанных под популярный фреймворк jQuery, столкнувшись с задачей, где необходимо было создать слайдшоу, состоящее из нескольких частей, я не смог найти ничего стоящего. Одним из вариантов решения задачи является использование нескольких объектов одного слайдшоу в одном блоке, но данная конструкция не всегда может быть надежной и не везде ее можно применить.</p>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/05/selectionSlider.png" rel="lightbox[2402]" data-wpel-link="internal"><img loading="lazy" decoding="async" width="800" height="400" itemprop="image" class="aligncenter size-full wp-image-2404" src="http://nikita-sp.com.ua/wp-content/uploads/2015/05/selectionSlider.png" alt="SelectionSlider - jQuery plugin для подбора вариантов продукта" srcset="https://nikita-sp.com.ua/wp-content/uploads/2015/05/selectionSlider.png 800w, https://nikita-sp.com.ua/wp-content/uploads/2015/05/selectionSlider-600x300.png 600w, https://nikita-sp.com.ua/wp-content/uploads/2015/05/selectionSlider-150x75.png 150w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>В ввиду данных обстоятельств, хочу представить вам свеженький плагин для jQuery &#8212; Selection Slider, который позволит вам создать слайдшоу, состоящее из нескольких частей и настроить каждую часть отдельно!</p>
<p><span id="more-2402"></span></p>
<p>Слайдшоу обладает стандартным набором входных параметров:</p>
<ul>
<li>время задержки;</li>
<li>время анимации;</li>
<li>автопроигрывание;</li>
<li>пауза при наведении на селектор.</li>
</ul>
<p>Основной особенностью слайдшоу является безлимитное количество частей (селекторов), которые вы можете создать в рамках одного слайдера. Каждый селектор может быть настроен отдельно, используя параметры &#171;data-название_опции&#187;.</p>
<p>Это первый мой плагин под jQuery, написанный с нуля, в связи с этим слайдшоу достаточно простое, однако обладает гибкими настройками, что позволяет настроить его под ваши нужды. На <a href="http://nikita-sp.com.ua/wp-content/uploads/2015/05/selectionSlider/" target="_blank" data-wpel-link="internal">демо страничке</a> я постарался показать все возможные варианты настройки данного слайдшоу.</p>
<p>Если у вас есть предложения и пожелания по улучшению данного плагина &#8212; пишите в комментариях, или воспользуйтесь формой обратной связи в разделе &#171;Контакты&#187;.</p>
<p>Надеюсь данный плагин &#8212; это то что вы искали и не забывайте ставить лайки, делиться в соц. сетях, писать комментарии &#8212; это очень важно для меня. Спасибо <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Посмотреть jQuery плагин Selection Slider</strong>: <a href="http://nikita-sp.com.ua/wp-content/uploads/2015/05/selectionSlider/" target="_blank" data-wpel-link="internal">Demo livepage</a></p>
<p><strong>Скачать jQuery плагин Selection Slider</strong>: <a href="http://nikita-sp.com.ua/wp-content/uploads/2015/05/selectionSlider.zip" data-wpel-link="internal">selectionSlider</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2015/05/selection-slider-jquery-plugin-sections-to-select-items.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Адаптивная верстка, статика, резина, в чем разница?</title>
		<link>https://nikita-sp.com.ua/2015/02/adaptivnaya-verstka-statika-rezina.html</link>
					<comments>https://nikita-sp.com.ua/2015/02/adaptivnaya-verstka-statika-rezina.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Sat, 14 Feb 2015 09:00:39 +0000</pubDate>
				<category><![CDATA[Статьи о CSS]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[интересно]]></category>
		<category><![CDATA[создание сайтов]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=2120</guid>

					<description><![CDATA[В современном мире все больше и больше места персональные компьютеры, и даже ноутбуки уступают мобильным устройствам: мобильным телефонам, планшетам, нетбукам. Что это значит для владельцев сайтов? Необходимо адаптировать свой сайт под все эти устройства! При создании современного сайта каждый разработчик должен это учитывать! Что такое адаптивный дизайн, резиновая верстка, статика и в чем отличие, в чем [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>В современном мире все больше и больше места персональные компьютеры, и даже ноутбуки уступают мобильным устройствам: мобильным телефонам, планшетам, нетбукам. Что это значит для владельцев сайтов? Необходимо адаптировать свой сайт под все эти устройства!</p>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/02/responsive-design.png" rel="lightbox[2120]" data-wpel-link="internal"><img loading="lazy" decoding="async" width="600" height="360" itemprop="image" class="aligncenter size-medium wp-image-2122" src="http://nikita-sp.com.ua/wp-content/uploads/2015/02/responsive-design-600x360.png" alt="Адаптивный дизайн сайтов" srcset="https://nikita-sp.com.ua/wp-content/uploads/2015/02/responsive-design-600x360.png 600w, https://nikita-sp.com.ua/wp-content/uploads/2015/02/responsive-design-960x576.png 960w, https://nikita-sp.com.ua/wp-content/uploads/2015/02/responsive-design-150x90.png 150w, https://nikita-sp.com.ua/wp-content/uploads/2015/02/responsive-design.png 1200w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></p>
<p>При создании современного сайта каждый разработчик должен это учитывать! Что такое адаптивный дизайн, резиновая верстка, статика и в чем отличие, в чем преимущества адаптивной верстки, и зачем ее делать? Давайте разбираться!<span id="more-2120"></span></p>
<p>Сегодня, каждый из бизнесменов и предпринимателей понимает всю ту силу и все те возможности интернета, которые позволяют расширить бизнес и увеличить продажи. За последние несколько лет очень многие перенесли свой бизнес в интернет, частично либо полностью.</p>
<p>Но технологии не стоят на месте, и все больше и больше людей пользуются мобильными устройствами для поиска информации в сети. Люди заходят в социальные сети, ищут информацию о событиях города, о местах, покупают товары, и все это пользуясь мобильными гаджетами!</p>
<p>Раньше, при создании сайта учитывалась только кроссбразуерность (способность сайта открываться во всех браузерах корректно), но сегодня каждому разработчику необходимо помнить что кроме браузеров есть еще и мобильные устройства и стараться максимально адаптировать под них разрабатываемый сайт.</p>
<p><strong>Статический дизайн сайта</strong> &#8212; это самая простая, с точки зрения разработки версия верстки. Все элементы вне зависимости от разрешения экрана устройства, размера окна браузера будут расположены в одном и том же месте без сдвигов или изменений.</p>
<p>Такой сайт безболезненно откроется на любом устройстве, будет работать корректно, но не все элементы управления (ссылки, кнопки) будут удобны для взаимодействия пользователем. Такой сайт необходимо &#171;зумить&#187; (увеличивать/уменьшать масштаб), скроллить и ловить искомый элемент.</p>
<p><strong>Резиновый дизайн сайта</strong>, позволяет создать сайт, который будет тянуться в зависимости от окна браузера и от разрешения экрана, соответственно. При создании резиновой верстки присутствуют определенные сложности, связанные с необходимостью высчитывать проценты высоты, ширины и др. параметров блоков.</p>
<p>Также для более корректного отображения при создании такого сайта разработчик может использовать JavaScript для более точного позиционирования элементов. Данный вид сайтов достаточно интересный, однако сегодня его вытесняет адаптивный дизайн сайтов.</p>
<p><strong>Адаптивный дизайн сайтов</strong> &#8212; это дизайн, который рассчитан на корректное отображение на всевозможных устройствах, начиная от персональных компьютеров с FullHD разрешением мониторов, заканчивая мобильными устройствами с минимальным разрешением.</p>
<p>Преимуществом и ключевым отличием от резиновой верстки является изменение форм и стилей отображения элементов. Элементы располагают в удобном для пользователя месте с учетом того, что устройство имеет маленький экран, делают ссылки и кнопки более удобными для взаимодействия с ними, например, увеличивая их или меняя положение.</p>
<p>Некоторые владельцы интернет магазинов <strong>создают отдельную мобильную версию сайта</strong>, которую размещают на поддомене &#171;m&#187; и создают редирект (переадресацию) для мобильных устройств с основного домена <em>example.com</em> на <em>m.example.com</em>. К сожалению, на данный момент я затрудняюсь ответить в чем преимущество такого решения, но если вы знаете &#8212; пишите в комментариях &#8212; найдем истину вместе!</p>
<p>Однако, <strong>наличие адаптивной версии сайта &#8212; это не обязательный атрибут для каждого ресурса</strong>, т.к. каждый ресурс имеет свою специфику, и прежде чем вы решите создавать сайт с адаптивным дизайном, проведите анализ статистики по посещению подобных ресурсов на предмет процентного соотношения посещений с мобильных устройств к посещениям с персональных компьютеров или ноутбуков.</p>
<p>Таким образом, мы видим, что <strong>сегодня, при создании сайта, желательно иметь адаптивный дизайн</strong> (мобильную версию), и подойти к ее разработке очень тщательно и с умом, т.к. от качества подхода и разработки зависит удобство использования посетителем вашего ресурса, а ведь удобство клиента &#8212; это ваши деньги.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2015/02/adaptivnaya-verstka-statika-rezina.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Обновление слайдера шириной 100% ShadowSlider на jQuery</title>
		<link>https://nikita-sp.com.ua/2015/02/update-slider-shirinoy-100-shadowslider-na-jquery.html</link>
					<comments>https://nikita-sp.com.ua/2015/02/update-slider-shirinoy-100-shadowslider-na-jquery.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Fri, 13 Feb 2015 17:33:40 +0000</pubDate>
				<category><![CDATA[Статьи о JavaScript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=2113</guid>

					<description><![CDATA[Слайдер шириной в 100% достаточно популярная запись моего блога. И мне казалось вот уже около года, что слайдер ShadowSlider, который я перенес с MooTools на jQuery полностью рабочий и законченный продукт, но не тут то было! Один из моих читателей, оказался внимательнее чем все остальные, за что ему отдельная благодарность! И по его просьбе и в благодарность за [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a title="Слайдер во всю ширину: Mootools ShadowSlider и jQuery" href="http://nikita-sp.com.ua/2014/05/slider-vo-vsyu-shirinu-mootools-shadowslider-i-jquery.html" data-wpel-link="internal">Слайдер шириной в 100%</a> достаточно популярная запись моего блога. И мне казалось вот уже около года, что слайдер ShadowSlider, который я перенес с MooTools на jQuery полностью рабочий и законченный продукт, но не тут то было!</p>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2015/02/slideshow_updated.jpg" rel="lightbox[2113]" data-wpel-link="internal"><img loading="lazy" decoding="async" width="600" height="146" itemprop="image" class="aligncenter wp-image-2115 size-medium" src="http://nikita-sp.com.ua/wp-content/uploads/2015/02/slideshow_updated-600x146.jpg" alt="ShadowSlider для jQuery 1.1" srcset="https://nikita-sp.com.ua/wp-content/uploads/2015/02/slideshow_updated-600x146.jpg 600w, https://nikita-sp.com.ua/wp-content/uploads/2015/02/slideshow_updated-960x233.jpg 960w, https://nikita-sp.com.ua/wp-content/uploads/2015/02/slideshow_updated-150x36.jpg 150w, https://nikita-sp.com.ua/wp-content/uploads/2015/02/slideshow_updated.jpg 1920w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></p>
<p>Один из моих читателей, оказался <a href="http://nikita-sp.com.ua/2014/05/slider-vo-vsyu-shirinu-mootools-shadowslider-i-jquery.html#hcm=1423826756647049" target="_blank" data-wpel-link="internal">внимательнее чем все остальные</a>, за что ему отдельная благодарность! И по его просьбе и в благодарность за внимательность, я представляю вам плагин ShadowSlider адаптированный под jQuery версии 1.1.<span id="more-2113"></span></p>
<p>Пункты навигации, которые раньше не были особо востребованы оказались не докрученными, т.к. для пользования слайдером обычно использовались стрелки навигации (вперед/назад).</p>
<p>В новой же версии я устранил данную ошибку, и теперь это полнофункциональная простая карусель во всю ширину вашего сайта, с кнопками навигации, а также пагинацией! <a href="http://nikita-sp.com.ua/wp-content/uploads/2015/02/update-jquery-slideshow/" target="_blank" data-wpel-link="internal">ДЕМО</a></p>
<p>Вам остается только оформить карусель как вам хочется и вуаля! Если у вас есть пожелания или предложения по улучшению данного плагина, то вы можете написать об этом в комментариях! Не забывайте ставить лайк!</p>
<p><strong>Скачать ShadowSlider for jQuery</strong>: <a href="http://nikita-sp.com.ua/wp-content/uploads/2015/02/jquery-slideshow-1.1.zip" data-wpel-link="internal">jquery-slideshow-1.1</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2015/02/update-slider-shirinoy-100-shadowslider-na-jquery.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Склонение названия величин времени в дате</title>
		<link>https://nikita-sp.com.ua/2014/12/sklonenie-nazvaniya-velichin-v-date.html</link>
					<comments>https://nikita-sp.com.ua/2014/12/sklonenie-nazvaniya-velichin-v-date.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Mon, 01 Dec 2014 15:16:19 +0000</pubDate>
				<category><![CDATA[Статьи о JavaScript]]></category>
		<category><![CDATA[javascript]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=1769</guid>

					<description><![CDATA[При создании таймеров и счетчиков обратного отсчета часто указывают величину времени после каждого значения. Например 2 дня 12 часов 24 минуты 42 секунды. В английском языке все просто, проверил значение величины, и если оно не равно единице, то добавил &#171;s&#187; &#8212; 2 days 12 hours 01 minute. Но что делать с русским языком? Многие с такой [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>При создании таймеров и счетчиков обратного отсчета часто указывают величину времени после каждого значения. Например <em>2 <span style="text-decoration: underline;">дня</span> 12 <span style="text-decoration: underline;">часов</span> 24 <span style="text-decoration: underline;">минуты</span> 42 <span style="text-decoration: underline;">секунды</span></em>. В английском языке все просто, проверил значение величины, и если оно не равно единице, то добавил &#171;s&#187; &#8212; 2 days 12 hours 01 minute. Но что делать с русским языком?</p>
<p><img loading="lazy" decoding="async" width="600" height="370" itemprop="image" src="http://nikita-sp.com.ua/wp-content/uploads/2014/12/preview-600x370.jpg" alt="Склонение названий секций в формате даты" class="aligncenter size-medium wp-image-1775" srcset="https://nikita-sp.com.ua/wp-content/uploads/2014/12/preview-600x370.jpg 600w, https://nikita-sp.com.ua/wp-content/uploads/2014/12/preview-960x592.jpg 960w, https://nikita-sp.com.ua/wp-content/uploads/2014/12/preview-150x92.jpg 150w, https://nikita-sp.com.ua/wp-content/uploads/2014/12/preview.jpg 1404w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>Многие с такой проблемой часто борятся при помощи &#171;хитрых скобочек&#187;, например <em>2 минут(ы)</em>, но это не профессионально и не красиво, да и строка увеличивается за счет лишних символов.</p>
<p>При разработке сайта с подобным счетчиком я разработал небольшой скрипт, который помогает определить какое же склонение необходимо использовать для того или иного значения.<span id="more-1769"></span></p>
<p>Работа скрипта основывается на значении последней цифры каждого из значений счетчика: т.е. если значение минут 26, то последняя цифра 6. Таким образом выбирается необходимый падеж.</p>
<p>Я приведу исходный код простого таймера обратного отсчета который использовал также в <a title="Модуль отсчета времени до конца акции OpenCart" href="http://nikita-sp.com.ua/2014/11/module-product-contdown-timer-opencart.html" data-wpel-link="internal">модуле отсчета времени до конца акции OpenCart</a> и <a href="http://nikita-sp.com.ua/2014/11/update-module-category-sales-countdown-for-opencart.html" title="Обновление модуля Акции категорий со счетчиком для OpenCart" data-wpel-link="internal">модуле Акции категорий со счетчиком для OpenCart</a>, который вы можете переделать под свои нужды.</p>
<pre class="brush: jscript; title: Код:; notranslate">

function countdown(){
	var names = {days:		{1:&quot;день&quot;, 2:&quot;дня&quot;, 3: &quot;дней&quot;},
				 hours:		{1:&quot;час&quot;, 2: &quot;часа&quot;, 3: &quot;часов&quot;},
				 minutes:	{1:&quot;минута&quot;, 2: &quot;минуты&quot;, 3: &quot;минут&quot;},
				 seconds:	{1:&quot;секунда&quot;, 2: &quot;секунды&quot;, 3: &quot;секунд&quot;},
	};
	var day_name = names['days'][3];
	var hur_name = names['hours'][3];
	var min_name = names['minutes'][3];
	var sec_name = names['seconds'][3];


	var today = new Date();
	var BigDay = new Date(2014, 11, 31, 15, 00, 00);
	var timeLeft = (BigDay.getTime() - today.getTime());

	var e_daysLeft = timeLeft / 86400000;
	var daysLeft = Math.floor(e_daysLeft);

	var slice_day = String(daysLeft).slice(-1);
	if(parseInt(slice_day) == 1 &amp;&amp; (parseInt(daysLeft) &lt; 10 || parseInt(daysLeft) &gt; 20)){
		day_name = names['days'][1];
	}else if((parseInt(slice_day) == 2 || parseInt(slice_day) == 3 || parseInt(slice_day) == 4) &amp;&amp; (parseInt(daysLeft) &lt; 10 || parseInt(daysLeft) &gt; 20)){
		day_name = names['days'][2];
	}else{
		day_name = names['days'][3];
	}

	var e_hrsLeft = (e_daysLeft - daysLeft)*24;
	var hrsLeft = Math.floor(e_hrsLeft);
	if(hrsLeft &lt; 10){
		hrsLeft = '0'+hrsLeft;
	}
	var slice_hours = String(hrsLeft).slice(-1);
	if(parseInt(slice_hours) == 1 &amp;&amp; (parseInt(hrsLeft) &lt; 10 || parseInt(hrsLeft) &gt; 20)){
		hur_name = names['hours'][1];
	}else if((parseInt(slice_hours) == 2 || parseInt(slice_hours) == 3 || parseInt(slice_hours) == 4)  &amp;&amp; (parseInt(hrsLeft) &lt; 10 || parseInt(hrsLeft) &gt; 20)){
		hur_name = names['hours'][2];
	}else{
		hur_name = names['hours'][3];
	}

	var e_minsLeft = (e_hrsLeft - hrsLeft)*60;
	var minsLeft = Math.floor(e_minsLeft);
	if(minsLeft &lt; 10){
		minsLeft = '0'+minsLeft;
	}
	var slice_min = String(minsLeft).slice(-1);
	if(parseInt(slice_min) == 1 &amp;&amp; (parseInt(minsLeft) &lt; 10 || parseInt(minsLeft) &gt; 20)){
		min_name = names['minutes'][1];
	}else if((parseInt(slice_min) == 2 || parseInt(slice_min) == 3 || parseInt(slice_min) == 4) &amp;&amp; (parseInt(minsLeft) &lt; 10 || parseInt(minsLeft) &gt; 20)){
		min_name = names['minutes'][2];
	}else{
		min_name = names['minutes'][3];
	}

	var seksLeft = Math.floor((e_minsLeft - minsLeft)*60);
	if(seksLeft &lt; 10){
		seksLeft = '0'+seksLeft;
	}
	var slice_sec = String(seksLeft).slice(-1);
	if(parseInt(slice_sec) == 1 &amp;&amp; (parseInt(seksLeft) &lt; 10 || parseInt(seksLeft) &gt; 20)){
		sec_name = names['seconds'][1];
	}else if((parseInt(slice_sec) == 2 || parseInt(slice_sec) == 3 || parseInt(slice_sec) == 4) &amp;&amp; (parseInt(seksLeft) &lt; 10 || parseInt(seksLeft) &gt; 20)){
		sec_name = names['seconds'][2];
	}else{
		sec_name = names['seconds'][3];
	}

	if (BigDay.getTime() &gt; today.getTime() ){
		document.getElementById(&quot;countdown&quot;).innerHTML = daysLeft+&quot; &quot;+day_name+&quot; &quot;+hrsLeft+&quot; &quot;+hur_name+&quot; &quot;+minsLeft+&quot; &quot;+min_name+&quot; &quot;+seksLeft+&quot; &quot;+sec_name;
	}
}

</pre>
<p>Как видите для каждой позиции формата часов определяется последняя цифра и устанавливается соответствующий падеж. В случае если последняя цифра равна единице &#8212; минута, если 2, 3, 4 &#8212; минуты, 5-0 &#8212; минут. При этом величины от 10 до 20 имеют все значение &#8212; минут.</p>
<p>Данное решение нуждается в доработке в случае если в одной из позиций (одно из значений) таймера будет число, превышающее 100, т.к. необходимо будет брать последние две цифры для выполнения последнего условия с величинами от 10 до 20.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2014/12/sklonenie-nazvaniya-velichin-v-date.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Google Analytics не видит код на сайте</title>
		<link>https://nikita-sp.com.ua/2014/08/google-analytics-ne-vidit-kod-na-sajte.html</link>
					<comments>https://nikita-sp.com.ua/2014/08/google-analytics-ne-vidit-kod-na-sajte.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Wed, 20 Aug 2014 12:32:37 +0000</pubDate>
				<category><![CDATA[Создание сайтов]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[вопросы]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=1531</guid>

					<description><![CDATA[Думаю многие сталкивались с проблемой установки кода Google Analytics на сайт. После установки кода спустя несколько недель Google не видел код, установленный на сайте. Уже и обращались в поддержку, но она молчала и устанавливали код перед закрывающим тегом &#60;head&#62;. Что только не пробовали, а гугл все-равно не видел код. Что делать в таком случае? В [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Думаю многие сталкивались с проблемой <strong>установки кода Google Analytics на сайт</strong>. После <strong>установки кода спустя несколько недель Google не видел код</strong>, установленный на сайте. Уже и обращались в поддержку, но она молчала и устанавливали код перед закрывающим тегом &lt;head&gt;. Что только не пробовали, а <strong>гугл все-равно не видел код</strong>. Что делать в таком случае?</p>
<p><span id="more-1531"></span></p>
<p>В моем случае ответ был прост: просто удалите ресурс с Google Analytics и потом снова его добавьте! Получите новый код и установите на сайт. После переходим в режим реального времени, и вуаля! Все заработало!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2014/08/google-analytics-ne-vidit-kod-na-sajte.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Слайдер во всю ширину: Mootools ShadowSlider и jQuery</title>
		<link>https://nikita-sp.com.ua/2014/05/slider-vo-vsyu-shirinu-mootools-shadowslider-i-jquery.html</link>
					<comments>https://nikita-sp.com.ua/2014/05/slider-vo-vsyu-shirinu-mootools-shadowslider-i-jquery.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Thu, 29 May 2014 23:42:45 +0000</pubDate>
				<category><![CDATA[Статьи о JavaScript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=1214</guid>

					<description><![CDATA[Как часто вы сталкиваетесь с JavaScript библиотеками такими как Mootools и jQuery? Очень полезная штука, не так ли? Но использовать две сразу не удобно, возникают конфликты, не рационально. И случается так, что какой-то плагин, слайдшоу, слайдер или другая фича написана с использованием другой библиотеки. Если вы, к примеру используете Mootools, то плагин под jQuery или [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Как часто вы сталкиваетесь с <strong>JavaScript</strong> библиотеками такими как <strong>Mootools</strong> и <strong>jQuery</strong>? Очень полезная штука, не так ли? Но использовать две сразу не удобно, возникают конфликты, не рационально. И случается так, что какой-то <strong>плагин</strong>, <strong>слайдшоу</strong>, <strong>слайдер</strong> или другая фича написана с использованием другой библиотеки. Если вы, к примеру используете Mootools, то <strong>плагин под jQuery</strong> или наоборот.</p>
<p>Вот в очередной раз и я столкнулся с данным вопросом. Необходим был слайдер во всю ширину экрана, который бы прокручивался в цикле. И я нашел такой, но я приверженец jQuery, а слайдер &#8212; <strong>плагин под Mootools</strong>. Что делать? Я попробовал найти ресурсы, которые помогают перевести плагины с одной библиотеки под другую, но в конечном счете понял, что сделать это придется мне самому.</p>
<p><span id="more-1214"></span></p>
<p>Таким образом, представляю вашему вниманию оригинал <strong>слайдера на Mootools</strong> от <em>Constantin Boiangiu</em>, и свою скромную копию, адаптированную под jQuery. <a title="Слайдер во всю ширину страницы jQuery" href="/wp-content/uploads/2014/05/jquery-ShadowSlider/" target="_blank" data-wpel-link="internal">Посмотреть демо слайдера во вся страницу адаптированного под jQuery</a>. Думаю что ссылки следующего и предыдущего слайда и остальные стили вы сами подберете и оформите слайдер по вкусу.</p>
<p><a href="http://nikita-sp.com.ua/wp-content/uploads/2014/05/jquery-ShadowSlider.rar" data-wpel-link="internal">Скачать jquery-ShadowSlider</a><br />
<a href="http://nikita-sp.com.ua/wp-content/uploads/2014/05/mootools-ShadowSlider.rar" data-wpel-link="internal">Скачать mootools-ShadowSlider</a></p>
<p><span style="color: #ff0000;">ВНИМАНИЕ!</span> слайдер был обновлен, <a title="Обновление слайдера шириной 100% ShadowSlider на jQuery" href="http://nikita-sp.com.ua/2015/02/update-slider-shirinoy-100-shadowslider-na-jquery.html" data-wpel-link="internal">скачать новую версию слайдера для jQuery</a></p>
<p>Пользуйтесь на здоровье и не забывайте ставить &#171;Лайк&#187; и рассказывать друзьям!<br />
Удачного оформления сайта!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2014/05/slider-vo-vsyu-shirinu-mootools-shadowslider-i-jquery.html/feed</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
	</channel>
</rss>
