likes
comments
collection
share

大家虎年吉祥,给大家分享一个新春灯笼的css效果

作者站长头像
站长
· 阅读数 48

PK创意闹新春,我正在参加「春节创意投稿大赛」,详情请看:春节创意投稿大赛

大家虎年吉祥,给大家分享一个新春灯笼的css效果

前言

为了参加新春节投稿大赛征文活动,为此开发了一个小小的css特效,开发中也了解了不少内容,正好给大家展示一下

灯笼效果

首先用先绘制一个灯笼的模型

灯笼模型画了一个大的椭圆背景色为红色,这样更直观点

<div class="deng-box">
    <div class="deng">
        <div class="xian"></div>
        <div class="deng-a">
            <div class="deng-b">
                <div class="deng-t">节</div>
            </div>
        </div>
        <div class="shui shui-a">
            <div class="shui-c"></div>
            <div class="shui-b"></div>
        </div>
    </div>
</div>
<div class="deng-box1">
    <div class="deng">
        <div class="xian"></div>
        <div class="deng-a">
            <div class="deng-b">
                <div class="deng-t">春</div>
            </div>
        </div>
        <div class="shui shui-a">
            <div class="shui-c"></div>
            <div class="shui-b"></div>
        </div>
    </div>
</div>

这两个模型加上样式

加上样式之前需要给把灯笼固定到顶部,最后两个灯笼重叠到一起,加上黄色的阴影这样更真实些

.deng-box,
.box-left {
    position: fixed;
    top: -40px;
    right: -20px;
    z-index: 999;
}

.deng-box1,
.box-left1 {
    position: fixed;
    top: -30px;
    right: 10px;
    z-index: 999;
}

.box-left {
    left: 20px;
}

.box-left1 {
    left: 10px;
}

.deng-box1 .deng {
    position: relative;
    width: 120px;
    height: 90px;
    margin: 50px;
    background: #d8000f;
    background: rgba(216, 0, 15, 0.8);
    border-radius: 50% 50%;
    -webkit-transform-origin: 50% -100px;
    -webkit-animation: swing 5s infinite ease-in-out;
    box-shadow: -5px 5px 30px 4px rgba(252, 144, 61, 1);
}

.deng {
    position: relative;
    width: 120px;
    height: 90px;
    margin: 50px;
    background: #d8000f;
    background: rgba(216, 0, 15, 0.8);
    border-radius: 50% 50%;
    -webkit-transform-origin: 50% -100px;
    -webkit-animation: swing 3s infinite ease-in-out;
    box-shadow: -5px 5px 50px 4px rgba(250, 108, 0, 1);
}

渲染后的样子

大家虎年吉祥,给大家分享一个新春灯笼的css效果

给灯笼加上黄色的边缘线

css的方法 border: 2px solid #dc8f03;如果觉得粗可以调整,线颜色为黄色rgba(216, 0, 15, 0.1)

 .deng-a {
    width: 100px;
    height: 90px;
    background: #d8000f;
    background: rgba(216, 0, 15, 0.1);
    margin: 12px 8px 8px 8px;
    border-radius: 50% 50%;
    border: 2px solid #dc8f03;
}

.deng-b {
    width: 45px;
    height: 90px;
    background: #d8000f;
    background: rgba(216, 0, 15, 0.1);
    margin: -4px 8px 8px 26px;
    border-radius: 50% 50%;
    border: 2px solid #dc8f03;
}

分别使用marginborder-radius进行弧度和间距的调整

大家虎年吉祥,给大家分享一个新春灯笼的css效果

给灯笼加上底部黄色的线条

黄色的线条为两部分组成,颜色都是黄色,只不过是一个粗一个细。宽度分别为10px,60px

.xian {
    position: absolute;
    top: -20px;
    left: 60px;
    width: 2px;
    height: 20px;
    background: #dc8f03;
}

.shui-a {
    position: relative;
    width: 5px;
    height: 20px;
    margin: -5px 0 0 59px;
    -webkit-animation: swing 4s infinite ease-in-out;
    -webkit-transform-origin: 50% -45px;
    background: #ffa500;
    border-radius: 0 0 5px 5px;
}

.shui-b {
    position: absolute;
    top: 14px;
    left: -2px;
    width: 10px;
    height: 10px;
    background: #dc8f03;
    border-radius: 50%;
}

.shui-c {
    position: absolute;
    top: 18px;
    left: -2px;
    width: 10px;
    height: 35px;
    background: #ffa500;
    border-radius: 0 0 0 5px;
}

大家虎年吉祥,给大家分享一个新春灯笼的css效果

给灯笼加上黄色的边框,字体颜色也要加粗颜色也是为黄色

用的是渐变色linear-gradient(to right, #dc8f03, #ffa500, #dc8f03, #ffa500, #dc8f03) 也是要稍微带点弧度,弧度不要很大奥,最后定位到灯笼的上下两侧

.deng:before {
    position: absolute;
    top: -7px;
    left: 29px;
    height: 12px;
    width: 60px;
    content: " ";
    display: block;
    z-index: 999;
    border-radius: 5px 5px 0 0;
    border: solid 1px #dc8f03;
    background: #ffa500;
    background: linear-gradient(to right, #dc8f03, #ffa500, #dc8f03, #ffa500, #dc8f03);
}

.deng:after {
    position: absolute;
    bottom: -7px;
    left: 10px;
    height: 12px;
    width: 60px;
    content: " ";
    display: block;
    margin-left: 20px;
    border-radius: 0 0 5px 5px;
    border: solid 1px #dc8f03;
    background: #ffa500;
    background: linear-gradient(to right, #dc8f03, #ffa500, #dc8f03, #ffa500, #dc8f03);
}

.deng-t {
    font-family: 华文行楷, Arial, Lucida Grande, Tahoma, sans-serif;
    font-size: 3.2rem;
    color: #dc8f03;
    font-weight: bold;
    line-height: 85px;
    text-align: center;
}

.night .deng-t,
.night .deng-box,
.night .deng-box1 {
    background: transparent !important;
}

大家虎年吉祥,给大家分享一个新春灯笼的css效果

让灯笼动起来

分别设置向左右移动,我这里写了一个css动画,用的 transform,分别向先右后左的方式设置rotate(-10deg),rotate(10deg),rotate(-10deg)两个灯笼都是一样的

@-moz-keyframes swing {
    0% {
        -moz-transform: rotate(-10deg)
    }

    50% {
        -moz-transform: rotate(10deg)
    }

    100% {
        -moz-transform: rotate(-10deg)
    }
}

最后

为了参加新春特别活动,为此写了一个小小的特效,也问了不少同事顺便也学习了css,下一步继续学习和开发一些新的效果(为了给朋友炫耀)。

转载自:https://juejin.cn/post/7054755623790968863
评论
请登录