要过年了,使用CSS实现一个喜庆的灯笼动画效果!

要过年了,下面本篇文章带大家用css画了个灯笼,并添加动画效果,实现灯笼左右摇摆的效果,希望对大家有所帮助!

要过年了,使用CSS实现一个喜庆的灯笼动画效果!

过年了~ 过年了~ 过年了~

辞旧迎新过年啦 张灯结彩春节啦~

金鸡起舞送福啦 新的一年福来啦~

立即学习“前端免费学习笔记(深入)”;

文章开头几句歌词,顿时显得喜庆了不,我们的灯笼是下面这个样子的。

1.gif

animation属性

画灯笼我们肯定不能画一个静态的灯笼,我们先来复习一下CSS中的animation属性,该是是一个简写属性,由animation-nameanimation-durationanimation-timing-functionanimation-delayanimation-iteration-countanimation-directionanimation-fill-mode 和 animation-play-state 属性组成。这里我们就不展开讲解了,具体可以到MDN中学习。

我们先来看一下下面这个示例:

animation: swing 3s infinite ease-in-out;

在上面的例子中使用了一个名为swing的动画序列,动画序列通过@keyframes创建,执行时间3s,动画循环执行,最后ease-in-out表示动画执行的节奏。

实现思路

为一个矩形添加border-radius使其,形成一个灯笼的外形。

为矩形添加::before::after来形成灯笼的顶部和头部

画一个灯笼线。

在 矩形内部添加两个比较细的矩形,通过添加 border-radius 来形成灯笼的线条。

设置灯笼的动画效果

添加灯穗的样式

接下来我们就分步骤实现。

绘制灯笼外形

首先我们定义HTML结构,代码如下:

然后我们画一个椭圆,然后通过::before::after,绘制上下的两个灯笼盖,CSS如下:

/* 灯笼容器 */.lantern-con {  position: fixed;  left: 160px;}/* 灯笼中间红色区域 */.lantern-light {  position: relative;  width: 120px;  height: 90px;  background-color: red;  margin: 30px;  border-radius: 50%;  box-shadow: -5px 5px 50px 4px #fa6c00;  /* 设置旋转点 */  transform-origin: top center;  animation: swing 3s infinite ease-in-out;}/* 灯笼顶部和底部的样式 */.lantern-light::before,.lantern-light::after {  content: '';  position: absolute;  border: 1px solid #dc8f03;  width: 60px;  height: 12px;  /* 背景渐变 */  background: linear-gradient(    to right,    #dc8f03,    #ffa500,    #dc8f03,    #ffa500,    #dc8f03  );  left: 30px;}/* 顶部位置 */.lantern-light::before {  top: -7px;  border-top-left-radius: 5px;  border-top-right-radius: 5px;}/* 底部位置 */.lantern-light::after {  bottom: -7px;  border-bottom-left-radius: 5px;  border-bottom-right-radius: 5px;}/* 提着灯笼的线的样式 */.lantern-line {  width: 2px;  height: 50px;  background-color: #dc8f03;  position: absolute;  left: 88px;}/* 灯笼的动画效果 */@keyframes swing {  0% {    transform: rotate(-6deg);  }  50% {    transform: rotate(6deg);  }  100% {    transform: rotate(-6deg);  }}

现在就实现了一个比较基础灯笼外形,效果如下:

2.png

灯笼内部线条

灯笼的内部线条是通过两个矩形实现了,通过border-radius属性将其设置为椭圆,然后绘制边,呈现灯笼线条。

灯笼

对应的CSS如下:

/* 灯笼中间的线条 */.lantern-circle,.lantern-rect {  height: 90px;  border-radius: 50%;  border: 2px solid #dc8f03;  background-color: rgba(216, 0, 15, 0.1);}/* 外层 */.lantern-circle {  width: 100px;  margin: 12px 8px 8px 10px;}/* 内层 */.lantern-rect {  margin: -2px 8px 8px 26px;  width: 45px;}/* 文字样式 */.lantern-text {  font-size: 28px;  font-weight: bold;  text-align: center;  color: #dc8f03;  margin-top: 4px;}

效果如下:

2.gif

灯笼穗

现在我们来绘制一下灯笼穗,这个东西比较简单,最主要的是添加一个动画效果,其HTML结构如下:

CSS如下:

/* 灯穗 */.lantern-tassel-top {  width: 5px;  height: 20px;  background-color: #ffa500;  border-radius: 0 0 5px 5px;  position: relative;  margin: -5px 0 0 59px;  /* 让灯穗也有一个动画效果 */  animation: swing 3s infinite ease-in-out;}.lantern-tassel-middle,.lantern-tassel-bottom {  position: absolute;  width: 10px;  left: -2px;}.lantern-tassel-middle {  border-radius: 50%;  top: 14px;  height: 10px;  background-color: #dc8f03;  z-index: 2;}.lantern-tassel-bottom {  background-color: #ffa500;  border-bottom-left-radius: 5px;  height: 35px;  top: 18px;  z-index: 1;}

到这我们就把这个灯笼画完了。

3.gif

(学习视频分享:css视频教程)

以上就是要过年了,使用CSS实现一个喜庆的灯笼动画效果!的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1623493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 08:19:22
下一篇 2025年12月24日 08:19:32

相关推荐

  • css3中translate的用法是什么

    css中translate用于定义元素的平移转换,可与transform属性配合使用,语法为“transform:translate(x,y)”;translate()函数中“x”定义元素在x轴的平移距离,“y”定义元素在y轴的平移距离。 本教程操作环境:windows10系统、CSS3&&…

    2025年12月24日
    000
  • css必须要知道的盒子模型重点是什么(整理分享)

    本篇文章给大家带来了css盒子模型中常用到的相关知识,所谓盒子模型就是把html页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器,每个矩形都由元素的内容、内边距、边框和外边距组成。下面我们就分别来看一下,希望对大家有帮助。 其实,CSS就三个大模块: 盒子模型 、 浮动 、 定位,其余的都…

    2025年12月24日 好文分享
    000
  • css定位position属性应该怎样用(实例详解)

    本篇文章给大家带来css中position定位属性的相关知识,position用于属性规定元素的定位类型,不同的属性值有着不同的定位样式,希望对大家有帮助。 定位(position) background-position 背景定位 如果,说浮动, 关键在一个 “浮” 字上面, 那么 我们的定位,关…

    2025年12月24日 好文分享
    000
  • 最通俗易懂的CSS浮动float属性详解(图文详细)

    本篇文章给大家带来了css中float浮动属性的相关知识详细解析,float 属性定义元素在哪个方向浮动,下面我们就来看一下不同的属性值会出现什么不同的结果,希望对大家有帮助。 CSS 浮动float属性详解 很早以前就接触过CSS,但对于浮动始终非常迷惑,可能是自身理解能力差,也可能是没能遇到一篇…

    2025年12月24日 好文分享
    000
  • css3中过渡的用法是什么

    css3中,过渡属性transition用于设置元素过渡效果,是简写属性,语法“transition:property duration timing-function delay”,属性值分别设置了元素过渡的属性名、时间、转速和延迟时间。 本教程操作环境:windows10系统、CSS3&…

    2025年12月24日
    000
  • css3怎样实现网页的淡入效果

    方法:1、利用“body{animation:名称 时间}”语句给网页元素body绑定动画;2、利用“@keyframes 名称{0%{opacity:0;}}”语句,设置网页淡入的动画关键帧,opacity属性用于设置元素的透明度。 本教程操作环境:windows10系统、CSS3&&am…

    2025年12月24日
    000
  • 怎么玩转css动画?(整理分享)

    本篇文章给大家带来关于css中动画的相关知识,其中包括什么是动画,动画的调用以及多关键帧动画应该怎样实现,希望对你有帮助。 1. 什么是动画 在 CSS 中,可以使用@keyframes来定义动画 (keyframes 表示“关键帧”) 大致结构: @keyframes rotation { /* …

    2025年12月24日
    000
  • css3向左偏移是什么样式

    在css中,向左偏移的样式是“transform:translate(-向左偏移距离值);”;transform属性的作用是允许我们对元素进行旋转、缩放、移动或倾斜操作,translate()函数的作用是定义元素的平移转换。 本教程操作环境:windows10系统、CSS3&&HTM…

    2025年12月24日
    000
  • 什么是css3弹性盒子

    css3中,弹性盒子是一种布局方式,为了让页面适应不同的屏幕大小以及设备类型,进而提供一种更加有效的方式来分配空间;可以利用display属性来定义弹性盒子,语法为“display:flex”或者“display:inline-flex”。 本教程操作环境:windows10系统、CSS3&…

    2025年12月24日
    000
  • css中::before是什么意思

    css中“::before”的意思是“在…之前”,是一个伪类元素,用于创建一个伪元素,并将其设置为选中元素的第一个子元素,插入到元素的其他内容之前,语法为“element::before{样式代码}”。 本教程操作环境:windows10系统、CSS3&&HTML5版、D…

    2025年12月24日
    000
  • ex在css中是什么意思

    css中ex是一种相对长度单位,表示相对于当前字体的“x-height”长度,也就是相对于字符“x”的高度,通常为字体高度的一半,语法为“大小属性:数值ex;”。 本教程操作环境:windows10系统、CSS3&&HTML5版、Dell G3电脑。 ex在css中是什么意思 css…

    2025年12月24日
    000
  • css内嵌样式是什么

    css内嵌样式是将css写在网页源文件的头部,即在“”和“”之间,利用style标签将css样式代码包围的样式;内嵌样式的特点是该样式只能在此页使用,可以解决行内样式多次书写的弊端。 大家感兴趣的话,可以继续访问:css视频教程。 以上就是css内嵌样式是什么的详细内容,更多请关注创想鸟其它相关文章…

    好文分享 2025年12月24日
    000
  • css动画中倾斜代码是什么

    css动画中倾斜的代码是“transform:skewX(倾斜角度值)”;transform属性的作用是允许我们对元素进行旋转、缩放、移动或倾斜操作,skewX()函数的作用是定义元素的倾斜转换。 本教程操作环境:windows10系统、CSS3&&HTML5版、Dell G3电脑。…

    2025年12月24日
    000
  • css3怎样实现旋转缩放动画效果

    方法:1、利用“元素{animation:名称 时间}”语句给元素绑定旋转缩放动画;2、利用“@keyframes 名称{100%{transform:rotate(旋转角度) scale(缩放比例);}}”语句实现旋转缩放动画效果。 本教程操作环境:windows10系统、CSS3&&am…

    2025年12月24日
    000
  • css3怎么办能选择第三个li元素

    在css中,可以利用“:nth-child(n)”选择器来选择第三个li元素,该选择器的作用就是选择父元素下的第n个子元素,当选择器中的数字为3时,会选择第3个元素,语法为“li:nth-child(3){css样式代码;}”。 本教程操作环境:windows10系统、CSS3&&H…

    2025年12月24日
    000
  • css3怎样实现背景线性渐变

    在css中,可以利用“background-image”属性和“linear-gradient()”函数实现元素背景线性渐变,语法为“元素{background-image:linear-gradient(渐变方向,颜色1,颜色2..)”。 本教程操作环境:windows10系统、CSS3&…

    2025年12月24日
    000
  • css3怎样实现过几秒消失动画

    方法:1、用“@keyframes 名称{99%{opacity:1;}100%{opacity:0;}}”语句设置元素消失动画;2、用“元素{animation-duration:时间}”语句设置动画元素的动画时间,时间过后元素就会消失。 本教程操作环境:windows10系统、CSS3&…

    2025年12月24日
    000
  • css3怎样实现旋转加位移动画

    方法:1、用animation属性给元素绑定动画;2、用“@keyframes 名称{100%{transform:rotate(旋转角度)translate(位移距离);}}”语句设置元素的旋转和位移的动作关键帧,实现旋转加位移动画效果。 本教程操作环境:windows10系统、CSS3&…

    2025年12月24日
    000
  • Css3属性前为什么要加webkit

    css中因为要兼容不同浏览器的属性支持,浏览器厂商会在属性前加一个私有前缀来支持新属性;前缀为“-webkit-”的属性,能够在以webkit为内核的浏览器中正常使用,例如“safari”和“chrome”浏览器。 本教程操作环境:windows10系统、CSS3&&HTML5版、D…

    2025年12月24日
    000
  • css3中设置文本的行高属性是什么

    css中设置文本行高的属性是“line-height”,该属性用于设置文本行的距离,语法为“line-height:value”;属性值为数字时会设置数字与当前的字体尺寸相乘为行高,属性值单位为“%”时会基于当前字体尺寸的百分比设置行高。 本教程操作环境:windows10系统、CSS3&&…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信