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>
阅读 9.6k
3 个回答

你是想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(http://www.w3school.com.cn/i/site_photoref.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(http://www.w3school.com.cn/i/site_photoqe.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;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏