2019-01-24巧用shadow做底部阴影

先来看一下效果

shadow.gif

效果的实现依靠巧妙利用css属性shadow。
这里讲一下shadow的具体属性:

box-shadow: h-shadow v-shadow blur spread color inset;

h-shadow:必填项,表示水平(即X轴)阴影的位置。正值使阴影出现在元素的右边,负值出现在元素的左边。

v-shadow:必填项,表示垂直(即Y轴)阴影的位置。正值使阴影出现在元素的下边,负值出现在元素的上边。

blur: 可选,表示模糊距离。模糊数值越大,尖锐度越小,阴影越朦胧和模糊。负值是不被允许的,并会被处理成0。

spread :可选,表示阴影的尺寸。可以理解为从元素到阴影的距离。正值会让阴影向各个方向按照指定的数值延伸。负值会让阴影收缩得比元素本身尺寸更小。

color :可选,表示阴影的颜色。这个不需要我多说了吧,想必大家都会。

inset:可选。将外部阴影 (outset) 改为内部阴影。默认为outset

利用阴影显示向上浮动效果。

原理就是在元素下边增加一个阴影,鼠标移上去的时候让阴影缩小,并让元素往上移!
具体的代码:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style type="text/css">

        .shadow{
            position: relative;
            width: 300px;
            height: 300px;
            background-color:#7FFF00;
            margin:80px auto;   
        }
        .shadow{
            transform: translateY(1);
            transition: all 600ms;
        }
        /*!!!伪元素是加在“容器内部”,非容器就加在后面!!!*/
        /*创建伪元素,存放阴影,并不增加新dom元素 ()*/
        .shadow::after{
            content: "";
            display: block;
            position: absolute;
            bottom: -60px;
            height: 14px;
            width: 300px;
            /*把背景色,阴影都设成同一颜色*/
            background-color: #ccc;
            border-radius: 50%;
            box-shadow: 0 0 15px 10px #ccc;
            transition: all 600ms;
        }
        .shadow:hover{
            transform: translateY(-20px);
            transition: all 800ms;
        }
        .shadow:hover:after{
            /*y轴上移20px,缩小0.6倍,有一种远去的效果*/
            transform: translateY(-20px);
            transform: scale(0.6);
            transition: all 800ms;
        }
    </style>
</head>
<body>
        <div class="shadow"></div>
        
<script type="text/javascript">

</script>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容