您的位置:首页> 日志> 前端技术 正文
DTOP

CSS动画实用技巧-CSS3 Hover

NoyaHua | 2019年09月30日 |

>>收藏本文 已有 0条评论

首先我们来看一下实现的效果,纯CSS3实现的鼠标指上动效如下图:

css样式代码如下:  

  1. <style type="text/css">
  2. .demo,.img,.border,.mask{
  3. width: 300px;
  4. height: 300px;
    }
  5. .demo{
  6. display: block;
  7. position: relative;
  8. margin:50px auto;
    }
  9. .img{
  10. background-repeat: no-repeat;
  11. background-size: cover;
  12. background-position: center center;
  13. border-radius: 50%;
    }
  14. .border{
  15. position: absolute;
  16. border: 10px solid #E07514;
  17. border-left-color:#4f4705;
  18. border-top-color:#4f4705;
  19. top: 0;
  20. left: 0;
  21. border-radius: 50%;
  22. -webkit-transition:all .5s ease-in;
  23. transition:all .5s ease-in;
  24. -webkit-box-sizing:border-box;
  25. box-sizing:border-box;
    }
  26. .mask{
  27. position: absolute;
  28. top: 0;
  29. left: 0;
  30. border-radius: 50%;
  31. -webkit-transition:all .5s ease-in;
  32. transition:all .5s ease-in;
  33. color:rgba(255,255,255,0);
  34. }
  35. .demo:hover .mask{
  36. background-color:rgba(0,0,0,0.5);
  37. color:rgba(255,255,255,1);
  38. }
  39. .demo:hover .border{
  40. -webkit-transform:rotate(180deg);
  41. transform:rotate(180deg);
    }
  42. .info{
  43. position: absolute;
  44. width: 100%;
  45. top: 50%;
  46. left: 0;
  47. text-align: center;
  48. -webkit-transform:translateY(-50%);
    }
  49. </style>
     

HTML代码结构如下:

  1.  
  2. <a href="#" class="demo">
  3. <div class="img" style="background-image:url(bg.png)"></div>
  4. <div class="mask">
  5. <div class="info">
  6. <h3>BEATIFUL DAY</h3>
  7. <p>Description goes here</p>
  8. </div>
  9. </div>
  10. <div class="border"></div>
  11. </a>
  12.  

这个效果用到的知识点:
1、 css定位概况(对边框蒙层定位)
2、 通过rgba(红、绿、蓝、透明的)设置颜色
3、 CSS3动画,2D或3D转换 :transform
4、 CSS3动画平滑过渡:transition
小知识点解析:
(1)首页这里我们会用到把文字简介部分info左右垂直居中,左右居中text-align: center;而垂直居中可以通过绝对定位top:50%,或是margin-top:50%;然后再用transform:translateY(-50%)(元素自身上浮50%)

(2)关于border样式的设置,box-sizing:border-box;就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。