视图平滑动画(菜单栏 “三” 变形为“X”css3过渡动画)
类别:Web前端 浏览量:1833
时间:2022-01-22 01:53:32 视图平滑动画
菜单栏 “三” 变形为“X”css3过渡动画最近要模仿一个页面,其中有一个效果就是 三 菜单栏 变形为 X 的效果,
效果如下:
图(1)初始效果
图(2)鼠标悬浮效果
思路:
三横的实现:传统可以用3个span标签来实现,但有一个更加巧妙的方法,1个标签就能实现三横效果,根据张鑫旭大神分享的利用padding用一个标签实现 三 的效果,大概原理是上中下横线分别用 border-top,背景,border-bottom。用background-clip:content-box剪裁,最后用padding上下撑开,实现三横的视觉效果,
X的实现:而变形的X也不需要额外的标签,利用其自身after before伪类 transform旋转,偏移实现。需要耐心的调整角度。
要注意的是,用padding撑开实现三横效果,触发不太灵敏,最好用一个标签包裹着icon标签,在包裹层做:hover触发
下面是代码
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> <style type="text/css"> .icon{ width: 50px; height: 10px; padding: 10px 0; border-top: 10px solid #000; border-bottom: 10px solid #000; background: #000; background-clip: content-box; } .fa{ cursor: pointer; width: 50px; height: 50px; transition: .3s ease; } .fa:hover>.icon{ border: 0; background: none; } .icon:before,.icon:after{ position: absolute; content: ""; width: 60px; height: 60px; transition: .3s ease; -webkit-transition: .3s ease; opacity: 0; } .icon:before{ top: -5px; border-bottom: 10px solid #000; } .icon:after{ top: 15px; border-top: 10px solid #000; } .fa:hover>.icon:before{ opacity: 1; transform: rotate(135deg) translateX(5px) translateY(-25px); -webkit-transform: rotate(135deg) translateX(5px) translateY(-25px); } .fa:hover>.icon:after{ opacity: 1; transform: rotate(-135deg) translateX(20px) translateY(39px); -webkit-transform: rotate(-135deg) translateX(20px) translateY(39px); } </style> </head> <body> <li class="fa"> <li class="icon"></li> </li> <script type="text/javascript"> </script> </body> </html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持开心学习网!
您可能感兴趣
- css3过渡动画制作(CSS3中动画属性transform、transition和animation属性的区别)
- 视图平滑动画(菜单栏 “三” 变形为“X”css3过渡动画)
- css3中过渡动画的属性(css3 中实现炫酷的loading效果)
- css实现动画的方法(CSS实现悬停过渡动画三部曲)
- 关于队徽 你了解这些么 二(关于队徽你了解这些么)
- 冬天来了手脚冰凉 真不是因为上辈子你是折翼的天使(冬天来了手脚冰凉)
- 0 1 岁婴儿最强作息指南,照着做养出天使宝宝(01岁婴儿最强作息指南)
- 沪上这16所高校 萌新 礼包开箱 哪一款让你心动(沪上这16所高校萌新)
- 她救了被绑架的他,而这一切竟是一场阴谋...(她救了被绑架的他)
- 冬季养殖这6种阴生植物,方便又好养,你家有么(冬季养殖这6种阴生植物)
热门推荐
- jQuery实现tab切换
- python虚拟环境和包使用教程(在win10和linux上分别安装Python虚拟环境的方法步骤)
- python 装饰器模式(python重试装饰器的简单实现方法)
- 非关系型数据库和关系型数据库(关系型数据库与非关系型数据库简介)
- react怎样实现响应式计算属性(深入浅析React中diff算法)
- php中最常用的标记符(php中目录操作opendir、readdir及scandir用法示例)
- margin z-index怎么使用(margin 负值引起的层级z-index问题)
- 云服务器的使用技术(云服务器运行如何实现的原理)
- VPS跟云服务器的区别是什么?(VPS跟云服务器的区别是什么?)
- vs中目标平台x86,x64,any cpu的区别