css - Transforming image "vibrating" horribly in Firefox. Why? -


this related question asked didn't find source of problem until now.

what want circle expands rectangle. scales .9 1.

what have http://codepen.io/stuffiestephie/full/zrzweq/ i've slowed down animation "vibration" clearer.

    #seasonone .test {     padding:0;         background-color: #fff;     background: #fff url('http://i296.photobucket.com/albums/mm174/stuffiestephie/s1chibipreview2_zpsswyamase.png') 50% 50% no-repeat; width: 200px; height: 200px;     border-radius: 50%;     display: block;         margin: 0 auto;     -webkit-transition: 2s;             -moz-transition: 2s;             transition: 2s;     -webkit-transform: scale(.9);         -ms-transform: scale(.9);         -moz-transform: scale(.9);             transform: scale(.9);     font-size: 0;     -webkit-transform-origin: 50% 50%;     -moz-transform-origin: 50% 50%;         -ms-transform-origin: 50% 50%;             transform-origin: 50% 50%;  }  #seasonone:hover .test { -webkit-transform: scale(1);     -ms-transform: scale(1);      -moz-transform: scale(1);         transform: scale(1);     width: 250px;     height: 200px;      border-radius: 0; } 

it vibrates origin

why shaking , in firefox? adding vendor prefixes not help...

firstly, cause pretty background image. browsers stutter bit when they're trying animate both size , position in 2 directions, it's firefox dropping least amount of frames (shots fired?). it's hard animate smoothly without knowing that's you're animating (reason js libraries gsap great are). thus, want either a) 1 @ time or b) "fake" animating size on image itself, , push rest of animation onto frame around image.

because image centered, can totally b:

.season img {    float: left;    max-width: 500px;    width: 100%;    animation-delay:0.1s;   }    .season p.onep {    animation-delay:0.5s;   }    .season p.twop {    animation-delay:0.75s;   }  .season p.threep {    animation-delay:1s;   }  .season h2 {    border-radius: 10px 10px 0 0;    background-color: #eee;    padding: 3px;    margin-top: 0;    overflow-x: hidden;  }  .season .smalltext {    animation-delay:0.2s;     overflow: hidden;  }  .season h6, .season .arts, .season h3 {    text-align: center !important;    animation-delay: 1.8s;  }  .next, .prev {    float: right;    box-sizing: border-box;    width: 49%;    animation-delay: 3s;    border: 3px solid #eee;    border-radius: 15px;  }  .prev {    float: left;  }  .prev img.preview, .next img.preview {    float: left;  }  .previews {    display: -webkit-flex; /* safari */    -webkit-justify-content: space-around; /* safari 6.1+ */    display: flex;    justify-content: space-around;    flex-wrap: wrap;  }  .card{    color: #ff2772;    border-radius: 15px;    margin: 3px 1px;    background-color: #2d3034;    box-sizing: border-box;    width: 300px;    min-height: 400px;    display: inline-block;    transition: .25s;    cursor:pointer;    border: 1px solid #ff2772;    text-align: center;  }  .floatright {    float: right;    margin-right: 10px;    }  #page-content .card h6 {    padding: 10px 2px;    background: none;    border-radius: 10px 10px 0 0;    transition: .3s;      border-bottom: 1px solid #fff;  }      #page-content .card .smalltext {    transition: .3s;    background: none;    border-bottom: 1px solid #fff;    border-top: 1px solid #fff;  }    #page-content .card:hover .smalltext, #page-content .card:hover h6{    background-color: #ff2772;    color: #2d3034;  }  .card:hover{    background: #fff;  }    /*  .card img {  width: 200px;  text-align: center;  border-radius: 100%;  background: #fff;  margin: 0 auto;  display: block;  transform: scale(.9);  transition: .2s ease-in-out;  }  /*.card .test {  transform: scale(.9);  width: 200px;  height: 200px;  overflow-x: hidden;  display: block;  margin: 0 auto;  }  */          .imgwrapper {    position:relative;    width:100%;    height:200px;    margin:0;    padding:0;    overflow:hidden;  }  #seasonone .test {    padding:0;    background-color:rgba(0,0,0,0);    width: 200px;    height: 200px;    border-radius: 50%;    border-style:solid;    border-color: #2d3034;    border-width:80px;    display: block;    transition:all 2s, border-color 0.25s;    transform: scale(.9);    font-size: 0;      position:absolute;    z-index: 1;    top:-80px;    left:-30px;  }  #seasonone .img{    background: #fff url('http://i296.photobucket.com/albums/mm174/stuffiestephie/s1chibipreview2_zpsswyamase.png') 50% 50% no-repeat;    /*was gonna make datauri, that's 112kb. heh.*/    width:250px;    height:200px;    transition: 2s;    transform: scale(.9);    position:absolute;    left:25px;  }    #seasonone:hover .test {    width: 250px;    height: 200px;    transform: scale(1);    border-radius: 0;    border-color:#fff;    left:-55px;  }  #seasonone:hover .img{    transform: scale(1);  }        .card:hover img{    transform: scale(1);    border-radius: 0;  }      hr {    margin: 0;    padding: 0;  }  img.preview {    transform: scale(.9);    width: 200px;    display: inline;    float: none;    border-radius: 10px;    transition: .2s ease-in-out;    box-shadow: 0 1px 1px rgba(0,0,0,0.3);    border-radius: 10px;    line-height: 0;    font-size: 0;  }  .art img.preview:nth-child(1) {    animation-delay: 2s;  }  .art img.preview:nth-child(2) {    animation-delay: 2.25s;  }    .logo{    clear:left;    padding-bottom: 10px;  }  img.preview:hover {    transform: scale(1);    box-shadow: 0 15px 15px rgba(0,0,0,0.3);    border-radius: 0;  }  .season img.no-float {    float: none;  }  @media screen , (max-width: 1200px) {    .season h6 {      clear: both;    }  }  @media screen , (max-width: 800px) {	    .prev img.preview, .next img.preview {      float: left;    }      .season p {      clear: both;    }    .prev p, .next p {      clear: none;    }    .season img{      float: none;      margin: 0 auto;      text-align: center;    }  }  @media screen , (max-width: 750px) {	    .card {      /*width: 49%;/*for part work, you'll have more rules       *, otherwise you'll off-center image.*/      box-sizing: border-box;    }  }  @media screen , (max-width: 600px) {      .prev, .next{      width: 100%;      float: none;      margin: 5px auto;    }    .prev img.preview, .next img.preview {    }  }  @media screen , (max-width: 399px) {    .card{      width: 100%;    }  }
<!doctype html>  <html>      <head>          <!-- meta -->          <meta charset="utf-8">          <meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1">          <meta name="viewport" content="initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,width=device-width,user-scalable=no" />          <!-- styles -->          <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.css">          <link rel="stylesheet" href="http://cdn.jsdelivr.net/animatecss/2.1.0/animate.min.css">          <!-- magnific popup core css file -->          <link href='http://fonts.googleapis.com/css?family=quicksand:700|montserrat:700|open+sans|sniglet:400,800' rel='stylesheet' type='text/css'>          <link rel="stylesheet" href="http://kamicon.net/assets/styles/mainstyles.css">          <link rel="stylesheet"           <!--[if lt ie 9]><script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->      </head>      <body>          <div id="site-canvas">              <div id="page-content">                  <section>                      <h1>help me!</h1>                      <p>the art shakes horribly when hover on in firefox why!?</p>                      <div id="area" class="holder"></div>                      <div class="previews">                          <div id="seasonone" class="card seasonone">                              <h6 class="center">season 1 (2009) - pilot</h6>                              <div class="imgwrapper">                                  <div class="img"></div>                                  <div class="test"></div>                                  <div class="wrapper2"></div>                              </div>                              <p class="animated smalltext fadeinright onep">ut cursus purus in lacinia tincidunt. quisque lorem odio, posuere ut aliquam vel, fringilla @ enim. duis ligula lacus, viverra et sapien rhoncus, commodo euismod ipsum.</p>                              <a href="#area" class="button">read more</a>                          </div>                      </div>                      <hr/>                  </section>              </div>              <!-- #page-content -->          </div>          <!-- #site-canvas -->          <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>      </body>  </html>

alternatively on codepen.

i separated frame (.test still) , image (.img), contained both in wrapper (.imgwrapper).

the wrapper handles footprint in page layout.

the frame has border-color animated specially background of card, positioned (and border-width'd) hackishly.... take @ how did , you'll see mean. heh.

the picture has fixed width , position, animating scale (hence, no longer stuttering).

i'm 90% sure there's better way this, because had absolute-position image (so position wouldn't twitch while frame's did) couldn't keep image-div child of frame-div.

also, i'm surprised it's awkward generate square rounded inner corners. made thick circle , said "only show square of it".

edit note: resizing @media width below 750px caused offcenter. disabling "fixed" it. noticed when moved fixed code here, heh.


Comments

Popular posts from this blog

how to insert data php javascript mysql with multiple array session 2 -

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -