javascript - 蘑菇街线性渐变的动画如何实现
天蓬老师
天蓬老师 2017-04-11 09:50:57
[JavaScript讨论组]

最近在模仿蘑菇街做练习
这种线性渐变的动画如何实现啊?用过keyframe,transition,都很生硬,也许是我用的不对?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
怪我咯
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css3渐变动画</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .hover{
            position: relative;
            display: block;
            float: left;
            margin-right: 20px;
            width: 200px;
            height: 120px;
            z-index: 1;
        }
        .hover:after{
            position: absolute;
            display: block;
            content: '';
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
            -webkit-transition: opacity 0.5s ease-out;
            -moz-transition: opacity 0.5s ease-out;
            -ms-transition: opacity 0.5s ease-out;
            transition: opacity 0.5s ease-out;
            opacity: 0;
            z-index: 2;
        }
        .hover:hover:after{
            opacity: 1;
        }
        .hover-a{
            background: #00dafe\9;
            background: -webkit-linear-gradient(left, #00dafe, #3381ff);
            background: -moz-linear-gradient(left, #00dafe, #3381ff);
            background: -ms-linear-gradient(left, #00dafe, #3381ff);
            background: linear-gradient(left, #00dafe, #3381ff);
        }
        .hover-a:after{
            background: -webkit-linear-gradient(right, #00dafe, #3381ff);
            background: -moz-linear-gradient(right, #00dafe, #3381ff);
            background: -ms-linear-gradient(right, #00dafe, #3381ff);
            background: linear-gradient(right, #00dafe, #3381ff);
        }
        .hover-b{
            background: #ea73ff\9;
            background: -webkit-linear-gradient(left, #ea73ff, #a34eff);
            background: -moz-linear-gradient(left, #ea73ff, #a34eff);
            background: -ms-linear-gradient(left, #ea73ff, #a34eff);
            background: linear-gradient(left, #ea73ff, #a34eff);
        }
        .hover-b:after{
            background: -webkit-linear-gradient(right, #ea73ff, #a34eff);
            background: -moz-linear-gradient(right, #ea73ff, #a34eff);
            background: -ms-linear-gradient(right, #ea73ff, #a34eff);
            background: linear-gradient(right, #ea73ff, #a34eff);
        }
    </style>
</head>
<body>
<a href="" class="hover hover-a"></a>
<a href="" class="hover hover-b"></a>
</body>
</html>
天蓬老师

这里有两个背景

a标签上的背景,也就是默认效果,a:after的背景默认opacity为0

当a标签hover后 a:after的背景从opacity为0 过度到 opacity为1

transition:opacity 0.5s ease-out
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号