H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【CSS】css怎么解决hover鼠标移除后的效果

想要实现背景图片鼠标移入左右翻变换背景图的动效,但是移出的时候想要去除掉翻转,直接把背景图片换回来,捣鼓了许多都不知道这么弄,就大神临摹求解。。。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>3D</title>
  <style>
   ul li{
    list-style: none;
    cursor: pointer;
    position: relative;
  }
  .flipBtn,  .flipBtn_face{
    position: absolute;
    width:167px;
    height:116px;
  }
  .flipBtn {    
    transition: transform 0.4s;  
    transform-style: preserve-3d;  
    cursor: pointer;
    position: relative;
    float: left;
  }
  .flipBtn_front{
    backface-visibility: hidden;
  }
  .flipBtn_front{
    width:151px;
    height:100px;
    margin:8px;
    background:url(./image/pic00.jpg) no-repeat;
  }
  .flipBtn_back{
    width:151px;
    height:100px;
    margin:8px;
    background:url(./image/pic01.jpg) no-repeat;

  }
  .flipBtn_mid.flipBtn_face{
    transform: rotateY(90deg);
    -webkit-transform: rotateY(90deg);
    -moz-transform: rotateY(90deg);
  }
  .flipBtn:hover{
    transform:rotateY(-180deg);
    -webkit-transform: rotateY(-180deg);
    -moz-transform: rotateY(-180deg);
  }
  </style>
</head>
<body>
  <ul class="flipBtnWrapper">
    <li class="flipBtn">
      <a class="flipBtn_face flipBtn_back"></a>
      <div class="flipBtn_face flipBtn_mid"></div>
      <div class="flipBtn_face flipBtn_front"></div>
    </li>
  </ul>
</body>
</html>

回答:

你是想hover的时候有反转的效果,而移开时直接变换没有反转?那你把transition这个属性放在hover里就行了

回答:

效果预览:http://codepen.io/zengkan0703…
这是我实现的代码,不知道是不是你想要的效果:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    .box{
      width: 200px;
      height: 200px;
      background:url(/wp-content/uploads/aaacj/20210523bba/4251185820.jpg) no-repeat;
      transition: transform 0.5s linear ,background-image 0s 0.25s;
      background-size: cover;
    }
    .box:hover{
      transform: rotateY(180deg);
      transform-origin: center;
      background-image: url(/wp-content/uploads/aaacj/20210523bba/4252185820.jpg);

    }
  </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

实现原理其实很简单,主要是用 css3 的过渡 transition。动画分为两步:

  1. 元素翻转 180 度

  2. 在翻转到 90 度的 时候,更换背景图片的 url。

这里面需要注意的是,翻转动画的过渡时间曲线应该用 “linear”,这样才能保证这个动画是均匀进行的,就能够控制好翻转 90 度的时机。

回答:

把transition写在.flipBtn:hover{}里面 在.flipBtn{}加上transition:none;

本文地址:H5W3 » 【CSS】css怎么解决hover鼠标移除后的效果

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址