HTML5+CSS3小实例:抽屉式分享按钮切换效果

HTML5+CSS3做一个抽屉式分享按钮切换效果,这个案例属于代码简单,效果惊艳,上手容易系列,主要用到的是 transition ,还有,字体图标用到的依然是 font-awesome。

效果:

源码:

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">

    <title>分享按钮切换效果</title>
    <!-- <link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> -->
    <!-- 为了防止线上字体图标库有时用不了,建议下载到本地,再引入使用 -->
    <link rel="stylesheet" href="/fonts/css/font-awesome.css">
    <link rel="stylesheet" href="../css/22.css">
</head>

<body>
    <div class="share-button">
        <span><i class="fa fa-share-alt" aria-hidden="true"></i> 去分享</span>
        <a href="#"><i class="fa fa-qq" aria-hidden="true"></i></a>
        <a href="#"><i class="fa fa-weixin" aria-hidden="true"></i></a>
        <a href="#"><i class="fa fa-weibo" aria-hidden="true"></i></a>
        <a href="#"><i class="fa fa-renren" aria-hidden="true"></i></a>
    </div>
</body>

</html>
body{
    /* 取消页面内外边距 */
    margin: 0;
    padding: 0;
    /* 100%窗口高度 */
    height: 100vh;
    /* 渐变背景 */
    background: linear-gradient(200deg,#f3e7e9,#e3eeff);
    /* 弹性布局 水平、垂直居中 */
    display: flex;
    justify-content: center;
    align-items: center;
}
.share-button{
    width: 300px;
    height: 80px;
    background-color: #fff;
    border-radius: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    /* 动画过渡 */
    transition: 0.3s linear;
}
.share-button:hover{
    /* 放大1.1倍 */
    transform: scale(1.1);
}
.share-button span{
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #333;
    color: #fff;
    font-size: 18px;
    text-align: center;
    line-height: 80px;
    border-radius: 40px;
    z-index: 1;
    transition: 0.6s linear;
}
.share-button:hover span{
    /* 沿X轴移动 */
    transform: translateX(-100%);
    /* 动画延迟 */
    transition-delay: 0.3s;
}
.share-button a{
    flex: 1;
    font-size: 26px;
    color: #333;
    text-align: center;
    transform: translateX(-100%);
    /* 透明度 */
    opacity: 0;
    transition: 0.3s linear;
}
.share-button:hover a{
    opacity: 1;
    transform: translateX(0);
}
/* 为每一个a元素分别设置动画延迟 */
/* :nth-of-type(n)选择器是匹配属于父元素的特定类型的第n个子元素的每个元素 */
.share-button a:nth-of-type(1){
    transition-delay: 1s;
}
.share-button a:nth-of-type(2){
    transition-delay: 0.8s;
}
.share-button a:nth-of-type(3){
    transition-delay: 0.6s;
}
.share-button a:nth-of-type(4){
    transition-delay: 0.4s;
}

猜你喜欢

转载自juejin.im/post/7098659547270610958
今日推荐