Android三横变叉动画,菜单栏 “三” 变形为“X”css3过渡动画

最近要模仿一个页面,其中有一个效果就是 三 菜单栏 变形为 X 的效果,

效果如下:

11bcdddbac434354fba0fa2269307fd8.png

图(1)初始效果

42aecd618cc1577ad61a53b4fdb42a2c.png

图(2)鼠标悬浮效果

思路:

三横的实现:传统可以用3个span标签来实现,但有一个更加巧妙的方法,1个标签就能实现三横效果,根据张鑫旭大神分享的利用padding用一个标签实现 三 的效果,大概原理是上中下横线分别用 border-top,背景,border-bottom。用background-clip:content-box剪裁,最后用padding上下撑开,实现三横的视觉效果,

X的实现:而变形的X也不需要额外的标签,利用其自身after before伪类 transform旋转,偏移实现。需要耐心的调整角度。

要注意的是,用padding撑开实现三横效果,触发不太灵敏,最好用一个标签包裹着icon标签,在包裹层做:hover触发

下面是代码

Document

.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);

}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值