<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: duboloms</title>
    <description>The latest articles on DEV Community by duboloms (@duboloms).</description>
    <link>https://dev.to/duboloms</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F325089%2Fd1cb2273-05b7-4897-9b75-73fa1647d0d8.png</url>
      <title>DEV Community: duboloms</title>
      <link>https://dev.to/duboloms</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/duboloms"/>
    <language>en</language>
    <item>
      <title>Range slider |  #JS, #Slider</title>
      <dc:creator>duboloms</dc:creator>
      <pubDate>Tue, 14 Jul 2020 14:57:54 +0000</pubDate>
      <link>https://dev.to/duboloms/range-slider-js-slider-50b7</link>
      <guid>https://dev.to/duboloms/range-slider-js-slider-50b7</guid>
      <description>&lt;p&gt;Beautiful range-slider for resize text&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/duboloms/embed/gOPdwOZ?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Custom slider without  slider libs - #JS #jQuery</title>
      <dc:creator>duboloms</dc:creator>
      <pubDate>Thu, 14 May 2020 15:08:15 +0000</pubDate>
      <link>https://dev.to/duboloms/custom-slider-without-slider-libs-js-jquery-og8</link>
      <guid>https://dev.to/duboloms/custom-slider-without-slider-libs-js-jquery-og8</guid>
      <description>&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/duboloms/embed/NWGLxNz?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>javascript</category>
      <category>frontend</category>
    </item>
    <item>
      <title>flashlight effect in website - #CSS3 #JS #GSAP</title>
      <dc:creator>duboloms</dc:creator>
      <pubDate>Tue, 12 May 2020 19:57:13 +0000</pubDate>
      <link>https://dev.to/duboloms/flashlight-effect-css3-js-gsap-adp</link>
      <guid>https://dev.to/duboloms/flashlight-effect-css3-js-gsap-adp</guid>
      <description>&lt;p&gt;FlashLight in WebSite&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/duboloms/embed/jObpEYg?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>javascript</category>
      <category>gsap</category>
      <category>css</category>
    </item>
    <item>
      <title>JavaScript original Loader (from Medium post) || #JS #AnimeJS #Loader</title>
      <dc:creator>duboloms</dc:creator>
      <pubDate>Thu, 07 May 2020 14:26:29 +0000</pubDate>
      <link>https://dev.to/duboloms/javascript-original-loader-from-medium-post-js-animejs-loader-2e27</link>
      <guid>https://dev.to/duboloms/javascript-original-loader-from-medium-post-js-animejs-loader-2e27</guid>
      <description>&lt;p&gt;JavaScript original loader from &lt;a href="https://medium.com/udacity-google-india-scholars/create-a-full-screen-website-pre-loader-in-a-jiffy-1ecfbe39faae"&gt;this&lt;/a&gt; medium post:&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/duboloms/embed/oNjxgaY?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
    </item>
    <item>
      <title>Js Preloader dots animation - #JavaScript, #GSAP, #Preloader</title>
      <dc:creator>duboloms</dc:creator>
      <pubDate>Thu, 30 Apr 2020 12:38:56 +0000</pubDate>
      <link>https://dev.to/duboloms/js-preloader-javascript-gsap-preloader-27aa</link>
      <guid>https://dev.to/duboloms/js-preloader-javascript-gsap-preloader-27aa</guid>
      <description>&lt;p&gt;Pure js dots animation in preloader:&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/duboloms/embed/PoPKLzq?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>javascript</category>
      <category>css</category>
    </item>
    <item>
      <title>Cursor Circle - #JS</title>
      <dc:creator>duboloms</dc:creator>
      <pubDate>Mon, 20 Apr 2020 20:27:17 +0000</pubDate>
      <link>https://dev.to/duboloms/cursor-circle-js-2k4c</link>
      <guid>https://dev.to/duboloms/cursor-circle-js-2k4c</guid>
      <description>&lt;p&gt;Custom cursor:&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/duboloms/embed/gOpbXYV?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Smooth Scroll JavaScript || #JavaScript #GSAP</title>
      <dc:creator>duboloms</dc:creator>
      <pubDate>Mon, 20 Apr 2020 20:23:37 +0000</pubDate>
      <link>https://dev.to/duboloms/smooth-scroll-javascript-javascript-gsap-45pk</link>
      <guid>https://dev.to/duboloms/smooth-scroll-javascript-javascript-gsap-45pk</guid>
      <description>&lt;p&gt;Smooth Scroll with JavaScript:&lt;br&gt;
&lt;a href="https://codepen.io/duboloms/pen/JjYRvZV"&gt;Click here to Demo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>javascript</category>
      <category>gsap</category>
    </item>
    <item>
      <title>JavaScript original Loader (from Medium post) || #JS #AnimeJS #Pre-loader #Loader</title>
      <dc:creator>duboloms</dc:creator>
      <pubDate>Mon, 20 Apr 2020 18:55:12 +0000</pubDate>
      <link>https://dev.to/duboloms/javascript-original-loader-from-medium-post-js-gsap-loader-456b</link>
      <guid>https://dev.to/duboloms/javascript-original-loader-from-medium-post-js-gsap-loader-456b</guid>
      <description>&lt;h1&gt;
  
  
  &lt;strong&gt;How to make pre-loader?&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Today i show you how make this pre-loader:&lt;br&gt;
&lt;a href="https://miro.medium.com/max/2712/1*vgP6AbEvZYhdQCfBBLgikg.gif"&gt;https://miro.medium.com/max/2712/1*vgP6AbEvZYhdQCfBBLgikg.gif&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;BUT before I start, I'll tell you that I took the idea from this medium post: &lt;div class="ltag__link"&gt;
  &lt;a href="https://codeburst.io/create-a-full-screen-website-pre-loader-in-a-jiffy-74e7aa99ac1b" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fyr1paPB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/fit/c/96/96/2%2AuCsd8FI_d-XTL4wzD515wg.jpeg" alt="Vaibhav Khulbe"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://codeburst.io/create-a-full-screen-website-pre-loader-in-a-jiffy-74e7aa99ac1b" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Create a full-screen website pre-loader in a jiffy - codeburst&lt;/h2&gt;
      &lt;h3&gt;Vaibhav Khulbe ・ &lt;time&gt;Sep 11, 2018&lt;/time&gt; ・ 5 min read
      &lt;div class="ltag__link__servicename"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aYMKNcyE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/medium_icon-fbdac08496f06c5bd53be920c7bc8d56d355b69c0fb7e49cac6357a70140af17.svg" alt="Medium Logo"&gt;
        codeburst.io
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
 and improved it with animejs.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Now, let's go!&lt;/p&gt;
&lt;h1&gt;
  
  
  &lt;strong&gt;Preparation&lt;/strong&gt;
&lt;/h1&gt;
&lt;h3&gt;
  
  
  What do you need to know to make this?
&lt;/h3&gt;

&lt;p&gt;You need HTML, CSS, JS (jQuery) skills.&lt;/p&gt;
&lt;h3&gt;
  
  
  Libraries
&lt;/h3&gt;

&lt;p&gt;To anime this pre-loader, you need to connect &lt;a href="https://animejs.com/"&gt;Anime.js&lt;/a&gt; in your project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CDN:
&lt;pre&gt;&lt;a href="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.0/anime.min.js"&gt;https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.0/anime.min.js&lt;/a&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Import:
&lt;pre&gt;import anime from 'anime';&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  &lt;strong&gt;Coding&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;This is the pre-loader which i did from the article listed above:&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/duboloms/embed/oNjxgaY?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Logic of pre-loader
&lt;/h3&gt;

&lt;p&gt;Now let's parse the code&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;HTML&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;In HTML all very very simple. I created primary block &lt;strong&gt;div.loader&lt;/strong&gt; inside which the block is located &lt;strong&gt;div.loader__container&lt;/strong&gt; which i maked for place text in center of loader (with help of css). In &lt;strong&gt;div.loader__container&lt;/strong&gt; located &lt;strong&gt;h1.loader_&lt;em&gt;container&lt;/em&gt;_counter&lt;/strong&gt;, he is empty, because here will be placed percent of page load with the help of JavaScript.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;CSS (Sass which i processed in css for beginners)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;To stretch pre-loader to the full screen, we will need property &lt;code&gt;position: fixed; top: 0; left: 0; width: 100%; height: 100%;&lt;/code&gt;. To place him above all elements, we'll need &lt;code&gt;z-index: 99;&lt;/code&gt;&lt;/p&gt;

&lt;pre class="css"&gt;
.loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #002155;
  z-index: 99;
}
&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;div.loader__container&lt;/strong&gt; as i said above necessary for centering elements with help of properties &lt;code&gt;display: flex; position: fixed; flex-direction: column; justify-content: center; align-items: center; width: 100%; height: 100%;&lt;/code&gt; and &lt;code&gt;z-index:100&lt;/code&gt; to place the text above the loader again, so that we can see it.&lt;/p&gt;

&lt;pre class="css"&gt;
.loader__container {
 display: flex
 position: fixed
 flex-direction: column
 justify-content: center
 align-items: center
 width: 100%
 height: 100%
 color: #fff
 z-index: 101
}
&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;div.loader__layer&lt;/strong&gt; is necessary for us to see as if the loader is filled (depending on the percentage of loading) with water or something else... generally just a cool effect! :) .&lt;br&gt;
I decided not to tell you about the text styles, because they are very simple. If anything, you can view the text styles in the example above (codepen pen).&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;JavaScript&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Let's start by creating variables with elements which we'll need:&lt;/p&gt;

&lt;pre class="javascript"&gt;
const loader = ".loader", 
      loaderCounter = $(".loader__container__counter"),
      loaderContainer = $(".loader__container"),
      loaderLayer = $(".loader__layer");
&lt;/pre&gt;

&lt;p&gt;const loader without jquery symbols $() because animejs not work with jquery and js (querySelector and getElementById...) selectors :(&lt;/p&gt;

&lt;p&gt;To make counter of pre-loader, need to create setInterval() function:&lt;/p&gt;

&lt;pre class="javascript"&gt;
 let counter = 0;
const loaderTimer = setInterval(function() {
  counter++;
  console.log(counter);
  if(counter == 100){
   clearInterval(loaderTimer);
  }
}, 35);
&lt;/pre&gt;

&lt;p&gt;This function return from 0 to 100 in browser console.&lt;br&gt;
If in your console the same, all good and you can move on.&lt;br&gt;
Now record counter const in &lt;strong&gt;h1.loader_&lt;em&gt;container&lt;/em&gt;_counter&lt;/strong&gt;. Therefore in HTML this tag is empty.&lt;br&gt;
Here is the code that does this:&lt;/p&gt;

&lt;pre class="javascript"&gt;
let counter = 0;
const loaderTimer = setInterval(function() {
  counter++;
  if(counter == 100){
   clearInterval(loaderTimer);
   loader.css({transform: "-100%"});
   loaderLayer.css({transform: "-100%"});
   loaderContainer.css({transform: "-100%"});
  }
  loaderCounter.html(counter + '%');
  loaderLayer.css({width: counter + "%"});
}, 35);
&lt;/pre&gt;

&lt;p&gt;Here I made an animation using the jQuery css() method.&lt;br&gt;
But i want to make more cool animation, therefore i used AnimeJS animation library.&lt;br&gt;
&lt;strong&gt;Here is the final JS code:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="highlight javascript"&gt;
const loader = ".loader",
      loaderCounter = $(".loader__container__counter"),
      loaderLayer = $(".loader__layer");

// Timer
let counter = 0;
const loaderTimer = setInterval(function() {
  counter++;
  const tl = anime.timeline();
  tl.add({
    targets: ".loader__layer",
    duration: 0,
    width: counter + "%"
  });
  if(counter == 100){
  clearInterval(loaderTimer);
    tl.add({
      targets: [".loader", ".loader__layer", ".loader__container"],
      duration: 700,
      visibility: "hidden",
      translateY: "-100%",
      easing: 'easeInExpo',
      delay: 300
    });
  }
  loaderCounter.html(counter + '%');
  // loaderLayer.css({width: counter + "%"});
}, 35);
&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Well at the end I would remind you again about that i took the idea from this medium post: &lt;div class="ltag__link"&gt;
  &lt;a href="https://codeburst.io/create-a-full-screen-website-pre-loader-in-a-jiffy-74e7aa99ac1b" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fyr1paPB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/fit/c/96/96/2%2AuCsd8FI_d-XTL4wzD515wg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fyr1paPB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/fit/c/96/96/2%2AuCsd8FI_d-XTL4wzD515wg.jpeg" alt="Vaibhav Khulbe"&gt;&lt;/a&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://codeburst.io/create-a-full-screen-website-pre-loader-in-a-jiffy-74e7aa99ac1b" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Create a full-screen website pre-loader in a jiffy - codeburst&lt;/h2&gt;
      &lt;h3&gt;Vaibhav Khulbe ・ &lt;time&gt;Sep 11, 2018&lt;/time&gt; ・ 5 min read
      &lt;div class="ltag__link__servicename"&gt;
        &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aYMKNcyE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/medium_icon-fbdac08496f06c5bd53be920c7bc8d56d355b69c0fb7e49cac6357a70140af17.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aYMKNcyE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/medium_icon-fbdac08496f06c5bd53be920c7bc8d56d355b69c0fb7e49cac6357a70140af17.svg" alt="Medium Logo"&gt;&lt;/a&gt;
        codeburst.io
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
 and improved it with animejs.&lt;/strong&gt;&lt;br&gt;
Here is my final example in Codepen:&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/duboloms/embed/oNjxgaY?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;br&gt;
Bye&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>javascript</category>
      <category>tutorial</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Anime.js and GSAP analogue v0.0.2a</title>
      <dc:creator>duboloms</dc:creator>
      <pubDate>Sun, 19 Apr 2020 20:28:46 +0000</pubDate>
      <link>https://dev.to/duboloms/anime-js-and-gsap-analogue-v0-0-2a-3bb7</link>
      <guid>https://dev.to/duboloms/anime-js-and-gsap-analogue-v0-0-2a-3bb7</guid>
      <description>&lt;p&gt;This is analogue of Anime.js and GSAP animation engines.
{Have not a name} v 0.0.2a.
Now all plugin parameters can be set in JSON format and it can display his version.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/duboloms/embed/yLNdeyv?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
    </item>
    <item>
      <title>Circle animation for transitions - #GSAP</title>
      <dc:creator>duboloms</dc:creator>
      <pubDate>Mon, 27 Jan 2020 15:15:47 +0000</pubDate>
      <link>https://dev.to/duboloms/circle-animation-for-transitions-gsap-1jek</link>
      <guid>https://dev.to/duboloms/circle-animation-for-transitions-gsap-1jek</guid>
      <description>&lt;p&gt;Circle animation for transitions.&lt;br&gt;
This is Gsap animation and i work about it for 4 hours.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/duboloms/embed/yLyrexj?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>codepen</category>
      <category>gsap</category>
    </item>
  </channel>
</rss>
