悬停在li上时如何只用左侧滑动图像

时间:2018-09-17 05:01:33

标签: html css css3

->当我在li上悬停时,我想悬停效果,而不是在图像内部平滑滑动。

ul.blog-grid { width: 100%; margin: 10% -15px 0; background-color: #f5f5f5; padding: 50px; display: inline-block; }
ul.blog-grid li { display: inline-block; width: 25%; float: left; padding: 0 15px; overflow: hidden; }
ul.blog-grid li:hover img { margin-left: 50px; }
img { max-width: 100%; }
.blog-image { overflow: hidden; }
<ul class="blog-grid">
  <li class="grid-item">
    <div class="blog-image">
      <img src="images/blog-img.jpg" alt="">
    </div>
  </li>
  <li class="grid-item">
    <div class="blog-image">
      <img src="images/blog-img.jpg" alt="">
    </div>
  </li>            
</ul>
enter image description here

1 个答案:

答案 0 :(得分:2)

您需要将图片大小设置得大一点,并且易于使用transform: translate3d CSS属性来管理位置。

ul.blog-grid {
  width: 100%;
  margin: 10% -15px 0;
  background-color: #f5f5f5;
  padding: 50px;
  display: inline-block;
}

ul.blog-grid li {
  display: inline-block;
  width: 25%;
  float: left;
  padding: 0 15px;
  overflow: hidden;
}

.blog-image {
  overflow: hidden;
  float: left;
  position: relative;
  cursor: default;
}

ul.blog-grid li img {
  max-width: 100%;
  max-width: none;
  width: calc(100% + 20px);
  width: -moz-calc(100% + 20px);
  width: -ms-calc(100% + 20px);
  -webkit-transition: opacity .35s, -webkit-transform .35s;
  transition: opacity .35s, transform .35s;
  -webkit-transform: translate3d(-10px, 0, 0);
  transform: translate3d(-10px, 0, 0);
  -moz-transform: translate3d(-10px, 0, 0);
  -ms-transform: translate3d(-10px, 0, 0);      
  -webkit-backface-visibility: hidden;
  -moz--webkit-backface-visibility: hidden;
  -ms--webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

ul.blog-grid li:hover img {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
<ul class="blog-grid">
  <li class="grid-item">
    <div class="blog-image">
      <img src="https://via.placeholder.com/350x250" alt="">
    </div>
  </li>
  <li class="grid-item">
    <div class="blog-image">
      <img src="https://via.placeholder.com/350x250" alt="">
    </div>
  </li>
</ul>