<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" version="2.0">
<channel>
<title>Скрипты - Всё для Вебмастера</title>
<link>https://for-web.ru/</link>
<language>ru</language>
<description>Скрипты - Всё для Вебмастера</description>
<generator>DataLife Engine</generator><item turbo="true">
<title>EngineGamePanel v3</title>
<guid isPermaLink="true">https://for-web.ru/gamehost/1920-enginegamepanel-v3.html</guid>
<link>https://for-web.ru/gamehost/1920-enginegamepanel-v3.html</link>
<category><![CDATA[Скрипты хостинга / Скрипты]]></category>
<dc:creator>zoro451</dc:creator>
<pubDate>Tue, 13 Sep 2022 17:09:57 +0300</pubDate>
<description><![CDATA[<p><span style="font-size:17px;"><b><u><img src="https://for-web.ru/uploads/posts/2022-09/egp1.jpg" alt="" class="fr-fic fr-dib"></u></b></span></p><p><span style="font-size:17px;"><b><u>Панель управления игровыми серверами - EGPV3.</u></b> это обновлённая и доработанная оригинальная версия EngineGamePanel v3 с которой вы можете с лёгкостью открыть многофункциональный проект или просто <u>запустить игровой сервер, общаться в чате, подключать vds к панели, загружать сборки с яндекс диска. </u>Устанавливать WEB МОДУЛИ (<u><b>CSBANS, AMXBANS, ASTATS, CSSTATS, Buy Privileges</b></u>) и многое другое</span></p><p><br></p><p style="text-align:center;"><span style="font-size:17px;"><img src="https://for-web.ru/uploads/posts/2022-09/egp4.jpg" alt="" class="fr-fic fr-dib"> <img src="https://for-web.ru/uploads/posts/2022-09/index.png" alt="" class="fr-fic fr-dib"> [media=https://youtu.be/aERglIccXRI]</span></p>]]></description>
<turbo:content><![CDATA[ <p><span style="font-size:17px;"><b><u><img src="https://for-web.ru/uploads/posts/2022-09/egp1.jpg" alt="" class="fr-fic fr-dib"></u></b></span></p><p><span style="font-size:17px;"><b><u>Панель управления игровыми серверами - EGPV3.</u></b> это обновлённая и доработанная оригинальная версия EngineGamePanel v3 с которой вы можете с лёгкостью открыть многофункциональный проект или просто <u>запустить игровой сервер, общаться в чате, подключать vds к панели, загружать сборки с яндекс диска. </u>Устанавливать WEB МОДУЛИ (<u><b>CSBANS, AMXBANS, ASTATS, CSSTATS, Buy Privileges</b></u>) и многое другое</span></p><p><br></p><p style="text-align:center;"><span style="font-size:17px;"><img src="https://for-web.ru/uploads/posts/2022-09/egp4.jpg" alt="" class="fr-fic fr-dib"> <img src="https://for-web.ru/uploads/posts/2022-09/index.png" alt="" class="fr-fic fr-dib"> [media=https://youtu.be/aERglIccXRI]</span></p> ]]></turbo:content>
<content:encoded><![CDATA[ <p><span style="font-size:17px;"><b><u><img src="https://for-web.ru/uploads/posts/2022-09/egp1.jpg" alt="" class="fr-fic fr-dib"></u></b></span></p><p><span style="font-size:17px;"><b><u>Панель управления игровыми серверами - EGPV3.</u></b> это обновлённая и доработанная оригинальная версия EngineGamePanel v3 с которой вы можете с лёгкостью открыть многофункциональный проект или просто <u>запустить игровой сервер, общаться в чате, подключать vds к панели, загружать сборки с яндекс диска. </u>Устанавливать WEB МОДУЛИ (<u><b>CSBANS, AMXBANS, ASTATS, CSSTATS, Buy Privileges</b></u>) и многое другое</span></p><p><br></p><p style="text-align:center;"><span style="font-size:17px;"><img src="https://for-web.ru/uploads/posts/2022-09/egp4.jpg" alt="" class="fr-fic fr-dib"> <img src="https://for-web.ru/uploads/posts/2022-09/index.png" alt="" class="fr-fic fr-dib"> [media=https://youtu.be/aERglIccXRI]</span></p> ]]></content:encoded>
</item><item turbo="true">
<title>Скачать Website 2 APK</title>
<guid isPermaLink="true">https://for-web.ru/scripts/1879-skachat-website-2-apk-builder-pro-v34-cracked-besplatno.html</guid>
<link>https://for-web.ru/scripts/1879-skachat-website-2-apk-builder-pro-v34-cracked-besplatno.html</link>
<category><![CDATA[Скрипты]]></category>
<dc:creator>Project Team</dc:creator>
<pubDate>Wed, 20 Jul 2022 21:47:27 +0300</pubDate>
<description><![CDATA[<p><img src="https://for-web.ru/uploads/posts/2022-03/1543490745_website-2-apk-builder-pro.webp" alt="Website 2 APK Builder Pro" class="fr-dib"><b style="margin:0px;padding:0px;border:0px;font-style:normal;font-weight:600;font-size:15px;line-height:inherit;font-family:Poppins, Helvetica, Arial, sans-serif;vertical-align:baseline;color:#494949;letter-spacing:0.3px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">Website 2 APK Builder Pro</b>  — отличная программа для преобразования вашего веб-сайта в приложение для Android. Преобразование HTML, CSS, JS или веб-URL в приложение для Android. Веб-сайт 2 APK Builder очень прост в использовании, просто сделайте пошаговые настройки для вашего приложения, создайте его, пока вы его завершаете. Скачать <b style="margin:0px;padding:0px;border:0px;font-style:normal;font-weight:600;font-size:15px;line-height:inherit;font-family:Poppins, Helvetica, Arial, sans-serif;vertical-align:baseline;color:#494949;letter-spacing:0.3px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">Website 2 APK Builder Pro</b> можно бесплатно.</p>]]></description>
<turbo:content><![CDATA[ <p><img src="https://for-web.ru/uploads/posts/2022-03/1543490745_website-2-apk-builder-pro.webp" alt="Website 2 APK Builder Pro" class="fr-dib"><b style="margin:0px;padding:0px;border:0px;font-style:normal;font-weight:600;font-size:15px;line-height:inherit;font-family:Poppins, Helvetica, Arial, sans-serif;vertical-align:baseline;color:#494949;letter-spacing:0.3px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">Website 2 APK Builder Pro</b>  — отличная программа для преобразования вашего веб-сайта в приложение для Android. Преобразование HTML, CSS, JS или веб-URL в приложение для Android. Веб-сайт 2 APK Builder очень прост в использовании, просто сделайте пошаговые настройки для вашего приложения, создайте его, пока вы его завершаете. Скачать <b style="margin:0px;padding:0px;border:0px;font-style:normal;font-weight:600;font-size:15px;line-height:inherit;font-family:Poppins, Helvetica, Arial, sans-serif;vertical-align:baseline;color:#494949;letter-spacing:0.3px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">Website 2 APK Builder Pro</b> можно бесплатно.</p> ]]></turbo:content>
<content:encoded><![CDATA[ <p><img src="https://for-web.ru/uploads/posts/2022-03/1543490745_website-2-apk-builder-pro.webp" alt="Website 2 APK Builder Pro" class="fr-dib"><b style="margin:0px;padding:0px;border:0px;font-style:normal;font-weight:600;font-size:15px;line-height:inherit;font-family:Poppins, Helvetica, Arial, sans-serif;vertical-align:baseline;color:#494949;letter-spacing:0.3px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">Website 2 APK Builder Pro</b>  — отличная программа для преобразования вашего веб-сайта в приложение для Android. Преобразование HTML, CSS, JS или веб-URL в приложение для Android. Веб-сайт 2 APK Builder очень прост в использовании, просто сделайте пошаговые настройки для вашего приложения, создайте его, пока вы его завершаете. Скачать <b style="margin:0px;padding:0px;border:0px;font-style:normal;font-weight:600;font-size:15px;line-height:inherit;font-family:Poppins, Helvetica, Arial, sans-serif;vertical-align:baseline;color:#494949;letter-spacing:0.3px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;">Website 2 APK Builder Pro</b> можно бесплатно.</p> ]]></content:encoded>
</item><item turbo="true">
<title>Георгиевская ленточка на сайт</title>
<guid isPermaLink="true">https://for-web.ru/ukrasheniya-dlya-sayta/167-georgievskaya-lentochka-na-sayt.html</guid>
<link>https://for-web.ru/ukrasheniya-dlya-sayta/167-georgievskaya-lentochka-na-sayt.html</link>
<category><![CDATA[Украшения для сайта / Скрипты]]></category>
<dc:creator>Project Team</dc:creator>
<pubDate>Sun, 09 May 2021 05:29:37 +0300</pubDate>
<description><![CDATA[<div style="margin-left:20px;"><img src="https://for-web.ru/uploads/posts/2018-05/1525855642_9b87b6651279a08-696x392.jpg" alt="Георгиевская ленточка на сайт" class="fr-dib">Каждый год, в день празднования <b>9 мая</b> мы видим неотъемлемый его символ - <b>Георгиевскую ленту.</b> Она настолько "срослась" с этим праздником, что уже совершенно потерялся весь ее смысл. Между тем, это не просто кусочек полосатой ткани, это <b>награда </b>и символ с богатой предысторией.<br><b>Георгиевская лента</b> – лента, с ее цветовым решением, получаемая за личную храбрость, проявленную в сражении, названа в честь <b>Святого Георгия Победоносца,</b> христианского мученика, жившего в III веке нашей эры, творившего чудеса во имя Христа и принявшего мученическую смерть за свою веру.<br>Сама награда была учреждена в XVIII веке великой императрицей <b>Екатериной II</b> и выдавалась в форме <b>ордена</b> с лентой в уже знакомой цветовой гамме - с тремя черными и двумя желтыми полосами. Сам орден имел четыре степени и, соответственно четыре вида оформления, в зависимости от степени заслуги.<br>Первый орден получили солдаты отряда <b>Суворова </b>в августе 1787 года за сражение с турками.<br>Особое почетное применение награда получила при награждения солдат Российской армии. Ее украшали тогда и сейчас парадные, кавалерийские и пехотные трубы.<br>Утвержденная награда стала самой массовой медалью, вручаемой солдатам за личную храбрость в бою.<br>В годы <a href="https://for-web.ru/161-kratkaya-istoriya-velikoy-otechestvennoy-voyny.html" target="_blank"><b>Великой Отечественной Войны</b></a> была учреждена еще одна награда – <b>Орден Славы</b>, состоящий из трех ступеней, который также украсила знаменитая георгиевская лента.<br>В современном виде лента получила свое распространение после того, как 2 марта 1992 года было принято решение о восстановлении данного вида награды, упраздненной после окончания войны.<br>С 2005 года по настоящее время мы можем любоваться этим <b>символом Победы</b>, символизирующим не только отличительную храбрость в борьбе с захватчиками, но и огромные людские потери, которые перетерпела наша страна в сумрачные годы.</div><br>Для тех кто хочет немного украсить свой сайт в честь великого дня <b>Победы </b>, предлагаю установить данный код к себе на сайт:<br><pre class="language-markup"><code> &lt;div style="position:absolute;top:0;left:0;background:url(https://for-web.ru/uploads/09-1.png);width:64px;height:65px;"&gt; &lt;/div&gt;
            </code></pre>На движке DLE  в частности на моём шаблоне код установлен в <u>sidebar.tpl</u>. На своих сайтах экспериментируем cами.<br>Надеюсь материал был полезен.... Если да, то палец вверх.<br><br>]]></description>
<turbo:content><![CDATA[ <div style="margin-left:20px;"><img src="https://for-web.ru/uploads/posts/2018-05/1525855642_9b87b6651279a08-696x392.jpg" alt="Георгиевская ленточка на сайт" class="fr-dib">Каждый год, в день празднования <b>9 мая</b> мы видим неотъемлемый его символ - <b>Георгиевскую ленту.</b> Она настолько "срослась" с этим праздником, что уже совершенно потерялся весь ее смысл. Между тем, это не просто кусочек полосатой ткани, это <b>награда </b>и символ с богатой предысторией.<br><b>Георгиевская лента</b> – лента, с ее цветовым решением, получаемая за личную храбрость, проявленную в сражении, названа в честь <b>Святого Георгия Победоносца,</b> христианского мученика, жившего в III веке нашей эры, творившего чудеса во имя Христа и принявшего мученическую смерть за свою веру.<br>Сама награда была учреждена в XVIII веке великой императрицей <b>Екатериной II</b> и выдавалась в форме <b>ордена</b> с лентой в уже знакомой цветовой гамме - с тремя черными и двумя желтыми полосами. Сам орден имел четыре степени и, соответственно четыре вида оформления, в зависимости от степени заслуги.<br>Первый орден получили солдаты отряда <b>Суворова </b>в августе 1787 года за сражение с турками.<br>Особое почетное применение награда получила при награждения солдат Российской армии. Ее украшали тогда и сейчас парадные, кавалерийские и пехотные трубы.<br>Утвержденная награда стала самой массовой медалью, вручаемой солдатам за личную храбрость в бою.<br>В годы <a href="https://for-web.ru/161-kratkaya-istoriya-velikoy-otechestvennoy-voyny.html" target="_blank"><b>Великой Отечественной Войны</b></a> была учреждена еще одна награда – <b>Орден Славы</b>, состоящий из трех ступеней, который также украсила знаменитая георгиевская лента.<br>В современном виде лента получила свое распространение после того, как 2 марта 1992 года было принято решение о восстановлении данного вида награды, упраздненной после окончания войны.<br>С 2005 года по настоящее время мы можем любоваться этим <b>символом Победы</b>, символизирующим не только отличительную храбрость в борьбе с захватчиками, но и огромные людские потери, которые перетерпела наша страна в сумрачные годы.</div><br>Для тех кто хочет немного украсить свой сайт в честь великого дня <b>Победы </b>, предлагаю установить данный код к себе на сайт:<br><pre class="language-markup"><code> &lt;div style="position:absolute;top:0;left:0;background:url(https://for-web.ru/uploads/09-1.png);width:64px;height:65px;"&gt; &lt;/div&gt;
            </code></pre>На движке DLE  в частности на моём шаблоне код установлен в <u>sidebar.tpl</u>. На своих сайтах экспериментируем cами.<br>Надеюсь материал был полезен.... Если да, то палец вверх.<br><br> ]]></turbo:content>
<content:encoded><![CDATA[ <div style="margin-left:20px;"><img src="https://for-web.ru/uploads/posts/2018-05/1525855642_9b87b6651279a08-696x392.jpg" alt="Георгиевская ленточка на сайт" class="fr-dib">Каждый год, в день празднования <b>9 мая</b> мы видим неотъемлемый его символ - <b>Георгиевскую ленту.</b> Она настолько "срослась" с этим праздником, что уже совершенно потерялся весь ее смысл. Между тем, это не просто кусочек полосатой ткани, это <b>награда </b>и символ с богатой предысторией.<br><b>Георгиевская лента</b> – лента, с ее цветовым решением, получаемая за личную храбрость, проявленную в сражении, названа в честь <b>Святого Георгия Победоносца,</b> христианского мученика, жившего в III веке нашей эры, творившего чудеса во имя Христа и принявшего мученическую смерть за свою веру.<br>Сама награда была учреждена в XVIII веке великой императрицей <b>Екатериной II</b> и выдавалась в форме <b>ордена</b> с лентой в уже знакомой цветовой гамме - с тремя черными и двумя желтыми полосами. Сам орден имел четыре степени и, соответственно четыре вида оформления, в зависимости от степени заслуги.<br>Первый орден получили солдаты отряда <b>Суворова </b>в августе 1787 года за сражение с турками.<br>Особое почетное применение награда получила при награждения солдат Российской армии. Ее украшали тогда и сейчас парадные, кавалерийские и пехотные трубы.<br>Утвержденная награда стала самой массовой медалью, вручаемой солдатам за личную храбрость в бою.<br>В годы <a href="https://for-web.ru/161-kratkaya-istoriya-velikoy-otechestvennoy-voyny.html" target="_blank"><b>Великой Отечественной Войны</b></a> была учреждена еще одна награда – <b>Орден Славы</b>, состоящий из трех ступеней, который также украсила знаменитая георгиевская лента.<br>В современном виде лента получила свое распространение после того, как 2 марта 1992 года было принято решение о восстановлении данного вида награды, упраздненной после окончания войны.<br>С 2005 года по настоящее время мы можем любоваться этим <b>символом Победы</b>, символизирующим не только отличительную храбрость в борьбе с захватчиками, но и огромные людские потери, которые перетерпела наша страна в сумрачные годы.</div><br>Для тех кто хочет немного украсить свой сайт в честь великого дня <b>Победы </b>, предлагаю установить данный код к себе на сайт:<br><pre class="language-markup"><code> &lt;div style="position:absolute;top:0;left:0;background:url(https://for-web.ru/uploads/09-1.png);width:64px;height:65px;"&gt; &lt;/div&gt;
            </code></pre>На движке DLE  в частности на моём шаблоне код установлен в <u>sidebar.tpl</u>. На своих сайтах экспериментируем cами.<br>Надеюсь материал был полезен.... Если да, то палец вверх.<br><br> ]]></content:encoded>
</item><item turbo="true">
<title>Панель управления игровым хостингом Game-Host</title>
<guid isPermaLink="true">https://for-web.ru/gamehost/1490-panel-upravlenija-igrovym-hostingom-game-host.html</guid>
<link>https://for-web.ru/gamehost/1490-panel-upravlenija-igrovym-hostingom-game-host.html</link>
<category><![CDATA[Скрипты хостинга / Скрипты]]></category>
<dc:creator>Project Team</dc:creator>
<pubDate>Mon, 04 Jan 2021 20:45:05 +0300</pubDate>
<description><![CDATA[<a class="highslide" href="https://for-web.ru/uploads/posts/2021-01/1609770365_1603106395_hostipl.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2021-01/thumbs/1609770365_1603106395_hostipl.jpg" alt="" class="fr-dib"></a>Слив последний панели управления игровым хостингом Game-Host<br>Основа панели управления EGP<br><br>]]></description>
<turbo:content><![CDATA[ <a class="highslide" href="https://for-web.ru/uploads/posts/2021-01/1609770365_1603106395_hostipl.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2021-01/thumbs/1609770365_1603106395_hostipl.jpg" alt="" class="fr-dib"></a>Слив последний панели управления игровым хостингом Game-Host<br>Основа панели управления EGP<br><br> ]]></turbo:content>
<content:encoded><![CDATA[ <a class="highslide" href="https://for-web.ru/uploads/posts/2021-01/1609770365_1603106395_hostipl.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2021-01/thumbs/1609770365_1603106395_hostipl.jpg" alt="" class="fr-dib"></a>Слив последний панели управления игровым хостингом Game-Host<br>Основа панели управления EGP<br><br> ]]></content:encoded>
</item><item turbo="true">
<title>Новогодний скрипт гирлянды на сайт</title>
<guid isPermaLink="true">https://for-web.ru/ukrasheniya-dlya-sayta/1462-novogodnij-skript-girljandy-na-sajt.html</guid>
<link>https://for-web.ru/ukrasheniya-dlya-sayta/1462-novogodnij-skript-girljandy-na-sajt.html</link>
<category><![CDATA[Украшения для сайта / Скрипты]]></category>
<dc:creator>Project Team</dc:creator>
<pubDate>Sat, 12 Dec 2020 20:13:18 +0300</pubDate>
<description><![CDATA[<a class="highslide" href="https://for-web.ru/uploads/posts/2020-12/1607782161_bezymjannyj.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2020-12/thumbs/1607782161_bezymjannyj.jpg" alt="" class="fr-dib"></a>Простая гирлянда, выполненная на основе <b>SVG</b>-изображений и CSS. Все лампочки в гирлянде плавно мигают. Можно экспериментировать с фоном, общим стилем, цветом лампочек, скоростью воспроизведения анимации и так далее.<br><br><b>HTML</b><br><pre><code>&lt;svg id="Christmas_Lights" viewBox="0 0 612 792"&gt;
    &lt;path class="light_cord" d="M-673.8-29.1c17.3 23.7 38.1 34.3 63.6 48.8 45.4 25.7 93.4 39.1 145.4 44.4 58 6 112.1 6.2 164-9 64.2-18.8 113.7-51 113.7-51 13.3 17.3 28.1 25.3 50.1 34.5 20.3 8.5 43.8 17 66.1 23 30.1 8.1 67.1 8.4 99.1 8.3 66.5-0.1 134-3.3 197.4-17.8 30.3-6.9 76-24 89.3-32 9.3 4.7 22.4 16.1 34.7 22.8 34 18.6 73.2 33.8 111 42.8 46.1 11 93.6 5.6 137-12.8 14.4-6.1 56.6-26.1 65.7-38.5 8.8 15.1 102.8 33.1 151.5 32.5 68.4-0.8 142.2-10.5 196.7-55.9 9.7 11.9 28.3 20 42.5 25.2 35.5 12.9 76.3 22 113.9 24.9 50.2 3.9 100.3 3.9 150.1-5.3 25.6-4.7 50.6-14.2 74.4-24.8 6.7-3 36.4-14.8 43.1-20.1"/&gt;
      &lt;path class="red_bulb bulb blink-1" d="M1351.5 76.9c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1357.7 84.7 1353 80.2 1351.5 76.9z"/&gt;
          &lt;path class="light_fixture" d="M1351.9 71.4c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L1351.9 71.4z"/&gt;
          &lt;path class="light_fixture" d="M1343.1 57.9c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1343.4 58 1343.2 57.9 1343.1 57.9L1343.1 57.9zM1341.8 49.3c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1342 47.9 1341.9 48.5 1341.8 49.3L1341.8 49.3z"/&gt;
      &lt;path class="green_bulb blink-2 bulb" d="M1265.6 90.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1271.8 98.1 1267.2 93.6 1265.6 90.3z"/&gt;
          &lt;path class="light_fixture" d="M1266 84.8c0 0.5-0.4 1-1 1H1251c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L1266 84.8z"/&gt;
          &lt;path class="light_fixture" d="M1257.2 71.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1257.5 71.3 1257.4 71.3 1257.2 71.2L1257.2 71.2zM1256 62.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1256.1 61.3 1256.1 61.8 1256 62.6L1256 62.6z"/&gt;
      &lt;path class="blue_bulb blink-3 bulb" d="M1179.7 90.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1185.9 98.1 1181.3 93.6 1179.7 90.3z"/&gt;
          &lt;path class="light_fixture" d="M1180.2 84.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L1180.2 84.8z"/&gt;
          &lt;path class="light_fixture" d="M1171.3 71.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1171.6 71.3 1171.5 71.3 1171.3 71.2L1171.3 71.2zM1170.1 62.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1170.3 61.3 1170.2 61.8 1170.1 62.6L1170.1 62.6z"/&gt;
      &lt;path class="red_bulb blink-4 bulb" d="M1093.9 73.8c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1100 81.6 1095.4 77 1093.9 73.8z"/&gt;
          &lt;path class="light_fixture" d="M1094.3 68.3c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.4 1 1L1094.3 68.3z"/&gt;
          &lt;path class="light_fixture" d="M1085.5 54.7c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1085.7 54.8 1085.6 54.8 1085.5 54.7L1085.5 54.7zM1084.2 46.1c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1084.4 44.7 1084.3 45.3 1084.2 46.1L1084.2 46.1z"/&gt;
      &lt;path class="green_bulb blink-5 bulb" d="M1019 39.8c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1025.1 47.6 1020.5 43.1 1019 39.8z"/&gt;
          &lt;path class="light_fixture" d="M1019.4 34.3c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.4-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.4 1 1L1019.4 34.3z"/&gt;
          &lt;path class="light_fixture" d="M1010.6 20.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1010.8 20.8 1010.7 20.8 1010.6 20.8L1010.6 20.8zM1009.3 12.2c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1009.5 10.8 1009.4 11.3 1009.3 12.2L1009.3 12.2z"/&gt;
      &lt;path class="white_bulb blink-6 bulb" d="M928.5 83.2c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C934.7 91 930.1 86.4 928.5 83.2z"/&gt;
          &lt;path class="light_fixture" d="M928.9 77.6c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L928.9 77.6z"/&gt;
          &lt;path class="light_fixture" d="M920.1 64.1c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C920.4 64.2 920.2 64.1 920.1 64.1L920.1 64.1zM918.9 55.5c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C919 54.1 918.9 54.7 918.9 55.5L918.9 55.5z"/&gt;
      &lt;path class="blue_bulb blink-7 bulb" d="M836.2 93.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C842.4 101.1 837.8 96.5 836.2 93.3z"/&gt;
          &lt;path class="light_fixture" d="M836.6 87.7c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L836.6 87.7z"/&gt;
          &lt;path class="light_fixture" d="M827.8 74.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C828.1 74.3 828 74.2 827.8 74.2L827.8 74.2zM826.6 65.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C826.8 64.2 826.7 64.8 826.6 65.6L826.6 65.6z"/&gt;
      &lt;path class="red_bulb blink-1 bulb" d="M750.3 88.6c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C756.5 96.4 751.9 91.9 750.3 88.6z"/&gt;
          &lt;path class="light_fixture" d="M750.8 83.1c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L750.8 83.1z"/&gt;
          &lt;path class="light_fixture" d="M742 69.5c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C742.2 69.6 742.1 69.6 742 69.5L742 69.5zM740.7 60.9c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.6 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C740.9 59.6 740.8 60.1 740.7 60.9L740.7 60.9z"/&gt;
      &lt;path class="gold_bulb bulb blink-9" d="M671.1 63.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4H660c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C677.3 71.1 672.7 66.6 671.1 63.3z"/&gt;
          &lt;path class="light_fixture" d="M671.6 57.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1H670c0.5 0 1 0.4 1 1L671.6 57.8z"/&gt;
          &lt;path class="light_fixture" d="M662.7 44.3c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C663 44.3 662.9 44.3 662.7 44.3L662.7 44.3zM661.5 35.7c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C661.7 34.3 661.6 34.8 661.5 35.7L661.5 35.7z"/&gt;
      &lt;path class="green_bulb blink-10 bulb" d="M591.3 105.9c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C597.4 113.7 592.8 109.2 591.3 105.9z"/&gt;
          &lt;path class="light_fixture" d="M591.7 100.4c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L591.7 100.4z"/&gt;
          &lt;path class="light_fixture" d="M582.9 86.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C583.1 86.9 583 86.9 582.9 86.8L582.9 86.8zM581.6 78.2c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C581.8 76.8 581.7 77.4 581.6 78.2L581.6 78.2z"/&gt;
      &lt;path class="blue_bulb blink-1 bulb" d="M492.7 103.6c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C498.9 111.4 494.3 106.9 492.7 103.6z"/&gt;
          &lt;path class="light_fixture" d="M493.1 98.1c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L493.1 98.1z"/&gt;
          &lt;path class="light_fixture" d="M484.3 84.5c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C484.6 84.6 484.4 84.6 484.3 84.5L484.3 84.5zM483.1 75.9c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C483.2 74.5 483.1 75.1 483.1 75.9L483.1 75.9z"/&gt;
      &lt;path class="red_bulb blink-2 bulb" d="M406.8 93.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C413 101.1 408.4 96.6 406.8 93.3z"/&gt;
          &lt;path class="light_fixture" d="M407.3 87.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L407.3 87.8z"/&gt;
          &lt;path class="light_fixture" d="M398.4 74.3c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C398.7 74.3 398.6 74.3 398.4 74.3L398.4 74.3zM397.2 65.7c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.2 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C397.4 64.3 397.3 64.9 397.2 65.7L397.2 65.7z"/&gt;
      &lt;path class="white_bulb blink-3 bulb" d="M318.3 50c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C324.5 57.8 319.9 53.3 318.3 50z"/&gt;
          &lt;path class="light_fixture" d="M318.8 44.5c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.4-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.4 1 1L318.8 44.5z"/&gt;
          &lt;path class="light_fixture" d="M310 30.9c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C310.2 31 310.1 31 310 30.9L310 30.9zM308.7 22.3c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C308.9 21 308.8 21.5 308.7 22.3L308.7 22.3z"/&gt;
      &lt;path class="green_bulb blink-4 bulb" d="M232.5 80.9c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C238.6 88.7 234 84.2 232.5 80.9z"/&gt;
          &lt;path class="light_fixture" d="M232.9 75.4c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L232.9 75.4z"/&gt;
          &lt;path class="light_fixture" d="M224.1 61.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C224.3 61.9 224.2 61.9 224.1 61.8L224.1 61.8zM222.8 53.2c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.6 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C223 51.9 222.9 52.4 222.8 53.2L222.8 53.2z"/&gt;
      &lt;path class="blue_bulb blink-5 bulb" d="M148.8 92.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1s13.7-7.2 13.7-16.1C155 100.1 150.4 95.6 148.8 92.3z"/&gt;
          &lt;path class="light_fixture" d="M149.3 86.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L149.3 86.8z"/&gt;
          &lt;path class="light_fixture" d="M140.4 73.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C140.7 73.3 140.6 73.3 140.4 73.2L140.4 73.2zM139.2 64.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C139.4 63.3 139.3 63.8 139.2 64.6L139.2 64.6z"/&gt;
      &lt;path class="red_bulb blink-6 bulb" d="M65.2 95.9c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C71.4 103.7 66.7 99.2 65.2 95.9z"/&gt;
          &lt;path class="light_fixture" d="M65.6 90.4c0 0.5-0.4 1-1 1H50.6c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L65.6 90.4z"/&gt;
          &lt;path class="light_fixture" d="M56.8 76.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C57.1 76.9 56.9 76.9 56.8 76.8L56.8 76.8zM55.5 68.3c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C55.7 66.9 55.6 67.4 55.5 68.3L55.5 68.3z"/&gt;
      &lt;path class="gold_bulb blink-7 bulb" d="M-18.4 95.1c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-12.3 102.9-16.9 98.3-18.4 95.1z"/&gt;
          &lt;path class="light_fixture" d="M-18 89.6c0 0.5-0.4 1-1 1H-33c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-18 89.6z"/&gt;
          &lt;path class="light_fixture" d="M-26.8 76c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-26.6 76.1-26.7 76.1-26.8 76L-26.8 76zM-28.1 67.4c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.6 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-27.9 66-28 66.6-28.1 67.4L-28.1 67.4z"/&gt;
      &lt;path class="green_bulb bulb blink-9" d="M-102.1 75.8c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1s13.7-7.2 13.7-16.1C-95.9 83.6-100.5 79.1-102.1 75.8z"/&gt;
          &lt;path class="light_fixture" d="M-101.7 70.3c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-101.7 70.3z"/&gt;
          &lt;path class="light_fixture" d="M-110.5 56.7c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-110.2 56.8-110.3 56.8-110.5 56.7L-110.5 56.7zM-111.7 48.1c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-111.6 46.8-111.6 47.3-111.7 48.1L-111.7 48.1z"/&gt;
      &lt;path class="blue_bulb blink-10 bulb" d="M-185.7 35.8c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-179.5 43.6-184.2 39.1-185.7 35.8z"/&gt;
          &lt;path class="light_fixture" d="M-185.3 30.3c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.4-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.4 1 1L-185.3 30.3z"/&gt;
          &lt;path class="light_fixture" d="M-194.1 16.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-193.9 16.8-194 16.8-194.1 16.8L-194.1 16.8zM-195.4 8.2c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-195.2 6.8-195.3 7.4-195.4 8.2L-195.4 8.2z"/&gt;
      &lt;path class="red_bulb blink-1 bulb" d="M-269.4 75.4c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-263.2 83.2-267.8 78.7-269.4 75.4z"/&gt;
          &lt;path class="light_fixture" d="M-268.9 69.9c0 0.5-0.4 1-1 1H-284c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-268.9 69.9z"/&gt;
          &lt;path class="light_fixture" d="M-277.7 56.3c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-277.5 56.4-277.6 56.4-277.7 56.3L-277.7 56.3zM-279 47.7c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-278.8 46.4-278.9 46.9-279 47.7L-279 47.7z"/&gt;
      &lt;path class="white_bulb blink-2 bulb" d="M-353.4 93.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-347.2 101.1-351.9 96.6-353.4 93.3z"/&gt;
          &lt;path class="light_fixture" d="M-353 87.8c0 0.5-0.4 1-1 1H-368c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-353 87.8z"/&gt;
          &lt;path class="light_fixture" d="M-361.8 74.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-361.6 74.3-361.7 74.3-361.8 74.2L-361.8 74.2zM-363.1 65.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.2 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-362.9 64.3-363 64.8-363.1 65.6L-363.1 65.6z"/&gt;
      &lt;path class="green_bulb blink-3 bulb" d="M-436.6 93.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-430.5 101.1-435.1 96.6-436.6 93.3z"/&gt;
          &lt;path class="light_fixture" d="M-436.2 87.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-436.2 87.8z"/&gt;
          &lt;path class="light_fixture" d="M-445 74.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-444.8 74.3-444.9 74.3-445 74.2L-445 74.2zM-446.3 65.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.2 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-446.1 64.3-446.2 64.8-446.3 65.6L-446.3 65.6z"/&gt;
      &lt;path class="blue_bulb blink-10 bulb" d="M-519.8 81.2c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1s13.7-7.2 13.7-16.1C-513.7 89-518.3 84.5-519.8 81.2z"/&gt;
          &lt;path class="light_fixture" d="M-519.4 75.7c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-519.4 75.7z"/&gt;
          &lt;path class="light_fixture" d="M-528.2 62.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-528 62.3-528.1 62.2-528.2 62.2L-528.2 62.2zM-529.5 53.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-529.3 52.2-529.4 52.8-529.5 53.6L-529.5 53.6z"/&gt;
      &lt;path class="red_bulb blink-5 bulb" d="M-602.6 46c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-596.4 53.8-601.1 49.2-602.6 46z"/&gt;
          &lt;path class="light_fixture" d="M-602.2 40.4c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.4-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.6 0 1 0.4 1 1L-602.2 40.4z"/&gt;
          &lt;path class="light_fixture" d="M-611 26.9c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-610.7 27-610.9 26.9-611 26.9L-611 26.9zM-612.3 18.3c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-612.1 16.9-612.2 17.5-612.3 18.3L-612.3 18.3z"/&gt;
&lt;/svg&gt;



</code></pre><br><b>CSS</b><br><pre><code>/* Simple SVG Christmas Lights Animation */

body {
  background: #2AA5A0
}

#Christmas_Lights {
  height: 100%;
  margin: 0;
  position: absolute;
  width: 100%;
  z-index: 1000
}

.light_cord {
  fill: none;
  stroke: #174700;
}

.light_fixture {
  fill: #134413;
}

.red_bulb {
  fill: #CA2128;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}

.green_bulb {
  fill: #2D754A;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}

.blue_bulb {
  fill: #2C3EA8;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}

.white_bulb {
  fill: #F5EED7;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}

.gold_bulb {
  fill: #ffcc5e;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}


/* Simply changing the opacity of the SVG fill to create the glow effect for the bulbs */

.bulb {
  -webkit-animation-duration: 0.5s;
  -webkit-animation-name: glow;
  -webkit-animation-iteration-count: infinite;
  -webkit-animation-timing-function: ease-in-out;
  -webkit-animation-direction: alternate;
  animation-name: glow;
  animation-duration: 0.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
  animation-direction: alternate;
}

@-webkit-keyframes glow {
  0% {
    fill-opacity: 0.25;
  }
  100% {
    fill-opacity: 1
  }
}

@keyframes glow {
  0% {
    fill-opacity: 0.25;
  }
  100% {
    fill-opacity: 1.0
  }
}


/* Made a set of ten animation delays to create a more random effect of lights blinking.  Simplest way without jumping through SVG hoops. */

.blink-1 {
  -webkit-animation-delay: 0.6s;
  animation-delay: 0.6s;
}

.blink-2 {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

.blink-3 {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

.blink-4 {
  -webkit-animation-delay: 6s;
  animation-delay: 6s;
}

.blink-5 {
  -webkit-animation-delay: 2.5s;
  animation-delay: 2.5s;
}

.blink-6 {
  -webkit-animation-delay: .3s;
  animation-delay: .3s;
}

.blink-7 {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

.blink-8 {
  -webkit-animation-delay: .2s;
  animation-delay: .2s;
}

.blink-9 {
  -webkit-animation-delay: 0.95s;
  animation-delay: 0.95s;
}

.blink-10 {
  -webkit-animation-delay: 1.2s;
  animation-delay: 1.2s;
}



</code></pre>]]></description>
<turbo:content><![CDATA[ <a class="highslide" href="https://for-web.ru/uploads/posts/2020-12/1607782161_bezymjannyj.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2020-12/thumbs/1607782161_bezymjannyj.jpg" alt="" class="fr-dib"></a>Простая гирлянда, выполненная на основе <b>SVG</b>-изображений и CSS. Все лампочки в гирлянде плавно мигают. Можно экспериментировать с фоном, общим стилем, цветом лампочек, скоростью воспроизведения анимации и так далее.<br><br><b>HTML</b><br><pre><code>&lt;svg id="Christmas_Lights" viewBox="0 0 612 792"&gt;
    &lt;path class="light_cord" d="M-673.8-29.1c17.3 23.7 38.1 34.3 63.6 48.8 45.4 25.7 93.4 39.1 145.4 44.4 58 6 112.1 6.2 164-9 64.2-18.8 113.7-51 113.7-51 13.3 17.3 28.1 25.3 50.1 34.5 20.3 8.5 43.8 17 66.1 23 30.1 8.1 67.1 8.4 99.1 8.3 66.5-0.1 134-3.3 197.4-17.8 30.3-6.9 76-24 89.3-32 9.3 4.7 22.4 16.1 34.7 22.8 34 18.6 73.2 33.8 111 42.8 46.1 11 93.6 5.6 137-12.8 14.4-6.1 56.6-26.1 65.7-38.5 8.8 15.1 102.8 33.1 151.5 32.5 68.4-0.8 142.2-10.5 196.7-55.9 9.7 11.9 28.3 20 42.5 25.2 35.5 12.9 76.3 22 113.9 24.9 50.2 3.9 100.3 3.9 150.1-5.3 25.6-4.7 50.6-14.2 74.4-24.8 6.7-3 36.4-14.8 43.1-20.1"/&gt;
      &lt;path class="red_bulb bulb blink-1" d="M1351.5 76.9c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1357.7 84.7 1353 80.2 1351.5 76.9z"/&gt;
          &lt;path class="light_fixture" d="M1351.9 71.4c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L1351.9 71.4z"/&gt;
          &lt;path class="light_fixture" d="M1343.1 57.9c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1343.4 58 1343.2 57.9 1343.1 57.9L1343.1 57.9zM1341.8 49.3c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1342 47.9 1341.9 48.5 1341.8 49.3L1341.8 49.3z"/&gt;
      &lt;path class="green_bulb blink-2 bulb" d="M1265.6 90.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1271.8 98.1 1267.2 93.6 1265.6 90.3z"/&gt;
          &lt;path class="light_fixture" d="M1266 84.8c0 0.5-0.4 1-1 1H1251c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L1266 84.8z"/&gt;
          &lt;path class="light_fixture" d="M1257.2 71.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1257.5 71.3 1257.4 71.3 1257.2 71.2L1257.2 71.2zM1256 62.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1256.1 61.3 1256.1 61.8 1256 62.6L1256 62.6z"/&gt;
      &lt;path class="blue_bulb blink-3 bulb" d="M1179.7 90.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1185.9 98.1 1181.3 93.6 1179.7 90.3z"/&gt;
          &lt;path class="light_fixture" d="M1180.2 84.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L1180.2 84.8z"/&gt;
          &lt;path class="light_fixture" d="M1171.3 71.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1171.6 71.3 1171.5 71.3 1171.3 71.2L1171.3 71.2zM1170.1 62.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1170.3 61.3 1170.2 61.8 1170.1 62.6L1170.1 62.6z"/&gt;
      &lt;path class="red_bulb blink-4 bulb" d="M1093.9 73.8c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1100 81.6 1095.4 77 1093.9 73.8z"/&gt;
          &lt;path class="light_fixture" d="M1094.3 68.3c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.4 1 1L1094.3 68.3z"/&gt;
          &lt;path class="light_fixture" d="M1085.5 54.7c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1085.7 54.8 1085.6 54.8 1085.5 54.7L1085.5 54.7zM1084.2 46.1c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1084.4 44.7 1084.3 45.3 1084.2 46.1L1084.2 46.1z"/&gt;
      &lt;path class="green_bulb blink-5 bulb" d="M1019 39.8c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1025.1 47.6 1020.5 43.1 1019 39.8z"/&gt;
          &lt;path class="light_fixture" d="M1019.4 34.3c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.4-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.4 1 1L1019.4 34.3z"/&gt;
          &lt;path class="light_fixture" d="M1010.6 20.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1010.8 20.8 1010.7 20.8 1010.6 20.8L1010.6 20.8zM1009.3 12.2c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1009.5 10.8 1009.4 11.3 1009.3 12.2L1009.3 12.2z"/&gt;
      &lt;path class="white_bulb blink-6 bulb" d="M928.5 83.2c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C934.7 91 930.1 86.4 928.5 83.2z"/&gt;
          &lt;path class="light_fixture" d="M928.9 77.6c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L928.9 77.6z"/&gt;
          &lt;path class="light_fixture" d="M920.1 64.1c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C920.4 64.2 920.2 64.1 920.1 64.1L920.1 64.1zM918.9 55.5c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C919 54.1 918.9 54.7 918.9 55.5L918.9 55.5z"/&gt;
      &lt;path class="blue_bulb blink-7 bulb" d="M836.2 93.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C842.4 101.1 837.8 96.5 836.2 93.3z"/&gt;
          &lt;path class="light_fixture" d="M836.6 87.7c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L836.6 87.7z"/&gt;
          &lt;path class="light_fixture" d="M827.8 74.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C828.1 74.3 828 74.2 827.8 74.2L827.8 74.2zM826.6 65.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C826.8 64.2 826.7 64.8 826.6 65.6L826.6 65.6z"/&gt;
      &lt;path class="red_bulb blink-1 bulb" d="M750.3 88.6c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C756.5 96.4 751.9 91.9 750.3 88.6z"/&gt;
          &lt;path class="light_fixture" d="M750.8 83.1c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L750.8 83.1z"/&gt;
          &lt;path class="light_fixture" d="M742 69.5c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C742.2 69.6 742.1 69.6 742 69.5L742 69.5zM740.7 60.9c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.6 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C740.9 59.6 740.8 60.1 740.7 60.9L740.7 60.9z"/&gt;
      &lt;path class="gold_bulb bulb blink-9" d="M671.1 63.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4H660c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C677.3 71.1 672.7 66.6 671.1 63.3z"/&gt;
          &lt;path class="light_fixture" d="M671.6 57.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1H670c0.5 0 1 0.4 1 1L671.6 57.8z"/&gt;
          &lt;path class="light_fixture" d="M662.7 44.3c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C663 44.3 662.9 44.3 662.7 44.3L662.7 44.3zM661.5 35.7c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C661.7 34.3 661.6 34.8 661.5 35.7L661.5 35.7z"/&gt;
      &lt;path class="green_bulb blink-10 bulb" d="M591.3 105.9c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C597.4 113.7 592.8 109.2 591.3 105.9z"/&gt;
          &lt;path class="light_fixture" d="M591.7 100.4c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L591.7 100.4z"/&gt;
          &lt;path class="light_fixture" d="M582.9 86.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C583.1 86.9 583 86.9 582.9 86.8L582.9 86.8zM581.6 78.2c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C581.8 76.8 581.7 77.4 581.6 78.2L581.6 78.2z"/&gt;
      &lt;path class="blue_bulb blink-1 bulb" d="M492.7 103.6c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C498.9 111.4 494.3 106.9 492.7 103.6z"/&gt;
          &lt;path class="light_fixture" d="M493.1 98.1c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L493.1 98.1z"/&gt;
          &lt;path class="light_fixture" d="M484.3 84.5c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C484.6 84.6 484.4 84.6 484.3 84.5L484.3 84.5zM483.1 75.9c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C483.2 74.5 483.1 75.1 483.1 75.9L483.1 75.9z"/&gt;
      &lt;path class="red_bulb blink-2 bulb" d="M406.8 93.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C413 101.1 408.4 96.6 406.8 93.3z"/&gt;
          &lt;path class="light_fixture" d="M407.3 87.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L407.3 87.8z"/&gt;
          &lt;path class="light_fixture" d="M398.4 74.3c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C398.7 74.3 398.6 74.3 398.4 74.3L398.4 74.3zM397.2 65.7c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.2 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C397.4 64.3 397.3 64.9 397.2 65.7L397.2 65.7z"/&gt;
      &lt;path class="white_bulb blink-3 bulb" d="M318.3 50c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C324.5 57.8 319.9 53.3 318.3 50z"/&gt;
          &lt;path class="light_fixture" d="M318.8 44.5c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.4-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.4 1 1L318.8 44.5z"/&gt;
          &lt;path class="light_fixture" d="M310 30.9c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C310.2 31 310.1 31 310 30.9L310 30.9zM308.7 22.3c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C308.9 21 308.8 21.5 308.7 22.3L308.7 22.3z"/&gt;
      &lt;path class="green_bulb blink-4 bulb" d="M232.5 80.9c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C238.6 88.7 234 84.2 232.5 80.9z"/&gt;
          &lt;path class="light_fixture" d="M232.9 75.4c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L232.9 75.4z"/&gt;
          &lt;path class="light_fixture" d="M224.1 61.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C224.3 61.9 224.2 61.9 224.1 61.8L224.1 61.8zM222.8 53.2c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.6 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C223 51.9 222.9 52.4 222.8 53.2L222.8 53.2z"/&gt;
      &lt;path class="blue_bulb blink-5 bulb" d="M148.8 92.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1s13.7-7.2 13.7-16.1C155 100.1 150.4 95.6 148.8 92.3z"/&gt;
          &lt;path class="light_fixture" d="M149.3 86.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L149.3 86.8z"/&gt;
          &lt;path class="light_fixture" d="M140.4 73.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C140.7 73.3 140.6 73.3 140.4 73.2L140.4 73.2zM139.2 64.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C139.4 63.3 139.3 63.8 139.2 64.6L139.2 64.6z"/&gt;
      &lt;path class="red_bulb blink-6 bulb" d="M65.2 95.9c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C71.4 103.7 66.7 99.2 65.2 95.9z"/&gt;
          &lt;path class="light_fixture" d="M65.6 90.4c0 0.5-0.4 1-1 1H50.6c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L65.6 90.4z"/&gt;
          &lt;path class="light_fixture" d="M56.8 76.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C57.1 76.9 56.9 76.9 56.8 76.8L56.8 76.8zM55.5 68.3c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C55.7 66.9 55.6 67.4 55.5 68.3L55.5 68.3z"/&gt;
      &lt;path class="gold_bulb blink-7 bulb" d="M-18.4 95.1c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-12.3 102.9-16.9 98.3-18.4 95.1z"/&gt;
          &lt;path class="light_fixture" d="M-18 89.6c0 0.5-0.4 1-1 1H-33c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-18 89.6z"/&gt;
          &lt;path class="light_fixture" d="M-26.8 76c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-26.6 76.1-26.7 76.1-26.8 76L-26.8 76zM-28.1 67.4c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.6 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-27.9 66-28 66.6-28.1 67.4L-28.1 67.4z"/&gt;
      &lt;path class="green_bulb bulb blink-9" d="M-102.1 75.8c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1s13.7-7.2 13.7-16.1C-95.9 83.6-100.5 79.1-102.1 75.8z"/&gt;
          &lt;path class="light_fixture" d="M-101.7 70.3c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-101.7 70.3z"/&gt;
          &lt;path class="light_fixture" d="M-110.5 56.7c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-110.2 56.8-110.3 56.8-110.5 56.7L-110.5 56.7zM-111.7 48.1c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-111.6 46.8-111.6 47.3-111.7 48.1L-111.7 48.1z"/&gt;
      &lt;path class="blue_bulb blink-10 bulb" d="M-185.7 35.8c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-179.5 43.6-184.2 39.1-185.7 35.8z"/&gt;
          &lt;path class="light_fixture" d="M-185.3 30.3c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.4-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.4 1 1L-185.3 30.3z"/&gt;
          &lt;path class="light_fixture" d="M-194.1 16.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-193.9 16.8-194 16.8-194.1 16.8L-194.1 16.8zM-195.4 8.2c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-195.2 6.8-195.3 7.4-195.4 8.2L-195.4 8.2z"/&gt;
      &lt;path class="red_bulb blink-1 bulb" d="M-269.4 75.4c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-263.2 83.2-267.8 78.7-269.4 75.4z"/&gt;
          &lt;path class="light_fixture" d="M-268.9 69.9c0 0.5-0.4 1-1 1H-284c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-268.9 69.9z"/&gt;
          &lt;path class="light_fixture" d="M-277.7 56.3c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-277.5 56.4-277.6 56.4-277.7 56.3L-277.7 56.3zM-279 47.7c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-278.8 46.4-278.9 46.9-279 47.7L-279 47.7z"/&gt;
      &lt;path class="white_bulb blink-2 bulb" d="M-353.4 93.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-347.2 101.1-351.9 96.6-353.4 93.3z"/&gt;
          &lt;path class="light_fixture" d="M-353 87.8c0 0.5-0.4 1-1 1H-368c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-353 87.8z"/&gt;
          &lt;path class="light_fixture" d="M-361.8 74.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-361.6 74.3-361.7 74.3-361.8 74.2L-361.8 74.2zM-363.1 65.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.2 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-362.9 64.3-363 64.8-363.1 65.6L-363.1 65.6z"/&gt;
      &lt;path class="green_bulb blink-3 bulb" d="M-436.6 93.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-430.5 101.1-435.1 96.6-436.6 93.3z"/&gt;
          &lt;path class="light_fixture" d="M-436.2 87.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-436.2 87.8z"/&gt;
          &lt;path class="light_fixture" d="M-445 74.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-444.8 74.3-444.9 74.3-445 74.2L-445 74.2zM-446.3 65.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.2 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-446.1 64.3-446.2 64.8-446.3 65.6L-446.3 65.6z"/&gt;
      &lt;path class="blue_bulb blink-10 bulb" d="M-519.8 81.2c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1s13.7-7.2 13.7-16.1C-513.7 89-518.3 84.5-519.8 81.2z"/&gt;
          &lt;path class="light_fixture" d="M-519.4 75.7c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-519.4 75.7z"/&gt;
          &lt;path class="light_fixture" d="M-528.2 62.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-528 62.3-528.1 62.2-528.2 62.2L-528.2 62.2zM-529.5 53.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-529.3 52.2-529.4 52.8-529.5 53.6L-529.5 53.6z"/&gt;
      &lt;path class="red_bulb blink-5 bulb" d="M-602.6 46c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-596.4 53.8-601.1 49.2-602.6 46z"/&gt;
          &lt;path class="light_fixture" d="M-602.2 40.4c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.4-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.6 0 1 0.4 1 1L-602.2 40.4z"/&gt;
          &lt;path class="light_fixture" d="M-611 26.9c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-610.7 27-610.9 26.9-611 26.9L-611 26.9zM-612.3 18.3c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-612.1 16.9-612.2 17.5-612.3 18.3L-612.3 18.3z"/&gt;
&lt;/svg&gt;



</code></pre><br><b>CSS</b><br><pre><code>/* Simple SVG Christmas Lights Animation */

body {
  background: #2AA5A0
}

#Christmas_Lights {
  height: 100%;
  margin: 0;
  position: absolute;
  width: 100%;
  z-index: 1000
}

.light_cord {
  fill: none;
  stroke: #174700;
}

.light_fixture {
  fill: #134413;
}

.red_bulb {
  fill: #CA2128;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}

.green_bulb {
  fill: #2D754A;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}

.blue_bulb {
  fill: #2C3EA8;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}

.white_bulb {
  fill: #F5EED7;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}

.gold_bulb {
  fill: #ffcc5e;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}


/* Simply changing the opacity of the SVG fill to create the glow effect for the bulbs */

.bulb {
  -webkit-animation-duration: 0.5s;
  -webkit-animation-name: glow;
  -webkit-animation-iteration-count: infinite;
  -webkit-animation-timing-function: ease-in-out;
  -webkit-animation-direction: alternate;
  animation-name: glow;
  animation-duration: 0.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
  animation-direction: alternate;
}

@-webkit-keyframes glow {
  0% {
    fill-opacity: 0.25;
  }
  100% {
    fill-opacity: 1
  }
}

@keyframes glow {
  0% {
    fill-opacity: 0.25;
  }
  100% {
    fill-opacity: 1.0
  }
}


/* Made a set of ten animation delays to create a more random effect of lights blinking.  Simplest way without jumping through SVG hoops. */

.blink-1 {
  -webkit-animation-delay: 0.6s;
  animation-delay: 0.6s;
}

.blink-2 {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

.blink-3 {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

.blink-4 {
  -webkit-animation-delay: 6s;
  animation-delay: 6s;
}

.blink-5 {
  -webkit-animation-delay: 2.5s;
  animation-delay: 2.5s;
}

.blink-6 {
  -webkit-animation-delay: .3s;
  animation-delay: .3s;
}

.blink-7 {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

.blink-8 {
  -webkit-animation-delay: .2s;
  animation-delay: .2s;
}

.blink-9 {
  -webkit-animation-delay: 0.95s;
  animation-delay: 0.95s;
}

.blink-10 {
  -webkit-animation-delay: 1.2s;
  animation-delay: 1.2s;
}



</code></pre> ]]></turbo:content>
<content:encoded><![CDATA[ <a class="highslide" href="https://for-web.ru/uploads/posts/2020-12/1607782161_bezymjannyj.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2020-12/thumbs/1607782161_bezymjannyj.jpg" alt="" class="fr-dib"></a>Простая гирлянда, выполненная на основе <b>SVG</b>-изображений и CSS. Все лампочки в гирлянде плавно мигают. Можно экспериментировать с фоном, общим стилем, цветом лампочек, скоростью воспроизведения анимации и так далее.<br><br><b>HTML</b><br><pre><code>&lt;svg id="Christmas_Lights" viewBox="0 0 612 792"&gt;
    &lt;path class="light_cord" d="M-673.8-29.1c17.3 23.7 38.1 34.3 63.6 48.8 45.4 25.7 93.4 39.1 145.4 44.4 58 6 112.1 6.2 164-9 64.2-18.8 113.7-51 113.7-51 13.3 17.3 28.1 25.3 50.1 34.5 20.3 8.5 43.8 17 66.1 23 30.1 8.1 67.1 8.4 99.1 8.3 66.5-0.1 134-3.3 197.4-17.8 30.3-6.9 76-24 89.3-32 9.3 4.7 22.4 16.1 34.7 22.8 34 18.6 73.2 33.8 111 42.8 46.1 11 93.6 5.6 137-12.8 14.4-6.1 56.6-26.1 65.7-38.5 8.8 15.1 102.8 33.1 151.5 32.5 68.4-0.8 142.2-10.5 196.7-55.9 9.7 11.9 28.3 20 42.5 25.2 35.5 12.9 76.3 22 113.9 24.9 50.2 3.9 100.3 3.9 150.1-5.3 25.6-4.7 50.6-14.2 74.4-24.8 6.7-3 36.4-14.8 43.1-20.1"/&gt;
      &lt;path class="red_bulb bulb blink-1" d="M1351.5 76.9c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1357.7 84.7 1353 80.2 1351.5 76.9z"/&gt;
          &lt;path class="light_fixture" d="M1351.9 71.4c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L1351.9 71.4z"/&gt;
          &lt;path class="light_fixture" d="M1343.1 57.9c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1343.4 58 1343.2 57.9 1343.1 57.9L1343.1 57.9zM1341.8 49.3c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1342 47.9 1341.9 48.5 1341.8 49.3L1341.8 49.3z"/&gt;
      &lt;path class="green_bulb blink-2 bulb" d="M1265.6 90.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1271.8 98.1 1267.2 93.6 1265.6 90.3z"/&gt;
          &lt;path class="light_fixture" d="M1266 84.8c0 0.5-0.4 1-1 1H1251c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L1266 84.8z"/&gt;
          &lt;path class="light_fixture" d="M1257.2 71.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1257.5 71.3 1257.4 71.3 1257.2 71.2L1257.2 71.2zM1256 62.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1256.1 61.3 1256.1 61.8 1256 62.6L1256 62.6z"/&gt;
      &lt;path class="blue_bulb blink-3 bulb" d="M1179.7 90.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1185.9 98.1 1181.3 93.6 1179.7 90.3z"/&gt;
          &lt;path class="light_fixture" d="M1180.2 84.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L1180.2 84.8z"/&gt;
          &lt;path class="light_fixture" d="M1171.3 71.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1171.6 71.3 1171.5 71.3 1171.3 71.2L1171.3 71.2zM1170.1 62.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1170.3 61.3 1170.2 61.8 1170.1 62.6L1170.1 62.6z"/&gt;
      &lt;path class="red_bulb blink-4 bulb" d="M1093.9 73.8c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1100 81.6 1095.4 77 1093.9 73.8z"/&gt;
          &lt;path class="light_fixture" d="M1094.3 68.3c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.4 1 1L1094.3 68.3z"/&gt;
          &lt;path class="light_fixture" d="M1085.5 54.7c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1085.7 54.8 1085.6 54.8 1085.5 54.7L1085.5 54.7zM1084.2 46.1c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1084.4 44.7 1084.3 45.3 1084.2 46.1L1084.2 46.1z"/&gt;
      &lt;path class="green_bulb blink-5 bulb" d="M1019 39.8c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C1025.1 47.6 1020.5 43.1 1019 39.8z"/&gt;
          &lt;path class="light_fixture" d="M1019.4 34.3c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.4-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.4 1 1L1019.4 34.3z"/&gt;
          &lt;path class="light_fixture" d="M1010.6 20.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C1010.8 20.8 1010.7 20.8 1010.6 20.8L1010.6 20.8zM1009.3 12.2c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C1009.5 10.8 1009.4 11.3 1009.3 12.2L1009.3 12.2z"/&gt;
      &lt;path class="white_bulb blink-6 bulb" d="M928.5 83.2c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C934.7 91 930.1 86.4 928.5 83.2z"/&gt;
          &lt;path class="light_fixture" d="M928.9 77.6c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L928.9 77.6z"/&gt;
          &lt;path class="light_fixture" d="M920.1 64.1c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C920.4 64.2 920.2 64.1 920.1 64.1L920.1 64.1zM918.9 55.5c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C919 54.1 918.9 54.7 918.9 55.5L918.9 55.5z"/&gt;
      &lt;path class="blue_bulb blink-7 bulb" d="M836.2 93.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C842.4 101.1 837.8 96.5 836.2 93.3z"/&gt;
          &lt;path class="light_fixture" d="M836.6 87.7c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L836.6 87.7z"/&gt;
          &lt;path class="light_fixture" d="M827.8 74.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C828.1 74.3 828 74.2 827.8 74.2L827.8 74.2zM826.6 65.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C826.8 64.2 826.7 64.8 826.6 65.6L826.6 65.6z"/&gt;
      &lt;path class="red_bulb blink-1 bulb" d="M750.3 88.6c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C756.5 96.4 751.9 91.9 750.3 88.6z"/&gt;
          &lt;path class="light_fixture" d="M750.8 83.1c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L750.8 83.1z"/&gt;
          &lt;path class="light_fixture" d="M742 69.5c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C742.2 69.6 742.1 69.6 742 69.5L742 69.5zM740.7 60.9c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.6 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C740.9 59.6 740.8 60.1 740.7 60.9L740.7 60.9z"/&gt;
      &lt;path class="gold_bulb bulb blink-9" d="M671.1 63.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4H660c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C677.3 71.1 672.7 66.6 671.1 63.3z"/&gt;
          &lt;path class="light_fixture" d="M671.6 57.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1H670c0.5 0 1 0.4 1 1L671.6 57.8z"/&gt;
          &lt;path class="light_fixture" d="M662.7 44.3c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C663 44.3 662.9 44.3 662.7 44.3L662.7 44.3zM661.5 35.7c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C661.7 34.3 661.6 34.8 661.5 35.7L661.5 35.7z"/&gt;
      &lt;path class="green_bulb blink-10 bulb" d="M591.3 105.9c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C597.4 113.7 592.8 109.2 591.3 105.9z"/&gt;
          &lt;path class="light_fixture" d="M591.7 100.4c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L591.7 100.4z"/&gt;
          &lt;path class="light_fixture" d="M582.9 86.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C583.1 86.9 583 86.9 582.9 86.8L582.9 86.8zM581.6 78.2c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C581.8 76.8 581.7 77.4 581.6 78.2L581.6 78.2z"/&gt;
      &lt;path class="blue_bulb blink-1 bulb" d="M492.7 103.6c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C498.9 111.4 494.3 106.9 492.7 103.6z"/&gt;
          &lt;path class="light_fixture" d="M493.1 98.1c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L493.1 98.1z"/&gt;
          &lt;path class="light_fixture" d="M484.3 84.5c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C484.6 84.6 484.4 84.6 484.3 84.5L484.3 84.5zM483.1 75.9c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C483.2 74.5 483.1 75.1 483.1 75.9L483.1 75.9z"/&gt;
      &lt;path class="red_bulb blink-2 bulb" d="M406.8 93.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C413 101.1 408.4 96.6 406.8 93.3z"/&gt;
          &lt;path class="light_fixture" d="M407.3 87.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L407.3 87.8z"/&gt;
          &lt;path class="light_fixture" d="M398.4 74.3c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C398.7 74.3 398.6 74.3 398.4 74.3L398.4 74.3zM397.2 65.7c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.2 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C397.4 64.3 397.3 64.9 397.2 65.7L397.2 65.7z"/&gt;
      &lt;path class="white_bulb blink-3 bulb" d="M318.3 50c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C324.5 57.8 319.9 53.3 318.3 50z"/&gt;
          &lt;path class="light_fixture" d="M318.8 44.5c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.4-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.4 1 1L318.8 44.5z"/&gt;
          &lt;path class="light_fixture" d="M310 30.9c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C310.2 31 310.1 31 310 30.9L310 30.9zM308.7 22.3c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C308.9 21 308.8 21.5 308.7 22.3L308.7 22.3z"/&gt;
      &lt;path class="green_bulb blink-4 bulb" d="M232.5 80.9c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C238.6 88.7 234 84.2 232.5 80.9z"/&gt;
          &lt;path class="light_fixture" d="M232.9 75.4c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L232.9 75.4z"/&gt;
          &lt;path class="light_fixture" d="M224.1 61.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C224.3 61.9 224.2 61.9 224.1 61.8L224.1 61.8zM222.8 53.2c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.6 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C223 51.9 222.9 52.4 222.8 53.2L222.8 53.2z"/&gt;
      &lt;path class="blue_bulb blink-5 bulb" d="M148.8 92.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1s13.7-7.2 13.7-16.1C155 100.1 150.4 95.6 148.8 92.3z"/&gt;
          &lt;path class="light_fixture" d="M149.3 86.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L149.3 86.8z"/&gt;
          &lt;path class="light_fixture" d="M140.4 73.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C140.7 73.3 140.6 73.3 140.4 73.2L140.4 73.2zM139.2 64.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C139.4 63.3 139.3 63.8 139.2 64.6L139.2 64.6z"/&gt;
      &lt;path class="red_bulb blink-6 bulb" d="M65.2 95.9c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C71.4 103.7 66.7 99.2 65.2 95.9z"/&gt;
          &lt;path class="light_fixture" d="M65.6 90.4c0 0.5-0.4 1-1 1H50.6c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L65.6 90.4z"/&gt;
          &lt;path class="light_fixture" d="M56.8 76.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C57.1 76.9 56.9 76.9 56.8 76.8L56.8 76.8zM55.5 68.3c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C55.7 66.9 55.6 67.4 55.5 68.3L55.5 68.3z"/&gt;
      &lt;path class="gold_bulb blink-7 bulb" d="M-18.4 95.1c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-12.3 102.9-16.9 98.3-18.4 95.1z"/&gt;
          &lt;path class="light_fixture" d="M-18 89.6c0 0.5-0.4 1-1 1H-33c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-18 89.6z"/&gt;
          &lt;path class="light_fixture" d="M-26.8 76c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-26.6 76.1-26.7 76.1-26.8 76L-26.8 76zM-28.1 67.4c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.6 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-27.9 66-28 66.6-28.1 67.4L-28.1 67.4z"/&gt;
      &lt;path class="green_bulb bulb blink-9" d="M-102.1 75.8c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1s13.7-7.2 13.7-16.1C-95.9 83.6-100.5 79.1-102.1 75.8z"/&gt;
          &lt;path class="light_fixture" d="M-101.7 70.3c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-101.7 70.3z"/&gt;
          &lt;path class="light_fixture" d="M-110.5 56.7c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-110.2 56.8-110.3 56.8-110.5 56.7L-110.5 56.7zM-111.7 48.1c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-111.6 46.8-111.6 47.3-111.7 48.1L-111.7 48.1z"/&gt;
      &lt;path class="blue_bulb blink-10 bulb" d="M-185.7 35.8c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-179.5 43.6-184.2 39.1-185.7 35.8z"/&gt;
          &lt;path class="light_fixture" d="M-185.3 30.3c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.4-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.4 1 1L-185.3 30.3z"/&gt;
          &lt;path class="light_fixture" d="M-194.1 16.8c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-193.9 16.8-194 16.8-194.1 16.8L-194.1 16.8zM-195.4 8.2c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-195.2 6.8-195.3 7.4-195.4 8.2L-195.4 8.2z"/&gt;
      &lt;path class="red_bulb blink-1 bulb" d="M-269.4 75.4c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-263.2 83.2-267.8 78.7-269.4 75.4z"/&gt;
          &lt;path class="light_fixture" d="M-268.9 69.9c0 0.5-0.4 1-1 1H-284c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-268.9 69.9z"/&gt;
          &lt;path class="light_fixture" d="M-277.7 56.3c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-277.5 56.4-277.6 56.4-277.7 56.3L-277.7 56.3zM-279 47.7c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-278.8 46.4-278.9 46.9-279 47.7L-279 47.7z"/&gt;
      &lt;path class="white_bulb blink-2 bulb" d="M-353.4 93.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-347.2 101.1-351.9 96.6-353.4 93.3z"/&gt;
          &lt;path class="light_fixture" d="M-353 87.8c0 0.5-0.4 1-1 1H-368c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-353 87.8z"/&gt;
          &lt;path class="light_fixture" d="M-361.8 74.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-361.6 74.3-361.7 74.3-361.8 74.2L-361.8 74.2zM-363.1 65.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.2 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-362.9 64.3-363 64.8-363.1 65.6L-363.1 65.6z"/&gt;
      &lt;path class="green_bulb blink-3 bulb" d="M-436.6 93.3c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-430.5 101.1-435.1 96.6-436.6 93.3z"/&gt;
          &lt;path class="light_fixture" d="M-436.2 87.8c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-436.2 87.8z"/&gt;
          &lt;path class="light_fixture" d="M-445 74.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-444.8 74.3-444.9 74.3-445 74.2L-445 74.2zM-446.3 65.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.2 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-446.1 64.3-446.2 64.8-446.3 65.6L-446.3 65.6z"/&gt;
      &lt;path class="blue_bulb blink-10 bulb" d="M-519.8 81.2c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1s13.7-7.2 13.7-16.1C-513.7 89-518.3 84.5-519.8 81.2z"/&gt;
          &lt;path class="light_fixture" d="M-519.4 75.7c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.5-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.5 0 1 0.5 1 1L-519.4 75.7z"/&gt;
          &lt;path class="light_fixture" d="M-528.2 62.2c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-528 62.3-528.1 62.2-528.2 62.2L-528.2 62.2zM-529.5 53.6c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-529.3 52.2-529.4 52.8-529.5 53.6L-529.5 53.6z"/&gt;
      &lt;path class="red_bulb blink-5 bulb" d="M-602.6 46c-1.5-3.3-0.6-11-0.6-11 0-2.2-1.2-4-3.4-4h-7.1c-2.2 0-3.4 1.8-3.4 4 0 0 0.7 7.5-0.6 11 -1.2 3.5-6.2 7.8-6.2 13.4 0 8.9 6.2 16.1 13.7 16.1 7.6 0 13.7-7.2 13.7-16.1C-596.4 53.8-601.1 49.2-602.6 46z"/&gt;
          &lt;path class="light_fixture" d="M-602.2 40.4c0 0.5-0.4 1-1 1h-14.1c-0.5 0-1-0.4-1-1l0.5-14.9c0-0.5 0.5-1 1-1h12.9c0.6 0 1 0.4 1 1L-602.2 40.4z"/&gt;
          &lt;path class="light_fixture" d="M-611 26.9c-0.5-0.2-0.7-0.8-0.5-1.3l0 0c0.2-0.5 0.3-0.9 0.3-1.3l0 0c0-1.5-1.4-2.7-2.2-3.6l0 0c-0.5-0.6-0.7-1.5-0.8-2.4l0 0c-0.1-1.5 1-3.4 3.3-3.6l0 0 0.1 0 0.1 0c1.2 0 2.2 0.3 2.9 1l0 0c0.7 0.6 1 1.5 1 2.3l0 0c0 1.3-0.6 2.4-1.2 3.4l0 0c-0.4 0.6-0.9 1.1-1.4 1.5l0 0c0.2 0.5 0.3 1 0.3 1.5l0 0c0 0.6-0.1 1.3-0.4 2.1l0 0h0c-0.2 0.4-0.5 0.6-0.9 0.6l0 0C-610.7 27-610.9 26.9-611 26.9L-611 26.9zM-612.3 18.3c0 0.5 0.2 1.1 0.3 1.2l0 0c0.2 0.3 0.8 0.8 1.4 1.6l0 0c0.2-0.2 0.5-0.5 0.8-0.9l0 0c0.5-0.7 0.9-1.7 0.9-2.3l0 0c-0.1-0.7 0-1-1.9-1.2l0 0C-612.1 16.9-612.2 17.5-612.3 18.3L-612.3 18.3z"/&gt;
&lt;/svg&gt;



</code></pre><br><b>CSS</b><br><pre><code>/* Simple SVG Christmas Lights Animation */

body {
  background: #2AA5A0
}

#Christmas_Lights {
  height: 100%;
  margin: 0;
  position: absolute;
  width: 100%;
  z-index: 1000
}

.light_cord {
  fill: none;
  stroke: #174700;
}

.light_fixture {
  fill: #134413;
}

.red_bulb {
  fill: #CA2128;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}

.green_bulb {
  fill: #2D754A;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}

.blue_bulb {
  fill: #2C3EA8;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}

.white_bulb {
  fill: #F5EED7;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}

.gold_bulb {
  fill: #ffcc5e;
  stroke: #6D6D6D;
  stroke-miterlimit: 10;
}


/* Simply changing the opacity of the SVG fill to create the glow effect for the bulbs */

.bulb {
  -webkit-animation-duration: 0.5s;
  -webkit-animation-name: glow;
  -webkit-animation-iteration-count: infinite;
  -webkit-animation-timing-function: ease-in-out;
  -webkit-animation-direction: alternate;
  animation-name: glow;
  animation-duration: 0.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
  animation-direction: alternate;
}

@-webkit-keyframes glow {
  0% {
    fill-opacity: 0.25;
  }
  100% {
    fill-opacity: 1
  }
}

@keyframes glow {
  0% {
    fill-opacity: 0.25;
  }
  100% {
    fill-opacity: 1.0
  }
}


/* Made a set of ten animation delays to create a more random effect of lights blinking.  Simplest way without jumping through SVG hoops. */

.blink-1 {
  -webkit-animation-delay: 0.6s;
  animation-delay: 0.6s;
}

.blink-2 {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

.blink-3 {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

.blink-4 {
  -webkit-animation-delay: 6s;
  animation-delay: 6s;
}

.blink-5 {
  -webkit-animation-delay: 2.5s;
  animation-delay: 2.5s;
}

.blink-6 {
  -webkit-animation-delay: .3s;
  animation-delay: .3s;
}

.blink-7 {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

.blink-8 {
  -webkit-animation-delay: .2s;
  animation-delay: .2s;
}

.blink-9 {
  -webkit-animation-delay: 0.95s;
  animation-delay: 0.95s;
}

.blink-10 {
  -webkit-animation-delay: 1.2s;
  animation-delay: 1.2s;
}



</code></pre> ]]></content:encoded>
</item><item turbo="true">
<title>Анимация метели</title>
<guid isPermaLink="true">https://for-web.ru/javascript/1456-animacija-meteli.html</guid>
<link>https://for-web.ru/javascript/1456-animacija-meteli.html</link>
<category><![CDATA[JavaScript / Скрипты]]></category>
<dc:creator>Project Team</dc:creator>
<pubDate>Wed, 09 Dec 2020 20:28:24 +0300</pubDate>
<description><![CDATA[<p><a class="highslide" href="https://for-web.ru/uploads/posts/2020-12/1607524064_1529864309_blizzard-min.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2020-12/thumbs/1607524064_1529864309_blizzard-min.jpg" alt="" class="fr-dib"></a>Анимация метели выполнена с помощью с помощью pixi.js </p><h2>CSS</h2><pre><code>* {
  box-sizing: border-box;
}
body {
  background-color: #111;
}
canvas {
  height: 100vh;
  width: 100vw;
  -webkit-filter: blur(2px);
          filter: blur(2px);
}</code></pre><p><br></p><h2>JS</h2><p>Подключаем библиотеку pixi.js</p><pre><code>https://cdnjs.cloudflare.com/ajax/libs/pixi.js/4.7.1/pixi.min.js</code></pre><p><br></p><p>Сам скрипт</p><pre><code>const UPPER_LIMIT_Y = 20
const UPPER_LIMIT_X = 2
const LOWER_LIMIT_X = -2
const MAX_SIZE = 6
const MIN_SIZE = 2
const AMOUNT = 250
const COLOR = 0xffffff
const { Application, Graphics } = PIXI
const floored = v =&gt; Math.floor(Math.random() * v)
const update = p =&gt;
  Math.random() &gt; 0.5
    ? Math.max(LOWER_LIMIT_X, p - 1)
    : Math.min(p + 1, UPPER_LIMIT_X)

const reset = p =&gt; {
  p.x = floored(app.renderer.width)
  p.y = -(p.height + floored(app.renderer.height))
  p.vy = floored(UPPER_LIMIT_Y)
}

const genParticles = t =&gt;
  new Array(AMOUNT).fill().map(p =&gt; {
    const SIZE = floored(MAX_SIZE) + MIN_SIZE
    p = new PIXI.Sprite(t)
    p.scale.x = p.scale.y = SIZE / 100
    // p.width = p.height = SIZE
    p.vx = floored(UPPER_LIMIT_X) - UPPER_LIMIT_X
    p.vy = floored(UPPER_LIMIT_Y)
    p.alpha = Math.random()
    p.x = floored(app.renderer.width)
    p.y = -(SIZE + floored(app.renderer.height))
    drops.addChild(p)
    return p
  })

const app = new Application({
  antialias: true,
  transparent: true,
})

const drops = new PIXI.particles.ParticleContainer(AMOUNT, {
  scale: true,
  position: true,
  alpha: true,
})
app.stage.addChild(drops)

const p = new Graphics()
p.beginFill(COLOR)
p.drawCircle(0, 0, 100)
p.endFill()
const baseTexture = app.renderer.generateTexture(p)
let particles = genParticles(baseTexture)

// app.stage.filters = [new PIXI.filters.BlurFilter(3)]
app.ticker.add(i =&gt; {
  if (
    app.renderer.height !== innerHeight ||
    app.renderer.width !== innerWidth
  ) {
    app.renderer.resize(innerWidth, innerHeight)
    drops.removeChildren()
    particles = genParticles(baseTexture)
  }
  for (let particle of particles) {
    if (particle.y &gt; 0) particle.x += particle.vx
    particle.y += particle.vy

    if (Math.random() &gt; 0.9) particle.vx = update(particle.vx)
    if (Math.random() &gt; 0.9)
      particle.vy = Math.min(particle.vy + 1, UPPER_LIMIT_Y)

    if (
      particle.x &gt; app.renderer.width ||
      particle.x &lt; 0 ||
      particle.y &gt; app.renderer.height
    )
      reset(particle)
  }
})

document.body.appendChild(app.view)</code></pre><p><br></p><p><br></p>]]></description>
<turbo:content><![CDATA[ <p><a class="highslide" href="https://for-web.ru/uploads/posts/2020-12/1607524064_1529864309_blizzard-min.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2020-12/thumbs/1607524064_1529864309_blizzard-min.jpg" alt="" class="fr-dib"></a>Анимация метели выполнена с помощью с помощью pixi.js </p><h2>CSS</h2><pre><code>* {
  box-sizing: border-box;
}
body {
  background-color: #111;
}
canvas {
  height: 100vh;
  width: 100vw;
  -webkit-filter: blur(2px);
          filter: blur(2px);
}</code></pre><p><br></p><h2>JS</h2><p>Подключаем библиотеку pixi.js</p><pre><code>https://cdnjs.cloudflare.com/ajax/libs/pixi.js/4.7.1/pixi.min.js</code></pre><p><br></p><p>Сам скрипт</p><pre><code>const UPPER_LIMIT_Y = 20
const UPPER_LIMIT_X = 2
const LOWER_LIMIT_X = -2
const MAX_SIZE = 6
const MIN_SIZE = 2
const AMOUNT = 250
const COLOR = 0xffffff
const { Application, Graphics } = PIXI
const floored = v =&gt; Math.floor(Math.random() * v)
const update = p =&gt;
  Math.random() &gt; 0.5
    ? Math.max(LOWER_LIMIT_X, p - 1)
    : Math.min(p + 1, UPPER_LIMIT_X)

const reset = p =&gt; {
  p.x = floored(app.renderer.width)
  p.y = -(p.height + floored(app.renderer.height))
  p.vy = floored(UPPER_LIMIT_Y)
}

const genParticles = t =&gt;
  new Array(AMOUNT).fill().map(p =&gt; {
    const SIZE = floored(MAX_SIZE) + MIN_SIZE
    p = new PIXI.Sprite(t)
    p.scale.x = p.scale.y = SIZE / 100
    // p.width = p.height = SIZE
    p.vx = floored(UPPER_LIMIT_X) - UPPER_LIMIT_X
    p.vy = floored(UPPER_LIMIT_Y)
    p.alpha = Math.random()
    p.x = floored(app.renderer.width)
    p.y = -(SIZE + floored(app.renderer.height))
    drops.addChild(p)
    return p
  })

const app = new Application({
  antialias: true,
  transparent: true,
})

const drops = new PIXI.particles.ParticleContainer(AMOUNT, {
  scale: true,
  position: true,
  alpha: true,
})
app.stage.addChild(drops)

const p = new Graphics()
p.beginFill(COLOR)
p.drawCircle(0, 0, 100)
p.endFill()
const baseTexture = app.renderer.generateTexture(p)
let particles = genParticles(baseTexture)

// app.stage.filters = [new PIXI.filters.BlurFilter(3)]
app.ticker.add(i =&gt; {
  if (
    app.renderer.height !== innerHeight ||
    app.renderer.width !== innerWidth
  ) {
    app.renderer.resize(innerWidth, innerHeight)
    drops.removeChildren()
    particles = genParticles(baseTexture)
  }
  for (let particle of particles) {
    if (particle.y &gt; 0) particle.x += particle.vx
    particle.y += particle.vy

    if (Math.random() &gt; 0.9) particle.vx = update(particle.vx)
    if (Math.random() &gt; 0.9)
      particle.vy = Math.min(particle.vy + 1, UPPER_LIMIT_Y)

    if (
      particle.x &gt; app.renderer.width ||
      particle.x &lt; 0 ||
      particle.y &gt; app.renderer.height
    )
      reset(particle)
  }
})

document.body.appendChild(app.view)</code></pre><p><br></p><p><br></p> ]]></turbo:content>
<content:encoded><![CDATA[ <p><a class="highslide" href="https://for-web.ru/uploads/posts/2020-12/1607524064_1529864309_blizzard-min.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2020-12/thumbs/1607524064_1529864309_blizzard-min.jpg" alt="" class="fr-dib"></a>Анимация метели выполнена с помощью с помощью pixi.js </p><h2>CSS</h2><pre><code>* {
  box-sizing: border-box;
}
body {
  background-color: #111;
}
canvas {
  height: 100vh;
  width: 100vw;
  -webkit-filter: blur(2px);
          filter: blur(2px);
}</code></pre><p><br></p><h2>JS</h2><p>Подключаем библиотеку pixi.js</p><pre><code>https://cdnjs.cloudflare.com/ajax/libs/pixi.js/4.7.1/pixi.min.js</code></pre><p><br></p><p>Сам скрипт</p><pre><code>const UPPER_LIMIT_Y = 20
const UPPER_LIMIT_X = 2
const LOWER_LIMIT_X = -2
const MAX_SIZE = 6
const MIN_SIZE = 2
const AMOUNT = 250
const COLOR = 0xffffff
const { Application, Graphics } = PIXI
const floored = v =&gt; Math.floor(Math.random() * v)
const update = p =&gt;
  Math.random() &gt; 0.5
    ? Math.max(LOWER_LIMIT_X, p - 1)
    : Math.min(p + 1, UPPER_LIMIT_X)

const reset = p =&gt; {
  p.x = floored(app.renderer.width)
  p.y = -(p.height + floored(app.renderer.height))
  p.vy = floored(UPPER_LIMIT_Y)
}

const genParticles = t =&gt;
  new Array(AMOUNT).fill().map(p =&gt; {
    const SIZE = floored(MAX_SIZE) + MIN_SIZE
    p = new PIXI.Sprite(t)
    p.scale.x = p.scale.y = SIZE / 100
    // p.width = p.height = SIZE
    p.vx = floored(UPPER_LIMIT_X) - UPPER_LIMIT_X
    p.vy = floored(UPPER_LIMIT_Y)
    p.alpha = Math.random()
    p.x = floored(app.renderer.width)
    p.y = -(SIZE + floored(app.renderer.height))
    drops.addChild(p)
    return p
  })

const app = new Application({
  antialias: true,
  transparent: true,
})

const drops = new PIXI.particles.ParticleContainer(AMOUNT, {
  scale: true,
  position: true,
  alpha: true,
})
app.stage.addChild(drops)

const p = new Graphics()
p.beginFill(COLOR)
p.drawCircle(0, 0, 100)
p.endFill()
const baseTexture = app.renderer.generateTexture(p)
let particles = genParticles(baseTexture)

// app.stage.filters = [new PIXI.filters.BlurFilter(3)]
app.ticker.add(i =&gt; {
  if (
    app.renderer.height !== innerHeight ||
    app.renderer.width !== innerWidth
  ) {
    app.renderer.resize(innerWidth, innerHeight)
    drops.removeChildren()
    particles = genParticles(baseTexture)
  }
  for (let particle of particles) {
    if (particle.y &gt; 0) particle.x += particle.vx
    particle.y += particle.vy

    if (Math.random() &gt; 0.9) particle.vx = update(particle.vx)
    if (Math.random() &gt; 0.9)
      particle.vy = Math.min(particle.vy + 1, UPPER_LIMIT_Y)

    if (
      particle.x &gt; app.renderer.width ||
      particle.x &lt; 0 ||
      particle.y &gt; app.renderer.height
    )
      reset(particle)
  }
})

document.body.appendChild(app.view)</code></pre><p><br></p><p><br></p> ]]></content:encoded>
</item><item turbo="true">
<title>Снегопад на шейдерах c three.js</title>
<guid isPermaLink="true">https://for-web.ru/javascript/1455-snegopad-na-shejderah-c-threejs.html</guid>
<link>https://for-web.ru/javascript/1455-snegopad-na-shejderah-c-threejs.html</link>
<category><![CDATA[JavaScript / Скрипты]]></category>
<dc:creator>Project Team</dc:creator>
<pubDate>Wed, 09 Dec 2020 20:22:10 +0300</pubDate>
<description><![CDATA[<p><a class="highslide" href="https://for-web.ru/uploads/posts/2020-12/1607523863_1539202678_snowfall-min.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2020-12/thumbs/1607523863_1539202678_snowfall-min.jpg" alt="" class="fr-dib"></a>Новогоднее украшение для сайта снегопад на  шейдерах c three.js.</p><h3>HTML</h3><pre><code>https://s3-us-west-2.amazonaws.com/s.cdpn.io/982762/ccapture.js

&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/88/three.min.js"&gt;&lt;/script&gt;
&lt;script id="vertexShader" type="x-shader/x-vertex"&gt;
    void main() {
        gl_Position = vec4( position, 1.0 );
    }
&lt;/script&gt;
&lt;script id="fragmentShader" type="x-shader/x-fragment"&gt;
  uniform vec2 u_resolution;
  uniform vec2 u_mouse;
  uniform float u_time;
  uniform sampler2D u_noise;
  
  #define PI 3.141592653589793
  #define TAU 6.
  
  const float multiplier = 25.5;

  const float zoomSpeed = 10.;
  const int layers = 10;

  const int octaves = 5;

  vec2 hash2(vec2 p)
  {
    vec2 o = texture2D( u_noise, (p+0.5)/256.0, -100.0 ).xy;
    return o;
  }
  
  mat2 rotate2d(float _angle){
      return mat2(cos(_angle),sin(_angle),
                  -sin(_angle),cos(_angle));
  }
  
  vec3 hsb2rgb( in vec3 c ){
    vec3 rgb = clamp(abs(mod(c.x*6.0+vec3(0.0,4.0,2.0),
                             6.0)-3.0)-1.0,
                     0.0,
                     1.0 );
    rgb = rgb*rgb*(3.0-2.0*rgb);
    return c.z * mix( vec3(1.0), rgb, c.y);
  }
  
  float hash(vec2 p)
  {
    float o = texture2D( u_noise, (p+0.5)/256.0, -100.0 ).x;
    return o;
  }
  float noise(vec2 uv) {
    vec2 id = floor(uv);
    vec2 subuv = fract(uv);
    vec2 u = subuv * subuv * (3. - 2. * subuv);
    float a = hash(id);
    float b = hash(id + vec2(1., 0.));
    float c = hash(id + vec2(0., 1.));
    float d = hash(id + vec2(1., 1.));
    return mix(mix(a, b, u.x), mix(c, d, u.x), u.y);
  }
  float fbm(in vec2 uv) {
    float s = .0;
    float m = .0;
    float a = .5;
    for(int i = 0; i &lt; octaves; i++) {
      s += a * noise(uv);
      m += a;
      a *= .5;
      uv *= 2.;
    }
    return s / m;
  }
  
  vec3 domain(vec2 z){
    return vec3(hsb2rgb(vec3(atan(z.y,z.x)/TAU,1.,1.)));
  }
  vec3 colour(vec2 z) {
      return domain(z);
  }
  
  // The render function is where we render the pattern to be added to the layer
  vec3 render(vec2 uv, float scale, vec3 colour) {
    vec2 id = floor(uv);
    vec2 subuv = fract(uv);
    vec2 rand = hash2(id);
    float bokeh = abs(scale) * 1.;
    
    float particle = 0.;
    
    if(length(rand) &gt; 1.3) {
      vec2 pos = subuv-.5;
      float field = length(pos);
      particle = smoothstep(.3, 0., field);
      particle += smoothstep(.4, 0.34 * bokeh, field);
    }
    return vec3(particle*2.);
  }
  
  vec3 renderLayer(int layer, int layers, vec2 uv, inout float opacity, vec3 colour, float n) {
    vec2 _uv = uv;
    // Scale
    // Generating a scale value between zero and 1 based on a mod of u_time
    // A frequency of 10 dixided by the layer index (10 / layers * layer)
    float scale = mod((u_time + zoomSpeed / float(layers) * float(layer)) / zoomSpeed, -1.);
    uv *= 20.; // The initial scale. Increasing this makes the cells smaller and the "speed" apepar faster
    uv *= scale*scale; // then modifying the overall scale by the generated amount
    // uv *= 1. + ( ( n*.5 ) * ( length(_uv) ) );
    // uv += .5*float(layer);
    uv = rotate2d(u_time / 10.) * uv; // rotarting
    uv += vec2(25. + sin(u_time*.1)) * float(layer); // ofsetting the UV by an arbitrary amount to make the layer appear different

    // render
    vec3 pass = render(uv * multiplier, scale, colour) * .2; // render the pass

     // this is the opacity of the layer fading in from the "bottom"
    opacity = 1. + scale;
    float _opacity = opacity;
    
    // pass += n * .5 * mix(vec3(0., .5, 1.5), vec3(1., .5, 0.), opacity);
    
    // This is the opacity of the layer fading out at the top (we want this minimal, hence the smoothstep)
    float endOpacity = smoothstep(0., 0.4, scale * -1.);
    opacity += endOpacity;

    return pass * _opacity * endOpacity;
  }

  void main() {
      vec2 uv = (gl_FragCoord.xy - 0.5 * u_resolution.xy);

      if(u_resolution.y &lt; u_resolution.x) {
        uv /= u_resolution.y;
      } else {
        uv /= u_resolution.x;
      }

      // uv.y += cos(u_time * .1) * .5;
      // uv.x += sin(u_time * .1) * .5;
    
      // float n = fbm(uv * 3. - 2.);
      float n = fbm((uv + vec2(sin(u_time*.1), u_time*.1)) * 2. - 2.);

      vec3 colour = vec3(0.);
      // colour = n * mix(vec3(0., .5, 1.5), vec3(1., .5, -.1), n);
      colour = n * mix(vec3(0., .5, 1.5), clamp(vec3(1., .5, .25)*2., 0., 1.), n);
      // colour -= n*n*n*n*.4;
      // colour += smoothstep(.8, 2.5, sin(n*n*n*8.))*.4;

      float opacity = 1.;
      float opacity_sum = 1.;

      for(int i = 1; i &lt;= layers; i++) {
        colour += renderLayer(i, layers, uv, opacity, colour, n);
        opacity_sum += opacity;
      }

      colour /= opacity_sum;

      gl_FragColor = vec4(clamp(colour * 20., 0., 1.),1.0);
  }
&lt;/script&gt;


&lt;div id="container" touch-action="none"&gt;&lt;/div&gt;</code></pre><p><br></p><h3>CSS</h3><pre><code>body {
  margin: 0;
  padding: 0;
}

#container {
  position: fixed;
  touch-action: none;
}</code></pre><p><br></p><h3>JS</h3><pre><code>/*
Most of the stuff in here is just bootstrapping. Essentially it's just
setting ThreeJS up so that it renders a flat surface upon which to draw 
the shader. The only thing to see here really is the uniforms sent to 
the shader. Apart from that all of the magic happens in the HTML view
under the fragment shader.
*/

let container;
let camera, scene, renderer;
let uniforms;

let loader=new THREE.TextureLoader();
let texture;
loader.setCrossOrigin("anonymous");
loader.load(
  'https://s3-us-west-2.amazonaws.com/s.cdpn.io/982762/noise.png',
  function do_something_with_texture(tex) {
    texture = tex;
    texture.wrapS = THREE.RepeatWrapping;
    texture.wrapT = THREE.RepeatWrapping;
    texture.minFilter = THREE.LinearFilter;
    init();
    animate();
  }
);

function init() {
  container = document.getElementById( 'container' );

  camera = new THREE.Camera();
  camera.position.z = 1;

  scene = new THREE.Scene();

  var geometry = new THREE.PlaneBufferGeometry( 2, 2 );

  uniforms = {
    u_time: { type: "f", value: 1.0 },
    u_resolution: { type: "v2", value: new THREE.Vector2() },
    u_noise: { type: "t", value: texture },
    u_mouse: { type: "v2", value: new THREE.Vector2() }
  };

  var material = new THREE.ShaderMaterial( {
    uniforms: uniforms,
    vertexShader: document.getElementById( 'vertexShader' ).textContent,
    fragmentShader: document.getElementById( 'fragmentShader' ).textContent
  } );
  material.extensions.derivatives = true;

  var mesh = new THREE.Mesh( geometry, material );
  scene.add( mesh );

  renderer = new THREE.WebGLRenderer();
  renderer.setPixelRatio( window.devicePixelRatio );

  container.appendChild( renderer.domElement );

  onWindowResize();
  window.addEventListener( 'resize', onWindowResize, false );

  document.addEventListener('pointermove', (e)=&gt; {
    let ratio = window.innerHeight / window.innerWidth;
    uniforms.u_mouse.value.x = (e.pageX - window.innerWidth / 2) / window.innerWidth / ratio;
    uniforms.u_mouse.value.y = (e.pageY - window.innerHeight / 2) / window.innerHeight * -1;
    
    e.preventDefault();
  });
}

function onWindowResize( event ) {
  renderer.setSize( window.innerWidth, window.innerHeight );
  uniforms.u_resolution.value.x = renderer.domElement.width;
  uniforms.u_resolution.value.y = renderer.domElement.height;
}

function animate(delta) {
  requestAnimationFrame( animate );
  render(delta);
}






let capturer = new CCapture( { 
  verbose: true, 
  framerate: 60,
  // moti&#111;nblurFrames: 4,
  quality: 90,
  format: 'webm',
  workersPath: 'js/'
 } );
let capturing = false;

isCapturing = function(val) {
  if(val === false &amp;&amp; window.capturing === true) {
    capturer.stop();
    capturer.save();
  } else if(val === true &amp;&amp; window.capturing === false) {
    capturer.start();
  }
  capturing = val;
}
toggleCapture = function() {
  isCapturing(!capturing);
}

window.addEventListener('keyup', function(e) { if(e.keyCode == 68) toggleCapture(); });

let then = 0;
function render(delta) {
  
  uniforms.u_time.value = -10000 + delta * 0.0005;
  renderer.render( scene, camera );
  
  if(capturing) {
    capturer.capture( renderer.domElement );
  }
}</code></pre><p><br></p><p><br></p><p><br></p>]]></description>
<turbo:content><![CDATA[ <p><a class="highslide" href="https://for-web.ru/uploads/posts/2020-12/1607523863_1539202678_snowfall-min.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2020-12/thumbs/1607523863_1539202678_snowfall-min.jpg" alt="" class="fr-dib"></a>Новогоднее украшение для сайта снегопад на  шейдерах c three.js.</p><h3>HTML</h3><pre><code>https://s3-us-west-2.amazonaws.com/s.cdpn.io/982762/ccapture.js

&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/88/three.min.js"&gt;&lt;/script&gt;
&lt;script id="vertexShader" type="x-shader/x-vertex"&gt;
    void main() {
        gl_Position = vec4( position, 1.0 );
    }
&lt;/script&gt;
&lt;script id="fragmentShader" type="x-shader/x-fragment"&gt;
  uniform vec2 u_resolution;
  uniform vec2 u_mouse;
  uniform float u_time;
  uniform sampler2D u_noise;
  
  #define PI 3.141592653589793
  #define TAU 6.
  
  const float multiplier = 25.5;

  const float zoomSpeed = 10.;
  const int layers = 10;

  const int octaves = 5;

  vec2 hash2(vec2 p)
  {
    vec2 o = texture2D( u_noise, (p+0.5)/256.0, -100.0 ).xy;
    return o;
  }
  
  mat2 rotate2d(float _angle){
      return mat2(cos(_angle),sin(_angle),
                  -sin(_angle),cos(_angle));
  }
  
  vec3 hsb2rgb( in vec3 c ){
    vec3 rgb = clamp(abs(mod(c.x*6.0+vec3(0.0,4.0,2.0),
                             6.0)-3.0)-1.0,
                     0.0,
                     1.0 );
    rgb = rgb*rgb*(3.0-2.0*rgb);
    return c.z * mix( vec3(1.0), rgb, c.y);
  }
  
  float hash(vec2 p)
  {
    float o = texture2D( u_noise, (p+0.5)/256.0, -100.0 ).x;
    return o;
  }
  float noise(vec2 uv) {
    vec2 id = floor(uv);
    vec2 subuv = fract(uv);
    vec2 u = subuv * subuv * (3. - 2. * subuv);
    float a = hash(id);
    float b = hash(id + vec2(1., 0.));
    float c = hash(id + vec2(0., 1.));
    float d = hash(id + vec2(1., 1.));
    return mix(mix(a, b, u.x), mix(c, d, u.x), u.y);
  }
  float fbm(in vec2 uv) {
    float s = .0;
    float m = .0;
    float a = .5;
    for(int i = 0; i &lt; octaves; i++) {
      s += a * noise(uv);
      m += a;
      a *= .5;
      uv *= 2.;
    }
    return s / m;
  }
  
  vec3 domain(vec2 z){
    return vec3(hsb2rgb(vec3(atan(z.y,z.x)/TAU,1.,1.)));
  }
  vec3 colour(vec2 z) {
      return domain(z);
  }
  
  // The render function is where we render the pattern to be added to the layer
  vec3 render(vec2 uv, float scale, vec3 colour) {
    vec2 id = floor(uv);
    vec2 subuv = fract(uv);
    vec2 rand = hash2(id);
    float bokeh = abs(scale) * 1.;
    
    float particle = 0.;
    
    if(length(rand) &gt; 1.3) {
      vec2 pos = subuv-.5;
      float field = length(pos);
      particle = smoothstep(.3, 0., field);
      particle += smoothstep(.4, 0.34 * bokeh, field);
    }
    return vec3(particle*2.);
  }
  
  vec3 renderLayer(int layer, int layers, vec2 uv, inout float opacity, vec3 colour, float n) {
    vec2 _uv = uv;
    // Scale
    // Generating a scale value between zero and 1 based on a mod of u_time
    // A frequency of 10 dixided by the layer index (10 / layers * layer)
    float scale = mod((u_time + zoomSpeed / float(layers) * float(layer)) / zoomSpeed, -1.);
    uv *= 20.; // The initial scale. Increasing this makes the cells smaller and the "speed" apepar faster
    uv *= scale*scale; // then modifying the overall scale by the generated amount
    // uv *= 1. + ( ( n*.5 ) * ( length(_uv) ) );
    // uv += .5*float(layer);
    uv = rotate2d(u_time / 10.) * uv; // rotarting
    uv += vec2(25. + sin(u_time*.1)) * float(layer); // ofsetting the UV by an arbitrary amount to make the layer appear different

    // render
    vec3 pass = render(uv * multiplier, scale, colour) * .2; // render the pass

     // this is the opacity of the layer fading in from the "bottom"
    opacity = 1. + scale;
    float _opacity = opacity;
    
    // pass += n * .5 * mix(vec3(0., .5, 1.5), vec3(1., .5, 0.), opacity);
    
    // This is the opacity of the layer fading out at the top (we want this minimal, hence the smoothstep)
    float endOpacity = smoothstep(0., 0.4, scale * -1.);
    opacity += endOpacity;

    return pass * _opacity * endOpacity;
  }

  void main() {
      vec2 uv = (gl_FragCoord.xy - 0.5 * u_resolution.xy);

      if(u_resolution.y &lt; u_resolution.x) {
        uv /= u_resolution.y;
      } else {
        uv /= u_resolution.x;
      }

      // uv.y += cos(u_time * .1) * .5;
      // uv.x += sin(u_time * .1) * .5;
    
      // float n = fbm(uv * 3. - 2.);
      float n = fbm((uv + vec2(sin(u_time*.1), u_time*.1)) * 2. - 2.);

      vec3 colour = vec3(0.);
      // colour = n * mix(vec3(0., .5, 1.5), vec3(1., .5, -.1), n);
      colour = n * mix(vec3(0., .5, 1.5), clamp(vec3(1., .5, .25)*2., 0., 1.), n);
      // colour -= n*n*n*n*.4;
      // colour += smoothstep(.8, 2.5, sin(n*n*n*8.))*.4;

      float opacity = 1.;
      float opacity_sum = 1.;

      for(int i = 1; i &lt;= layers; i++) {
        colour += renderLayer(i, layers, uv, opacity, colour, n);
        opacity_sum += opacity;
      }

      colour /= opacity_sum;

      gl_FragColor = vec4(clamp(colour * 20., 0., 1.),1.0);
  }
&lt;/script&gt;


&lt;div id="container" touch-action="none"&gt;&lt;/div&gt;</code></pre><p><br></p><h3>CSS</h3><pre><code>body {
  margin: 0;
  padding: 0;
}

#container {
  position: fixed;
  touch-action: none;
}</code></pre><p><br></p><h3>JS</h3><pre><code>/*
Most of the stuff in here is just bootstrapping. Essentially it's just
setting ThreeJS up so that it renders a flat surface upon which to draw 
the shader. The only thing to see here really is the uniforms sent to 
the shader. Apart from that all of the magic happens in the HTML view
under the fragment shader.
*/

let container;
let camera, scene, renderer;
let uniforms;

let loader=new THREE.TextureLoader();
let texture;
loader.setCrossOrigin("anonymous");
loader.load(
  'https://s3-us-west-2.amazonaws.com/s.cdpn.io/982762/noise.png',
  function do_something_with_texture(tex) {
    texture = tex;
    texture.wrapS = THREE.RepeatWrapping;
    texture.wrapT = THREE.RepeatWrapping;
    texture.minFilter = THREE.LinearFilter;
    init();
    animate();
  }
);

function init() {
  container = document.getElementById( 'container' );

  camera = new THREE.Camera();
  camera.position.z = 1;

  scene = new THREE.Scene();

  var geometry = new THREE.PlaneBufferGeometry( 2, 2 );

  uniforms = {
    u_time: { type: "f", value: 1.0 },
    u_resolution: { type: "v2", value: new THREE.Vector2() },
    u_noise: { type: "t", value: texture },
    u_mouse: { type: "v2", value: new THREE.Vector2() }
  };

  var material = new THREE.ShaderMaterial( {
    uniforms: uniforms,
    vertexShader: document.getElementById( 'vertexShader' ).textContent,
    fragmentShader: document.getElementById( 'fragmentShader' ).textContent
  } );
  material.extensions.derivatives = true;

  var mesh = new THREE.Mesh( geometry, material );
  scene.add( mesh );

  renderer = new THREE.WebGLRenderer();
  renderer.setPixelRatio( window.devicePixelRatio );

  container.appendChild( renderer.domElement );

  onWindowResize();
  window.addEventListener( 'resize', onWindowResize, false );

  document.addEventListener('pointermove', (e)=&gt; {
    let ratio = window.innerHeight / window.innerWidth;
    uniforms.u_mouse.value.x = (e.pageX - window.innerWidth / 2) / window.innerWidth / ratio;
    uniforms.u_mouse.value.y = (e.pageY - window.innerHeight / 2) / window.innerHeight * -1;
    
    e.preventDefault();
  });
}

function onWindowResize( event ) {
  renderer.setSize( window.innerWidth, window.innerHeight );
  uniforms.u_resolution.value.x = renderer.domElement.width;
  uniforms.u_resolution.value.y = renderer.domElement.height;
}

function animate(delta) {
  requestAnimationFrame( animate );
  render(delta);
}






let capturer = new CCapture( { 
  verbose: true, 
  framerate: 60,
  // moti&#111;nblurFrames: 4,
  quality: 90,
  format: 'webm',
  workersPath: 'js/'
 } );
let capturing = false;

isCapturing = function(val) {
  if(val === false &amp;&amp; window.capturing === true) {
    capturer.stop();
    capturer.save();
  } else if(val === true &amp;&amp; window.capturing === false) {
    capturer.start();
  }
  capturing = val;
}
toggleCapture = function() {
  isCapturing(!capturing);
}

window.addEventListener('keyup', function(e) { if(e.keyCode == 68) toggleCapture(); });

let then = 0;
function render(delta) {
  
  uniforms.u_time.value = -10000 + delta * 0.0005;
  renderer.render( scene, camera );
  
  if(capturing) {
    capturer.capture( renderer.domElement );
  }
}</code></pre><p><br></p><p><br></p><p><br></p> ]]></turbo:content>
<content:encoded><![CDATA[ <p><a class="highslide" href="https://for-web.ru/uploads/posts/2020-12/1607523863_1539202678_snowfall-min.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2020-12/thumbs/1607523863_1539202678_snowfall-min.jpg" alt="" class="fr-dib"></a>Новогоднее украшение для сайта снегопад на  шейдерах c three.js.</p><h3>HTML</h3><pre><code>https://s3-us-west-2.amazonaws.com/s.cdpn.io/982762/ccapture.js

&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/88/three.min.js"&gt;&lt;/script&gt;
&lt;script id="vertexShader" type="x-shader/x-vertex"&gt;
    void main() {
        gl_Position = vec4( position, 1.0 );
    }
&lt;/script&gt;
&lt;script id="fragmentShader" type="x-shader/x-fragment"&gt;
  uniform vec2 u_resolution;
  uniform vec2 u_mouse;
  uniform float u_time;
  uniform sampler2D u_noise;
  
  #define PI 3.141592653589793
  #define TAU 6.
  
  const float multiplier = 25.5;

  const float zoomSpeed = 10.;
  const int layers = 10;

  const int octaves = 5;

  vec2 hash2(vec2 p)
  {
    vec2 o = texture2D( u_noise, (p+0.5)/256.0, -100.0 ).xy;
    return o;
  }
  
  mat2 rotate2d(float _angle){
      return mat2(cos(_angle),sin(_angle),
                  -sin(_angle),cos(_angle));
  }
  
  vec3 hsb2rgb( in vec3 c ){
    vec3 rgb = clamp(abs(mod(c.x*6.0+vec3(0.0,4.0,2.0),
                             6.0)-3.0)-1.0,
                     0.0,
                     1.0 );
    rgb = rgb*rgb*(3.0-2.0*rgb);
    return c.z * mix( vec3(1.0), rgb, c.y);
  }
  
  float hash(vec2 p)
  {
    float o = texture2D( u_noise, (p+0.5)/256.0, -100.0 ).x;
    return o;
  }
  float noise(vec2 uv) {
    vec2 id = floor(uv);
    vec2 subuv = fract(uv);
    vec2 u = subuv * subuv * (3. - 2. * subuv);
    float a = hash(id);
    float b = hash(id + vec2(1., 0.));
    float c = hash(id + vec2(0., 1.));
    float d = hash(id + vec2(1., 1.));
    return mix(mix(a, b, u.x), mix(c, d, u.x), u.y);
  }
  float fbm(in vec2 uv) {
    float s = .0;
    float m = .0;
    float a = .5;
    for(int i = 0; i &lt; octaves; i++) {
      s += a * noise(uv);
      m += a;
      a *= .5;
      uv *= 2.;
    }
    return s / m;
  }
  
  vec3 domain(vec2 z){
    return vec3(hsb2rgb(vec3(atan(z.y,z.x)/TAU,1.,1.)));
  }
  vec3 colour(vec2 z) {
      return domain(z);
  }
  
  // The render function is where we render the pattern to be added to the layer
  vec3 render(vec2 uv, float scale, vec3 colour) {
    vec2 id = floor(uv);
    vec2 subuv = fract(uv);
    vec2 rand = hash2(id);
    float bokeh = abs(scale) * 1.;
    
    float particle = 0.;
    
    if(length(rand) &gt; 1.3) {
      vec2 pos = subuv-.5;
      float field = length(pos);
      particle = smoothstep(.3, 0., field);
      particle += smoothstep(.4, 0.34 * bokeh, field);
    }
    return vec3(particle*2.);
  }
  
  vec3 renderLayer(int layer, int layers, vec2 uv, inout float opacity, vec3 colour, float n) {
    vec2 _uv = uv;
    // Scale
    // Generating a scale value between zero and 1 based on a mod of u_time
    // A frequency of 10 dixided by the layer index (10 / layers * layer)
    float scale = mod((u_time + zoomSpeed / float(layers) * float(layer)) / zoomSpeed, -1.);
    uv *= 20.; // The initial scale. Increasing this makes the cells smaller and the "speed" apepar faster
    uv *= scale*scale; // then modifying the overall scale by the generated amount
    // uv *= 1. + ( ( n*.5 ) * ( length(_uv) ) );
    // uv += .5*float(layer);
    uv = rotate2d(u_time / 10.) * uv; // rotarting
    uv += vec2(25. + sin(u_time*.1)) * float(layer); // ofsetting the UV by an arbitrary amount to make the layer appear different

    // render
    vec3 pass = render(uv * multiplier, scale, colour) * .2; // render the pass

     // this is the opacity of the layer fading in from the "bottom"
    opacity = 1. + scale;
    float _opacity = opacity;
    
    // pass += n * .5 * mix(vec3(0., .5, 1.5), vec3(1., .5, 0.), opacity);
    
    // This is the opacity of the layer fading out at the top (we want this minimal, hence the smoothstep)
    float endOpacity = smoothstep(0., 0.4, scale * -1.);
    opacity += endOpacity;

    return pass * _opacity * endOpacity;
  }

  void main() {
      vec2 uv = (gl_FragCoord.xy - 0.5 * u_resolution.xy);

      if(u_resolution.y &lt; u_resolution.x) {
        uv /= u_resolution.y;
      } else {
        uv /= u_resolution.x;
      }

      // uv.y += cos(u_time * .1) * .5;
      // uv.x += sin(u_time * .1) * .5;
    
      // float n = fbm(uv * 3. - 2.);
      float n = fbm((uv + vec2(sin(u_time*.1), u_time*.1)) * 2. - 2.);

      vec3 colour = vec3(0.);
      // colour = n * mix(vec3(0., .5, 1.5), vec3(1., .5, -.1), n);
      colour = n * mix(vec3(0., .5, 1.5), clamp(vec3(1., .5, .25)*2., 0., 1.), n);
      // colour -= n*n*n*n*.4;
      // colour += smoothstep(.8, 2.5, sin(n*n*n*8.))*.4;

      float opacity = 1.;
      float opacity_sum = 1.;

      for(int i = 1; i &lt;= layers; i++) {
        colour += renderLayer(i, layers, uv, opacity, colour, n);
        opacity_sum += opacity;
      }

      colour /= opacity_sum;

      gl_FragColor = vec4(clamp(colour * 20., 0., 1.),1.0);
  }
&lt;/script&gt;


&lt;div id="container" touch-action="none"&gt;&lt;/div&gt;</code></pre><p><br></p><h3>CSS</h3><pre><code>body {
  margin: 0;
  padding: 0;
}

#container {
  position: fixed;
  touch-action: none;
}</code></pre><p><br></p><h3>JS</h3><pre><code>/*
Most of the stuff in here is just bootstrapping. Essentially it's just
setting ThreeJS up so that it renders a flat surface upon which to draw 
the shader. The only thing to see here really is the uniforms sent to 
the shader. Apart from that all of the magic happens in the HTML view
under the fragment shader.
*/

let container;
let camera, scene, renderer;
let uniforms;

let loader=new THREE.TextureLoader();
let texture;
loader.setCrossOrigin("anonymous");
loader.load(
  'https://s3-us-west-2.amazonaws.com/s.cdpn.io/982762/noise.png',
  function do_something_with_texture(tex) {
    texture = tex;
    texture.wrapS = THREE.RepeatWrapping;
    texture.wrapT = THREE.RepeatWrapping;
    texture.minFilter = THREE.LinearFilter;
    init();
    animate();
  }
);

function init() {
  container = document.getElementById( 'container' );

  camera = new THREE.Camera();
  camera.position.z = 1;

  scene = new THREE.Scene();

  var geometry = new THREE.PlaneBufferGeometry( 2, 2 );

  uniforms = {
    u_time: { type: "f", value: 1.0 },
    u_resolution: { type: "v2", value: new THREE.Vector2() },
    u_noise: { type: "t", value: texture },
    u_mouse: { type: "v2", value: new THREE.Vector2() }
  };

  var material = new THREE.ShaderMaterial( {
    uniforms: uniforms,
    vertexShader: document.getElementById( 'vertexShader' ).textContent,
    fragmentShader: document.getElementById( 'fragmentShader' ).textContent
  } );
  material.extensions.derivatives = true;

  var mesh = new THREE.Mesh( geometry, material );
  scene.add( mesh );

  renderer = new THREE.WebGLRenderer();
  renderer.setPixelRatio( window.devicePixelRatio );

  container.appendChild( renderer.domElement );

  onWindowResize();
  window.addEventListener( 'resize', onWindowResize, false );

  document.addEventListener('pointermove', (e)=&gt; {
    let ratio = window.innerHeight / window.innerWidth;
    uniforms.u_mouse.value.x = (e.pageX - window.innerWidth / 2) / window.innerWidth / ratio;
    uniforms.u_mouse.value.y = (e.pageY - window.innerHeight / 2) / window.innerHeight * -1;
    
    e.preventDefault();
  });
}

function onWindowResize( event ) {
  renderer.setSize( window.innerWidth, window.innerHeight );
  uniforms.u_resolution.value.x = renderer.domElement.width;
  uniforms.u_resolution.value.y = renderer.domElement.height;
}

function animate(delta) {
  requestAnimationFrame( animate );
  render(delta);
}






let capturer = new CCapture( { 
  verbose: true, 
  framerate: 60,
  // moti&#111;nblurFrames: 4,
  quality: 90,
  format: 'webm',
  workersPath: 'js/'
 } );
let capturing = false;

isCapturing = function(val) {
  if(val === false &amp;&amp; window.capturing === true) {
    capturer.stop();
    capturer.save();
  } else if(val === true &amp;&amp; window.capturing === false) {
    capturer.start();
  }
  capturing = val;
}
toggleCapture = function() {
  isCapturing(!capturing);
}

window.addEventListener('keyup', function(e) { if(e.keyCode == 68) toggleCapture(); });

let then = 0;
function render(delta) {
  
  uniforms.u_time.value = -10000 + delta * 0.0005;
  renderer.render( scene, camera );
  
  if(capturing) {
    capturer.capture( renderer.domElement );
  }
}</code></pre><p><br></p><p><br></p><p><br></p> ]]></content:encoded>
</item><item turbo="true">
<title>Гирлянда на сайт на чистом CSS</title>
<guid isPermaLink="true">https://for-web.ru/ukrasheniya-dlya-sayta/709-girljanda-na-sajt-na-chistom-css.html</guid>
<link>https://for-web.ru/ukrasheniya-dlya-sayta/709-girljanda-na-sajt-na-chistom-css.html</link>
<category><![CDATA[Украшения для сайта / Скрипты]]></category>
<dc:creator>Project Team</dc:creator>
<pubDate>Tue, 01 Dec 2020 21:18:34 +0300</pubDate>
<description><![CDATA[<a class="highslide" href="https://for-web.ru/uploads/posts/2019-12/1576119025_1512738577_newyear_lights.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2019-12/thumbs/1576119025_1512738577_newyear_lights.jpg" alt="" class="fr-dib"></a>Ищите простое и креативное решение для украшения сайта к новому году? Тогда Вы попали туда куда нужно.<br>Данное решение позволит Вам на своем сайте организовать простую гирлянду. <br>Гирлянда построена на чистом CSS. Минимальная копотня в коде, а в итоге красивая мерцающая гирлянда.<br>Приступим устанавливаем HTML код на свою страницу.<br><pre><code>&lt;ul class="lightrope"&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;</code></pre>По сути элемент<b> li</b>  это есть лампочка.<br><br>Не забываем про стили CSS:<br><pre><code>.lightrope {
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  position: absolute;
  z-index: 1;
  margin: -15px 0 0 0;
  padding: 0;
  pointer-events: none;
  width: 100%;
}

.lightrope li {
  position: relative;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  list-style: none;
  margin: 0;
  padding: 0;
  display: block;
  width: 12px;
  height: 28px;
  border-radius: 50%;
  margin: 20px;
  display: inline-block;
  background: #00f7a5;
  box-shadow: 0px 4.66667px 24px 3px #00f7a5;
  -webkit-animation-name: flash-1;
  animation-name: flash-1;
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
}

.lightrope li:nth-child(2n+1) {
  background: cyan;
  box-shadow: 0px 4.66667px 24px 3px rgba(0, 255, 255, 0.5);
  -webkit-animation-name: flash-2;
  animation-name: flash-2;
  -webkit-animation-duration: 0.4s;
  animation-duration: 0.4s;
}

.lightrope li:nth-child(4n+2) {
  background: #f70094;
  box-shadow: 0px 4.66667px 24px 3px #f70094;
  -webkit-animation-name: flash-3;
  animation-name: flash-3;
  -webkit-animation-duration: 1.1s;
  animation-duration: 1.1s;
}

.lightrope li:nth-child(odd) {
  -webkit-animation-duration: 1.8s;
  animation-duration: 1.8s;
}

.lightrope li:nth-child(3n+1) {
  -webkit-animation-duration: 1.4s;
  animation-duration: 1.4s;
}

.lightrope li:before {
  content: "";
  position: absolute;
  background: #222;
  width: 10px;
  height: 9.33333px;
  border-radius: 3px;
  top: -4.66667px;
  left: 1px;
}

.lightrope li:after {
  content: "";
  top: -14px;
  left: 9px;
  position: absolute;
  width: 52px;
  height: 18.66667px;
  border-bottom: solid #222 2px;
  border-radius: 50%;
}

.lightrope li:last-child:after {
  content: none;
}

.lightrope li:first-child {
  margin-left: -40px;
}

@-webkit-keyframes flash-1 {
  0%, 100% {
    background: #00f7a5;
    box-shadow: 0px 4.66667px 24px 3px #00f7a5;
  }
  50% {
    background: rgba(0, 247, 165, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(0, 247, 165, 0.2);
  }
}

@keyframes flash-1 {
  0%, 100% {
    background: #00f7a5;
    box-shadow: 0px 4.66667px 24px 3px #00f7a5;
  }
  50% {
    background: rgba(0, 247, 165, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(0, 247, 165, 0.2);
  }
}

@-webkit-keyframes flash-2 {
  0%, 100% {
    background: cyan;
    box-shadow: 0px 4.66667px 24px 3px cyan;
  }
  50% {
    background: rgba(0, 255, 255, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(0, 255, 255, 0.2);
  }
}

@keyframes flash-2 {
  0%, 100% {
    background: cyan;
    box-shadow: 0px 4.66667px 24px 3px cyan;
  }
  50% {
    background: rgba(0, 255, 255, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(0, 255, 255, 0.2);
  }
}

@-webkit-keyframes flash-3 {
  0%, 100% {
    background: #f70094;
    box-shadow: 0px 4.66667px 24px 3px #f70094;
  }
  50% {
    background: rgba(247, 0, 148, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(247, 0, 148, 0.2);
  }
}

@keyframes flash-3 {
  0%, 100% {
    background: #f70094;
    box-shadow: 0px 4.66667px 24px 3px #f70094;
  }
  50% {
    background: rgba(247, 0, 148, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(247, 0, 148, 0.2);
  }
}</code></pre><br>Вот и всё!!! Всех с Наступающим!!!!]]></description>
<turbo:content><![CDATA[ <a class="highslide" href="https://for-web.ru/uploads/posts/2019-12/1576119025_1512738577_newyear_lights.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2019-12/thumbs/1576119025_1512738577_newyear_lights.jpg" alt="" class="fr-dib"></a>Ищите простое и креативное решение для украшения сайта к новому году? Тогда Вы попали туда куда нужно.<br>Данное решение позволит Вам на своем сайте организовать простую гирлянду. <br>Гирлянда построена на чистом CSS. Минимальная копотня в коде, а в итоге красивая мерцающая гирлянда.<br>Приступим устанавливаем HTML код на свою страницу.<br><pre><code>&lt;ul class="lightrope"&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;</code></pre>По сути элемент<b> li</b>  это есть лампочка.<br><br>Не забываем про стили CSS:<br><pre><code>.lightrope {
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  position: absolute;
  z-index: 1;
  margin: -15px 0 0 0;
  padding: 0;
  pointer-events: none;
  width: 100%;
}

.lightrope li {
  position: relative;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  list-style: none;
  margin: 0;
  padding: 0;
  display: block;
  width: 12px;
  height: 28px;
  border-radius: 50%;
  margin: 20px;
  display: inline-block;
  background: #00f7a5;
  box-shadow: 0px 4.66667px 24px 3px #00f7a5;
  -webkit-animation-name: flash-1;
  animation-name: flash-1;
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
}

.lightrope li:nth-child(2n+1) {
  background: cyan;
  box-shadow: 0px 4.66667px 24px 3px rgba(0, 255, 255, 0.5);
  -webkit-animation-name: flash-2;
  animation-name: flash-2;
  -webkit-animation-duration: 0.4s;
  animation-duration: 0.4s;
}

.lightrope li:nth-child(4n+2) {
  background: #f70094;
  box-shadow: 0px 4.66667px 24px 3px #f70094;
  -webkit-animation-name: flash-3;
  animation-name: flash-3;
  -webkit-animation-duration: 1.1s;
  animation-duration: 1.1s;
}

.lightrope li:nth-child(odd) {
  -webkit-animation-duration: 1.8s;
  animation-duration: 1.8s;
}

.lightrope li:nth-child(3n+1) {
  -webkit-animation-duration: 1.4s;
  animation-duration: 1.4s;
}

.lightrope li:before {
  content: "";
  position: absolute;
  background: #222;
  width: 10px;
  height: 9.33333px;
  border-radius: 3px;
  top: -4.66667px;
  left: 1px;
}

.lightrope li:after {
  content: "";
  top: -14px;
  left: 9px;
  position: absolute;
  width: 52px;
  height: 18.66667px;
  border-bottom: solid #222 2px;
  border-radius: 50%;
}

.lightrope li:last-child:after {
  content: none;
}

.lightrope li:first-child {
  margin-left: -40px;
}

@-webkit-keyframes flash-1 {
  0%, 100% {
    background: #00f7a5;
    box-shadow: 0px 4.66667px 24px 3px #00f7a5;
  }
  50% {
    background: rgba(0, 247, 165, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(0, 247, 165, 0.2);
  }
}

@keyframes flash-1 {
  0%, 100% {
    background: #00f7a5;
    box-shadow: 0px 4.66667px 24px 3px #00f7a5;
  }
  50% {
    background: rgba(0, 247, 165, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(0, 247, 165, 0.2);
  }
}

@-webkit-keyframes flash-2 {
  0%, 100% {
    background: cyan;
    box-shadow: 0px 4.66667px 24px 3px cyan;
  }
  50% {
    background: rgba(0, 255, 255, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(0, 255, 255, 0.2);
  }
}

@keyframes flash-2 {
  0%, 100% {
    background: cyan;
    box-shadow: 0px 4.66667px 24px 3px cyan;
  }
  50% {
    background: rgba(0, 255, 255, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(0, 255, 255, 0.2);
  }
}

@-webkit-keyframes flash-3 {
  0%, 100% {
    background: #f70094;
    box-shadow: 0px 4.66667px 24px 3px #f70094;
  }
  50% {
    background: rgba(247, 0, 148, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(247, 0, 148, 0.2);
  }
}

@keyframes flash-3 {
  0%, 100% {
    background: #f70094;
    box-shadow: 0px 4.66667px 24px 3px #f70094;
  }
  50% {
    background: rgba(247, 0, 148, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(247, 0, 148, 0.2);
  }
}</code></pre><br>Вот и всё!!! Всех с Наступающим!!!! ]]></turbo:content>
<content:encoded><![CDATA[ <a class="highslide" href="https://for-web.ru/uploads/posts/2019-12/1576119025_1512738577_newyear_lights.jpg" target="_blank"><img src="https://for-web.ru/uploads/posts/2019-12/thumbs/1576119025_1512738577_newyear_lights.jpg" alt="" class="fr-dib"></a>Ищите простое и креативное решение для украшения сайта к новому году? Тогда Вы попали туда куда нужно.<br>Данное решение позволит Вам на своем сайте организовать простую гирлянду. <br>Гирлянда построена на чистом CSS. Минимальная копотня в коде, а в итоге красивая мерцающая гирлянда.<br>Приступим устанавливаем HTML код на свою страницу.<br><pre><code>&lt;ul class="lightrope"&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
  &lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;</code></pre>По сути элемент<b> li</b>  это есть лампочка.<br><br>Не забываем про стили CSS:<br><pre><code>.lightrope {
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  position: absolute;
  z-index: 1;
  margin: -15px 0 0 0;
  padding: 0;
  pointer-events: none;
  width: 100%;
}

.lightrope li {
  position: relative;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  list-style: none;
  margin: 0;
  padding: 0;
  display: block;
  width: 12px;
  height: 28px;
  border-radius: 50%;
  margin: 20px;
  display: inline-block;
  background: #00f7a5;
  box-shadow: 0px 4.66667px 24px 3px #00f7a5;
  -webkit-animation-name: flash-1;
  animation-name: flash-1;
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
}

.lightrope li:nth-child(2n+1) {
  background: cyan;
  box-shadow: 0px 4.66667px 24px 3px rgba(0, 255, 255, 0.5);
  -webkit-animation-name: flash-2;
  animation-name: flash-2;
  -webkit-animation-duration: 0.4s;
  animation-duration: 0.4s;
}

.lightrope li:nth-child(4n+2) {
  background: #f70094;
  box-shadow: 0px 4.66667px 24px 3px #f70094;
  -webkit-animation-name: flash-3;
  animation-name: flash-3;
  -webkit-animation-duration: 1.1s;
  animation-duration: 1.1s;
}

.lightrope li:nth-child(odd) {
  -webkit-animation-duration: 1.8s;
  animation-duration: 1.8s;
}

.lightrope li:nth-child(3n+1) {
  -webkit-animation-duration: 1.4s;
  animation-duration: 1.4s;
}

.lightrope li:before {
  content: "";
  position: absolute;
  background: #222;
  width: 10px;
  height: 9.33333px;
  border-radius: 3px;
  top: -4.66667px;
  left: 1px;
}

.lightrope li:after {
  content: "";
  top: -14px;
  left: 9px;
  position: absolute;
  width: 52px;
  height: 18.66667px;
  border-bottom: solid #222 2px;
  border-radius: 50%;
}

.lightrope li:last-child:after {
  content: none;
}

.lightrope li:first-child {
  margin-left: -40px;
}

@-webkit-keyframes flash-1 {
  0%, 100% {
    background: #00f7a5;
    box-shadow: 0px 4.66667px 24px 3px #00f7a5;
  }
  50% {
    background: rgba(0, 247, 165, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(0, 247, 165, 0.2);
  }
}

@keyframes flash-1 {
  0%, 100% {
    background: #00f7a5;
    box-shadow: 0px 4.66667px 24px 3px #00f7a5;
  }
  50% {
    background: rgba(0, 247, 165, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(0, 247, 165, 0.2);
  }
}

@-webkit-keyframes flash-2 {
  0%, 100% {
    background: cyan;
    box-shadow: 0px 4.66667px 24px 3px cyan;
  }
  50% {
    background: rgba(0, 255, 255, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(0, 255, 255, 0.2);
  }
}

@keyframes flash-2 {
  0%, 100% {
    background: cyan;
    box-shadow: 0px 4.66667px 24px 3px cyan;
  }
  50% {
    background: rgba(0, 255, 255, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(0, 255, 255, 0.2);
  }
}

@-webkit-keyframes flash-3 {
  0%, 100% {
    background: #f70094;
    box-shadow: 0px 4.66667px 24px 3px #f70094;
  }
  50% {
    background: rgba(247, 0, 148, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(247, 0, 148, 0.2);
  }
}

@keyframes flash-3 {
  0%, 100% {
    background: #f70094;
    box-shadow: 0px 4.66667px 24px 3px #f70094;
  }
  50% {
    background: rgba(247, 0, 148, 0.4);
    box-shadow: 0px 4.66667px 24px 3px rgba(247, 0, 148, 0.2);
  }
}</code></pre><br>Вот и всё!!! Всех с Наступающим!!!! ]]></content:encoded>
</item><item turbo="true">
<title>Падающий снег для сайта на HTML5 Canvas</title>
<guid isPermaLink="true">https://for-web.ru/ukrasheniya-dlya-sayta/786-padajuschij-sneg-dlja-sajta-na-html5-canvas.html</guid>
<link>https://for-web.ru/ukrasheniya-dlya-sayta/786-padajuschij-sneg-dlja-sajta-na-html5-canvas.html</link>
<category><![CDATA[Украшения для сайта / Скрипты]]></category>
<dc:creator>Project Team</dc:creator>
<pubDate>Tue, 01 Dec 2020 21:17:10 +0300</pubDate>
<description><![CDATA[<img src="https://for-web.ru/uploads/posts/2020-01/1578323324_padayushhiy-sneg-dlya-sayta-na-html5-canvas_jpg_pagespeed_ce_sriyvp2pjx.jpg" alt="" class="fr-dib">Добрый вечер уважаемые посетители <b>портала скриптов и шаблонов</b> FOR-WEB.ru . Зимние праздники продолжаются, а я в свою очередь подобрал еще один эффект падающего снега реализованного на <b>Canvas</b>. Отличительной чертой является то, что снег отлетает от курсора мыши. И так приступим.<br><br><b>HTML</b><br><pre><code>&lt;section class="xmas"&gt;
 &lt;!-- Блок Merry Xmas --&gt;
 &lt;div class="xmas-message"&gt;&lt;/div&gt;
 
 &lt;div class="from"&gt;
 &lt;a class="gc-link small-title from-name" href=" https://for-web.ru"&gt;Вернуться к новости&lt;/a&gt;
 &lt;/div&gt;
 &lt;!-- Снег! --&gt;
 &lt;canvas id="xmas"&gt;&lt;/canvas&gt;
&lt;/section&gt;</code></pre><br><b>CSS</b><br><pre><code>.xmas {
 height: 100%;
 width: 100%;
 position: relative;
 background: url("https://for-web.ru/script/merrycristmas/xmas-large.jpg") no-repeat 0 0/cover;
}
.xmas .xmas-message {
 position: absolute;
 left: 50%;
 top: 50%;
 z-index: 2;
 -ms-transform: translate(-50%, -50%);
 -webkit-transform: translate(-50%, -50%);
 transform: translate(-50%, -50%);
 width: calc(90% - 6rem);
 height: calc(100% - 12rem);
 margin: 0 auto;
 background: url(https://for-web.ru/script/merrycristmas/merryxmas.png) no-repeat 50% 50% / contain;
}
.xmas .from {
 position: absolute;
 bottom: 40px;
 width: 100%;
 z-index: 3;
 text-align: center;
}
.xmas .from div {
 font-family: "quimby-mayoral", sans-serif;
 color: #ffffff;
 font-size: 40px;
 margin-bottom: 10px;
}
.xmas .from .gc-link {
 display: inline-block;
 font-family: "brandon-grotesque", sans-serif;
 font-size: 24px;
 color: #ffffff;
 -webkit-transition: 400ms ease;
 transition: 400ms ease;
 text-decoration: none;
 text-transform: uppercase;
}
.xmas .from .gc-link:hover {
 color: #1cff94;
}
.xmas #xmas {
 width: 100%;
 height: 100%;
 position: relative;
 z-index: 2;
}</code></pre>Не забываем сменить пути<br><br><b>JS</b><br><pre><code>$(document).ready(function(){
 
 initLetItSnow();
});
 
var initLetItSnow = function(){
 
 (function() {
 var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame ||
 function(callback) {
 window.setTimeout(callback, 1000 / 60);
 };
 window.requestAnimationFrame = requestAnimationFrame;
 })();
 
 var flakes = [],
 canvas = document.getElementById("xmas"),
 ctx = canvas.getContext("2d"),
 mX = -100,
 mY = -100;
 
 if( $(window).width() &lt; 999 ){
 var flakeCount = 125;
 } else {
 var flakeCount = 450;
 }
 
 canvas.width = window.innerWidth;
 canvas.height = window.innerHeight;
 
 function snow() {
 ctx.clearRect(0, 0, canvas.width, canvas.height);
 
 for (var i = 0; i &lt; flakeCount; i++) {
 var flake = flakes[i],
 x = mX,
 y = mY,
 minDist = 250,
 x2 = flake.x,
 y2 = flake.y;
 
 var dist = Math.sqrt((x2 - x) * (x2 - x) + (y2 - y) * (y2 - y)),
 dx = x2 - x,
 dy = y2 - y;
 
 if (dist &lt; minDist) {
 var force = minDist / (dist * dist),
 xcomp = (x - x2) / dist,
 ycomp = (y - y2) / dist,
 deltaV = force;
 
 flake.velX -= deltaV * xcomp;
 flake.velY -= deltaV * ycomp;
 
 } else {
 flake.velX *= .98;
 if (flake.velY &lt;= flake.speed) {
 flake.velY = flake.speed
 }
 flake.velX += Math.cos(flake.step += .05) * flake.stepSize;
 }
 
 ctx.fillStyle = "rgba(255,255,255," + flake.opacity + ")";
 flake.y += flake.velY;
 flake.x += flake.velX;
 
 if (flake.y &gt;= canvas.height || flake.y &lt;= 0) {
 reset(flake);
 }
 
 if (flake.x &gt;= canvas.width || flake.x &lt;= 0) {
 reset(flake);
 }
 
 ctx.beginPath();
 ctx.arc(flake.x, flake.y, flake.size, 0, Math.PI * 2);
 ctx.fill();
 }
 requestAnimationFrame(snow);
 };
 
 function reset(flake) {
 flake.x = Math.floor(Math.random() * canvas.width);
 flake.y = 0;
 flake.size = (Math.random() * 3) + 2;
 flake.speed = (Math.random() * 1) + 0.5;
 flake.velY = flake.speed;
 flake.velX = 0;
 flake.opacity = (Math.random() * 0.5) + 0.3;
 }
 
 function init() {
 for (var i = 0; i &lt; flakeCount; i++) {
 var x = Math.floor(Math.random() * canvas.width),
 y = Math.floor(Math.random() * canvas.height),
 size = (Math.random() * 3) + 4,
 speed = (Math.random() * 1) + 0.5,
 opacity = (Math.random() * 0.5) + 0.3;
 
 flakes.push({
 speed: speed,
 velY: speed,
 velX: 0,
 x: x,
 y: y,
 size: size,
 stepSize: (Math.random()) / 160,
 step: 0,
 opacity: opacity
 });
 }
 
 snow();
 };
 
 canvas.addEventListener("mousemove", function(e) {
 mX = e.clientX,
 mY = e.clientY
 });
 
 window.addEventListener("resize",function(){
 canvas.width = window.innerWidth;
 canvas.height = window.innerHeight;
 })
 
 init();
};</code></pre><br>Подключаем <b>JQuery</b><br><pre><code>&lt;script src="https://code.jquery.com/jquery-1.11.1.js"&gt;&lt;/script&gt;</code></pre><br>]]></description>
<turbo:content><![CDATA[ <img src="https://for-web.ru/uploads/posts/2020-01/1578323324_padayushhiy-sneg-dlya-sayta-na-html5-canvas_jpg_pagespeed_ce_sriyvp2pjx.jpg" alt="" class="fr-dib">Добрый вечер уважаемые посетители <b>портала скриптов и шаблонов</b> FOR-WEB.ru . Зимние праздники продолжаются, а я в свою очередь подобрал еще один эффект падающего снега реализованного на <b>Canvas</b>. Отличительной чертой является то, что снег отлетает от курсора мыши. И так приступим.<br><br><b>HTML</b><br><pre><code>&lt;section class="xmas"&gt;
 &lt;!-- Блок Merry Xmas --&gt;
 &lt;div class="xmas-message"&gt;&lt;/div&gt;
 
 &lt;div class="from"&gt;
 &lt;a class="gc-link small-title from-name" href=" https://for-web.ru"&gt;Вернуться к новости&lt;/a&gt;
 &lt;/div&gt;
 &lt;!-- Снег! --&gt;
 &lt;canvas id="xmas"&gt;&lt;/canvas&gt;
&lt;/section&gt;</code></pre><br><b>CSS</b><br><pre><code>.xmas {
 height: 100%;
 width: 100%;
 position: relative;
 background: url("https://for-web.ru/script/merrycristmas/xmas-large.jpg") no-repeat 0 0/cover;
}
.xmas .xmas-message {
 position: absolute;
 left: 50%;
 top: 50%;
 z-index: 2;
 -ms-transform: translate(-50%, -50%);
 -webkit-transform: translate(-50%, -50%);
 transform: translate(-50%, -50%);
 width: calc(90% - 6rem);
 height: calc(100% - 12rem);
 margin: 0 auto;
 background: url(https://for-web.ru/script/merrycristmas/merryxmas.png) no-repeat 50% 50% / contain;
}
.xmas .from {
 position: absolute;
 bottom: 40px;
 width: 100%;
 z-index: 3;
 text-align: center;
}
.xmas .from div {
 font-family: "quimby-mayoral", sans-serif;
 color: #ffffff;
 font-size: 40px;
 margin-bottom: 10px;
}
.xmas .from .gc-link {
 display: inline-block;
 font-family: "brandon-grotesque", sans-serif;
 font-size: 24px;
 color: #ffffff;
 -webkit-transition: 400ms ease;
 transition: 400ms ease;
 text-decoration: none;
 text-transform: uppercase;
}
.xmas .from .gc-link:hover {
 color: #1cff94;
}
.xmas #xmas {
 width: 100%;
 height: 100%;
 position: relative;
 z-index: 2;
}</code></pre>Не забываем сменить пути<br><br><b>JS</b><br><pre><code>$(document).ready(function(){
 
 initLetItSnow();
});
 
var initLetItSnow = function(){
 
 (function() {
 var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame ||
 function(callback) {
 window.setTimeout(callback, 1000 / 60);
 };
 window.requestAnimationFrame = requestAnimationFrame;
 })();
 
 var flakes = [],
 canvas = document.getElementById("xmas"),
 ctx = canvas.getContext("2d"),
 mX = -100,
 mY = -100;
 
 if( $(window).width() &lt; 999 ){
 var flakeCount = 125;
 } else {
 var flakeCount = 450;
 }
 
 canvas.width = window.innerWidth;
 canvas.height = window.innerHeight;
 
 function snow() {
 ctx.clearRect(0, 0, canvas.width, canvas.height);
 
 for (var i = 0; i &lt; flakeCount; i++) {
 var flake = flakes[i],
 x = mX,
 y = mY,
 minDist = 250,
 x2 = flake.x,
 y2 = flake.y;
 
 var dist = Math.sqrt((x2 - x) * (x2 - x) + (y2 - y) * (y2 - y)),
 dx = x2 - x,
 dy = y2 - y;
 
 if (dist &lt; minDist) {
 var force = minDist / (dist * dist),
 xcomp = (x - x2) / dist,
 ycomp = (y - y2) / dist,
 deltaV = force;
 
 flake.velX -= deltaV * xcomp;
 flake.velY -= deltaV * ycomp;
 
 } else {
 flake.velX *= .98;
 if (flake.velY &lt;= flake.speed) {
 flake.velY = flake.speed
 }
 flake.velX += Math.cos(flake.step += .05) * flake.stepSize;
 }
 
 ctx.fillStyle = "rgba(255,255,255," + flake.opacity + ")";
 flake.y += flake.velY;
 flake.x += flake.velX;
 
 if (flake.y &gt;= canvas.height || flake.y &lt;= 0) {
 reset(flake);
 }
 
 if (flake.x &gt;= canvas.width || flake.x &lt;= 0) {
 reset(flake);
 }
 
 ctx.beginPath();
 ctx.arc(flake.x, flake.y, flake.size, 0, Math.PI * 2);
 ctx.fill();
 }
 requestAnimationFrame(snow);
 };
 
 function reset(flake) {
 flake.x = Math.floor(Math.random() * canvas.width);
 flake.y = 0;
 flake.size = (Math.random() * 3) + 2;
 flake.speed = (Math.random() * 1) + 0.5;
 flake.velY = flake.speed;
 flake.velX = 0;
 flake.opacity = (Math.random() * 0.5) + 0.3;
 }
 
 function init() {
 for (var i = 0; i &lt; flakeCount; i++) {
 var x = Math.floor(Math.random() * canvas.width),
 y = Math.floor(Math.random() * canvas.height),
 size = (Math.random() * 3) + 4,
 speed = (Math.random() * 1) + 0.5,
 opacity = (Math.random() * 0.5) + 0.3;
 
 flakes.push({
 speed: speed,
 velY: speed,
 velX: 0,
 x: x,
 y: y,
 size: size,
 stepSize: (Math.random()) / 160,
 step: 0,
 opacity: opacity
 });
 }
 
 snow();
 };
 
 canvas.addEventListener("mousemove", function(e) {
 mX = e.clientX,
 mY = e.clientY
 });
 
 window.addEventListener("resize",function(){
 canvas.width = window.innerWidth;
 canvas.height = window.innerHeight;
 })
 
 init();
};</code></pre><br>Подключаем <b>JQuery</b><br><pre><code>&lt;script src="https://code.jquery.com/jquery-1.11.1.js"&gt;&lt;/script&gt;</code></pre><br> ]]></turbo:content>
<content:encoded><![CDATA[ <img src="https://for-web.ru/uploads/posts/2020-01/1578323324_padayushhiy-sneg-dlya-sayta-na-html5-canvas_jpg_pagespeed_ce_sriyvp2pjx.jpg" alt="" class="fr-dib">Добрый вечер уважаемые посетители <b>портала скриптов и шаблонов</b> FOR-WEB.ru . Зимние праздники продолжаются, а я в свою очередь подобрал еще один эффект падающего снега реализованного на <b>Canvas</b>. Отличительной чертой является то, что снег отлетает от курсора мыши. И так приступим.<br><br><b>HTML</b><br><pre><code>&lt;section class="xmas"&gt;
 &lt;!-- Блок Merry Xmas --&gt;
 &lt;div class="xmas-message"&gt;&lt;/div&gt;
 
 &lt;div class="from"&gt;
 &lt;a class="gc-link small-title from-name" href=" https://for-web.ru"&gt;Вернуться к новости&lt;/a&gt;
 &lt;/div&gt;
 &lt;!-- Снег! --&gt;
 &lt;canvas id="xmas"&gt;&lt;/canvas&gt;
&lt;/section&gt;</code></pre><br><b>CSS</b><br><pre><code>.xmas {
 height: 100%;
 width: 100%;
 position: relative;
 background: url("https://for-web.ru/script/merrycristmas/xmas-large.jpg") no-repeat 0 0/cover;
}
.xmas .xmas-message {
 position: absolute;
 left: 50%;
 top: 50%;
 z-index: 2;
 -ms-transform: translate(-50%, -50%);
 -webkit-transform: translate(-50%, -50%);
 transform: translate(-50%, -50%);
 width: calc(90% - 6rem);
 height: calc(100% - 12rem);
 margin: 0 auto;
 background: url(https://for-web.ru/script/merrycristmas/merryxmas.png) no-repeat 50% 50% / contain;
}
.xmas .from {
 position: absolute;
 bottom: 40px;
 width: 100%;
 z-index: 3;
 text-align: center;
}
.xmas .from div {
 font-family: "quimby-mayoral", sans-serif;
 color: #ffffff;
 font-size: 40px;
 margin-bottom: 10px;
}
.xmas .from .gc-link {
 display: inline-block;
 font-family: "brandon-grotesque", sans-serif;
 font-size: 24px;
 color: #ffffff;
 -webkit-transition: 400ms ease;
 transition: 400ms ease;
 text-decoration: none;
 text-transform: uppercase;
}
.xmas .from .gc-link:hover {
 color: #1cff94;
}
.xmas #xmas {
 width: 100%;
 height: 100%;
 position: relative;
 z-index: 2;
}</code></pre>Не забываем сменить пути<br><br><b>JS</b><br><pre><code>$(document).ready(function(){
 
 initLetItSnow();
});
 
var initLetItSnow = function(){
 
 (function() {
 var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame ||
 function(callback) {
 window.setTimeout(callback, 1000 / 60);
 };
 window.requestAnimationFrame = requestAnimationFrame;
 })();
 
 var flakes = [],
 canvas = document.getElementById("xmas"),
 ctx = canvas.getContext("2d"),
 mX = -100,
 mY = -100;
 
 if( $(window).width() &lt; 999 ){
 var flakeCount = 125;
 } else {
 var flakeCount = 450;
 }
 
 canvas.width = window.innerWidth;
 canvas.height = window.innerHeight;
 
 function snow() {
 ctx.clearRect(0, 0, canvas.width, canvas.height);
 
 for (var i = 0; i &lt; flakeCount; i++) {
 var flake = flakes[i],
 x = mX,
 y = mY,
 minDist = 250,
 x2 = flake.x,
 y2 = flake.y;
 
 var dist = Math.sqrt((x2 - x) * (x2 - x) + (y2 - y) * (y2 - y)),
 dx = x2 - x,
 dy = y2 - y;
 
 if (dist &lt; minDist) {
 var force = minDist / (dist * dist),
 xcomp = (x - x2) / dist,
 ycomp = (y - y2) / dist,
 deltaV = force;
 
 flake.velX -= deltaV * xcomp;
 flake.velY -= deltaV * ycomp;
 
 } else {
 flake.velX *= .98;
 if (flake.velY &lt;= flake.speed) {
 flake.velY = flake.speed
 }
 flake.velX += Math.cos(flake.step += .05) * flake.stepSize;
 }
 
 ctx.fillStyle = "rgba(255,255,255," + flake.opacity + ")";
 flake.y += flake.velY;
 flake.x += flake.velX;
 
 if (flake.y &gt;= canvas.height || flake.y &lt;= 0) {
 reset(flake);
 }
 
 if (flake.x &gt;= canvas.width || flake.x &lt;= 0) {
 reset(flake);
 }
 
 ctx.beginPath();
 ctx.arc(flake.x, flake.y, flake.size, 0, Math.PI * 2);
 ctx.fill();
 }
 requestAnimationFrame(snow);
 };
 
 function reset(flake) {
 flake.x = Math.floor(Math.random() * canvas.width);
 flake.y = 0;
 flake.size = (Math.random() * 3) + 2;
 flake.speed = (Math.random() * 1) + 0.5;
 flake.velY = flake.speed;
 flake.velX = 0;
 flake.opacity = (Math.random() * 0.5) + 0.3;
 }
 
 function init() {
 for (var i = 0; i &lt; flakeCount; i++) {
 var x = Math.floor(Math.random() * canvas.width),
 y = Math.floor(Math.random() * canvas.height),
 size = (Math.random() * 3) + 4,
 speed = (Math.random() * 1) + 0.5,
 opacity = (Math.random() * 0.5) + 0.3;
 
 flakes.push({
 speed: speed,
 velY: speed,
 velX: 0,
 x: x,
 y: y,
 size: size,
 stepSize: (Math.random()) / 160,
 step: 0,
 opacity: opacity
 });
 }
 
 snow();
 };
 
 canvas.addEventListener("mousemove", function(e) {
 mX = e.clientX,
 mY = e.clientY
 });
 
 window.addEventListener("resize",function(){
 canvas.width = window.innerWidth;
 canvas.height = window.innerHeight;
 })
 
 init();
};</code></pre><br>Подключаем <b>JQuery</b><br><pre><code>&lt;script src="https://code.jquery.com/jquery-1.11.1.js"&gt;&lt;/script&gt;</code></pre><br> ]]></content:encoded>
</item><item turbo="true">
<title>Защита текста от копирования</title>
<guid isPermaLink="true">https://for-web.ru/javascript/1440-zaschita-teksta-ot-kopirovanija.html</guid>
<link>https://for-web.ru/javascript/1440-zaschita-teksta-ot-kopirovanija.html</link>
<category><![CDATA[JavaScript / Скрипты]]></category>
<dc:creator>Project Team</dc:creator>
<pubDate>Wed, 18 Nov 2020 20:26:37 +0300</pubDate>
<description><![CDATA[<b>Защита текста от копирования - это постоянная</b> боль для вебмастера, особенно когда контент пишется вручную и в него инвестируешь много времени и души. А потом текст копируют на множество сайтов и даже не ставят обратной ссылки.<br><br>Честно сказать универсальной защиты просто не существует в наше время. Если захотеть, то можно без проблем скопировать текст. Даже если отключить правую кнопку мыши, то всегда можно зайти через исходный код и выдрать весь текст. А если и начинают воровать тексты, то используют парсеры и прочий софт который забирает сразу весь текст  с сайта, а владелец потом мучается и не получает, то что хотел.<br><br>Я не буду писать о том, как сделать такой банальный метод. Я хочу написать Вам об одном очень интересном скрипте, который сам ставит ссылку на вас. Даже если текст скопировали с сайта и кинули в в контакте, то ссылка на источник будет там присутствовать и владелец текста больше всего получит нового посетителя на сайт.<br><br><b>Такая защита текста от копирования может дать больше естественной ссылочной массы!</b><br><br>Ну и сам скрипт:<br><pre><code>&lt;script type="text/jаvascript"&gt;
function addLink() {
    var body_element = document.getElementsByTagName('body')[0];
    var selection;
    selection = window.getSelection();
    var pagelink = "&lt;br /&gt;&lt;br /&gt; Источник: &lt;a href='"+document.location.href+"'&gt;"+document.location.href+"&lt;/a&gt;&lt;br /&gt;© Все для ВебМастера на For-Web.Ru";
    var copytext = selection + pagelink;
    var newdiv = document.createElement('div');
    newdiv.style.position='absolute';
    newdiv.style.left='-99999px';
    body_element.appendChild(newdiv);
    newdiv.innerHTML = copytext;
    selection.selectAllChildren(newdiv);
    window.setTimeout(function() {
        body_element.removeChild(newdiv);
    },0);
}
document.&#111;ncopy = addLink;
&lt;/script&gt;</code></pre><br>Его можно установить на любую CMS, главное вставить код <b>перед тегом /head</b>.<br><br>Удачной работы, надеюсь это поможет Вам собрать сайту ссылочную массу, а так же защитить немного текст вашего сайта!]]></description>
<turbo:content><![CDATA[ <b>Защита текста от копирования - это постоянная</b> боль для вебмастера, особенно когда контент пишется вручную и в него инвестируешь много времени и души. А потом текст копируют на множество сайтов и даже не ставят обратной ссылки.<br><br>Честно сказать универсальной защиты просто не существует в наше время. Если захотеть, то можно без проблем скопировать текст. Даже если отключить правую кнопку мыши, то всегда можно зайти через исходный код и выдрать весь текст. А если и начинают воровать тексты, то используют парсеры и прочий софт который забирает сразу весь текст  с сайта, а владелец потом мучается и не получает, то что хотел.<br><br>Я не буду писать о том, как сделать такой банальный метод. Я хочу написать Вам об одном очень интересном скрипте, который сам ставит ссылку на вас. Даже если текст скопировали с сайта и кинули в в контакте, то ссылка на источник будет там присутствовать и владелец текста больше всего получит нового посетителя на сайт.<br><br><b>Такая защита текста от копирования может дать больше естественной ссылочной массы!</b><br><br>Ну и сам скрипт:<br><pre><code>&lt;script type="text/jаvascript"&gt;
function addLink() {
    var body_element = document.getElementsByTagName('body')[0];
    var selection;
    selection = window.getSelection();
    var pagelink = "&lt;br /&gt;&lt;br /&gt; Источник: &lt;a href='"+document.location.href+"'&gt;"+document.location.href+"&lt;/a&gt;&lt;br /&gt;© Все для ВебМастера на For-Web.Ru";
    var copytext = selection + pagelink;
    var newdiv = document.createElement('div');
    newdiv.style.position='absolute';
    newdiv.style.left='-99999px';
    body_element.appendChild(newdiv);
    newdiv.innerHTML = copytext;
    selection.selectAllChildren(newdiv);
    window.setTimeout(function() {
        body_element.removeChild(newdiv);
    },0);
}
document.&#111;ncopy = addLink;
&lt;/script&gt;</code></pre><br>Его можно установить на любую CMS, главное вставить код <b>перед тегом /head</b>.<br><br>Удачной работы, надеюсь это поможет Вам собрать сайту ссылочную массу, а так же защитить немного текст вашего сайта! ]]></turbo:content>
<content:encoded><![CDATA[ <b>Защита текста от копирования - это постоянная</b> боль для вебмастера, особенно когда контент пишется вручную и в него инвестируешь много времени и души. А потом текст копируют на множество сайтов и даже не ставят обратной ссылки.<br><br>Честно сказать универсальной защиты просто не существует в наше время. Если захотеть, то можно без проблем скопировать текст. Даже если отключить правую кнопку мыши, то всегда можно зайти через исходный код и выдрать весь текст. А если и начинают воровать тексты, то используют парсеры и прочий софт который забирает сразу весь текст  с сайта, а владелец потом мучается и не получает, то что хотел.<br><br>Я не буду писать о том, как сделать такой банальный метод. Я хочу написать Вам об одном очень интересном скрипте, который сам ставит ссылку на вас. Даже если текст скопировали с сайта и кинули в в контакте, то ссылка на источник будет там присутствовать и владелец текста больше всего получит нового посетителя на сайт.<br><br><b>Такая защита текста от копирования может дать больше естественной ссылочной массы!</b><br><br>Ну и сам скрипт:<br><pre><code>&lt;script type="text/jаvascript"&gt;
function addLink() {
    var body_element = document.getElementsByTagName('body')[0];
    var selection;
    selection = window.getSelection();
    var pagelink = "&lt;br /&gt;&lt;br /&gt; Источник: &lt;a href='"+document.location.href+"'&gt;"+document.location.href+"&lt;/a&gt;&lt;br /&gt;© Все для ВебМастера на For-Web.Ru";
    var copytext = selection + pagelink;
    var newdiv = document.createElement('div');
    newdiv.style.position='absolute';
    newdiv.style.left='-99999px';
    body_element.appendChild(newdiv);
    newdiv.innerHTML = copytext;
    selection.selectAllChildren(newdiv);
    window.setTimeout(function() {
        body_element.removeChild(newdiv);
    },0);
}
document.&#111;ncopy = addLink;
&lt;/script&gt;</code></pre><br>Его можно установить на любую CMS, главное вставить код <b>перед тегом /head</b>.<br><br>Удачной работы, надеюсь это поможет Вам собрать сайту ссылочную массу, а так же защитить немного текст вашего сайта! ]]></content:encoded>
</item></channel></rss>