рдПрдирд┐рдореЗрдЯреЗрдб рдкреНрд░реЛрдЯреАрди рдПрдВрдХрд░ рд▓рд┐рдВрдХ

HTML рдореЗрдВ рдмрдбрд╝реА рдЫрд╡рд┐

рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА рдХрд┐ рдПрдиреАрдореЗрд╢рди рдХреЗ рд╡реЙрд▓реНрдпреВрдо рддрддреНрд╡реЛрдВ рдХреЛ рд╡реЗрдм рдкреЗрдЬ рд╕реЗ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП, рдФрд░ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдирд╣реАрдВ рддреЛрдбрд╝рд╛ рдЬрд╛рдПред


рдпрджрд┐ рдЖрдк рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ Google рдкреЗрдЬ рд╕реНрдкреАрдб рдХреЗ рдкреНрд░рджрд░реНрд╢рди рд╕реЗ рдмрд╣реБрдд рдЪрд┐рдВрддрд┐рдд рд╣реИрдВ, рдФрд░ рдпрд╣ рд╣рд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдЬрд▓рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдирд╛ рдЬрд╛рд░реА рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред


рдЬреЛ рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рд╕реЗ рдбрд░рддреЗ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЬреЛрдЦрд┐рдо рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдореИрдВ рдХрдЯреМрддреА рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВ;)


рд╡реНрдпрд╛рдкрд╛рд░ рдЪреБрдиреМрддреА


, .
, . .


, , :


  1. тАФ gif . , тАж ?!


    , , , , (gif 256 ), 19, .

  2. , . APNG. png , IE11 . , (17) . . gif, .

  3. , !?
    , mp4 . , , , .

    mp4 , , , .

    , .
    , video.

    .

    <video class="bl_video" loop="" muted="" autoplay="" poster="poster.jpg">
      <source src="topbanner.webm" type="video/webm">
      <source src="topbanner.mp4" type="video/mp4; codecs="avc1.42E01E, mp4a.40.2"">
    </video> 
    

  4. , . :
    animation-timing-function: steps(тАж)
    , , .;

тАФ ( . ┬лsequence┬╗ (, )), - тАУ . , , .


, , .




, ( ).


тАУ , , gulp

gulp.spritesmith

, Toptal, Chris Coyier .


. padding- 0, тАЬChoose filesтАЭ .

! ;
! .

, .


рд╕реАрдПрд╕рдПрд╕ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЬрдирд░реЗрдЯрд░

, , , . ( - , , ).


, .
> 5, .


png . (7,92)
, . ( TinyPNG Squoosh)


, gulp-imagemin тАУ
┬л , .┬╗


, , , .


, , . , , 25-40 .


1.2 , .


, , , - . CSS , . .


.toContactForm_leprechaun {
    width: 220px;
    height: 290px;
    box-sizing: border-box;
    background: url(../image/leprechaun-sprite.png) 0 50%;
    animation: play 3276ms steps(91) infinite;
}
@keyframes play {
    to {
        background-position: -20020px;
     }
}

, , .


1) width height (, width height).


2) тАФ Y.


3) . , .
* .
steps .
, , 30 тАУ 45 .


4) .

= (-1px)* *width .
* , . .


. .



, . , 100, .


body , DOM , .


, .


*
, , Performance Google Lighthouse 80 20 .
5G , Neuralink - .


, 91 73. (5,17), , , Squoosh ( - <16300px)


, IE , Safari, ?
. webP
( 2,47 Squoosh , 1,67, , );


* window.navigator.userAgent, png , , .


, , .


рдмреЗрд╢рдХ, рдпрд╣ рддрддреНрд╡ рдкреНрд░рдХреГрддрд┐ рдореЗрдВ рд╕рдЬрд╛рд╡рдЯреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЕрдВрдд рдХреЗ рдХрд░реАрдм рд░рдЦрддреЗ рд╣реИрдВред рдореИрдВ рдПрдХ рдмрдбрд╝реА рдЫрд╡рд┐ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рднрд╛рд╡ рднреА рдирд╣реАрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ред



рдЗрд╕ рдкреНрд░рднрд╛рд╡ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд░реИрдкрд░ рдмреНрд▓реЙрдХ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░реЗрдВ: рдХреЛрдИ рдирд╣реАрдВ; рдФрд░ рдХреЗрд╡рд▓ рдЬрдм рдЫрд╡рд┐ рд▓реЛрдб рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдЦрд╛рдПрдВред рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред


рдПрдЪрдЯреАрдПрдордПрд▓
<div class="wrapper">
  <div class="myAnimation"></div>
  <p> !</p>
</div>

рд╕реАрдПрд╕рдПрд╕
body {
  margin: 0;
}

.wrapper {
  display: none;
  padding: 10px;
  border: 1px solid #000;
}

.wrapper.active {
  display: block;
}

.myAnimation {
  display: inline-block;
  width: 247px;
  height: 187px;
  background: url("https://gyazo.com/f5d013014306342a2241f8d3b8fb11ea.png") 50% 50% no-repeat;
}

p {
  display: inline-block;
  width: 150px;
  vertical-align: top;
}

рдЬреЗ рдПрд╕
awaitBgImgLoad();
function awaitBgImgLoad() {
  var div = document.querySelector('.myAnimation');
  var src = window.getComputedStyle(div).backgroundImage;
  console.log(src); //     `url("src")` тАФ    
  
  src = src.replace(/url\(|\)|"/g,"")
  loadAndRun(src, onload);
  
  /***/
  
  function onload() {
    console.log(" !");
    document.querySelector('.wrapper').style.display = "block";
  }
}

/*****/

function loadAndRun(src, resolve, reject) {
  var img = new Image();
  img.onload = resolve;
  img.onerror = reject || function(){
    console.log("  " + src)
  };
  img.src = src;
}

( , ), тА╣headтА║


<link rel="preload" href=" bigAnimationImg.webP" as="image" />


JS, :


<img class="animation-image" width="220" height="290" src="bigAnimationImg.webP" loading="eager" alt="animation"/>

.animation-image{
position:absolute;
top:0;
left:calc(-100%+1px);
}


рдХрд╣реАрдВ рд▓рдВрдЧрд░ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рдордиреЗ, рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪрддрд░ред

, тАЬтАЭ src, background-image . ( img , background-image)
* , , .


Netgame Entertainment .


рд▓реЛрдЧреЛ рдиреЗрдЯрдЧреЗрдо рдПрдВрдЯрд░рдЯреЗрдирдореЗрдВрдЯ


Netgame Entertainment , .

OPTIMUS PRIME .



web .

All Articles