这种交互动画如何写?

图片描述

如图 一个菜单按钮 我想写一个交互动画
1.鼠标悬停 外层画出圆圈
2.鼠标移出 圆圈缩短至消失。
本人菜鸟 望各位大神不吝赐教 谢谢

自答一发:

<div class="menubut">
    <span class="iconfont font-menu"></span>
    <svg class="round">
        <circle cx="25" cy="25" r="23" stroke="#fff" stroke-width="3" fill="none"/>
    </svg>
</div>
.menubut{
    position: relative;
}
.menubut .font-menu{
    position: absolute;top: 10px;left: 10px;z-index: 2;display: block;width: 45px;line-height: 45px;text-align: center;font-size: 32px;
}
.menubut .font-menu:before{
    content: '\e605';color: #fff;cursor: pointer;
}
.menubut .round{
    position: absolute;top: 8px;left: 8px;z-index: 1;width: 50px;height: 50px;transform: rotate(-90deg);cursor: none;
}
.menubut .round circle{
    stroke-dasharray: 150;stroke-dashoffset: 150;stroke-linecap: round;transition: stroke-dashoffset .8s ease-out;
}
.menubut .font-menu:hover+.round circle{
    stroke-dashoffset: 0;
}

菜单按钮用字体图标 圈圈用svg 但是:两者的位置,圈圈的大小需要不断调节各项参数使之协调,感觉不太好。
想了解各位前辈在实际工作中会怎样写这种交互动画?

阅读 2.2k
2 个回答

html

<div class="circle"> 
<div class="pie_left">
<div class="left"></div>
</div> 
<div class="pie_right">
<div class="right"></div>
</div> 
<div class="mask"><span>=</span></div>
</div>

css

.circle { width: 200px; height: 200px; position: absolute; border-radius: 50%; background: #0cc; } 
.pie_left, .pie_right { width: 200px; height: 200px; position: absolute; top: 0;left: 0; } 
.left, .right { display: block; width:200px; height:200px;border-radius: 50%; position: absolute; top: 0; left: 0; transform: rotate(30deg); }           
.pie_right, .right { clip:rect(0,auto,auto,100px); }
.pie_left, .left { clip:rect(0,100px,auto,0); } 
.mask { width: 150px; height: 150px; border-radius: 50%; left: 25px; top: 25px; background: #FFF; position: absolute; text-align: center; line-height: 150px; font-size: 16px; }

动画用js写一下就好。

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