【程序人生】卡塔尔世界杯吉祥物python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)

news2024/11/26 2:52:55

卡塔尔世界杯吉祥物python海龟绘图(附源代码)

世界杯主题前端特效5个(附源码)程序人生

本文目录:

一、python turtle海龟绘图卡塔尔世界杯吉祥物

(1)、世界杯吉祥物“Laeeb”绘制效果图

(2)、代码演示方法和代码命令解释

(3)、本机运行、将绘图动画打包发给别人

(4)、我的 “2022年卡塔尔世界杯吉祥物Laeeb” 绘图完整源代码

二、世界杯主题网页特效

(1)、为透明png图片添加阴影特效

(2)、css三维空间移动特效

(3)、css滤镜发光按钮

(4)、翻转卡片特效

(5)、不停弹跳的旋转足球(带红色光影)


  国际足联世界杯(FIFA World Cup),简称“世界杯”,是由全世界国家级别球队参与,象征足球界最高荣誉,并具有最大知名度和影响力的足球赛事。世界杯全球电视转播观众超过35亿。世界杯每四年举办一次,任何国际足联会员国(地区)都可以派出代表队报名参加这项赛事。

  2022年卡塔尔世界杯于北京时间2022年11月21日至12月18日举行。

  我是不懂足球的女性,就单从程序代码角度来看世界杯吧。先用python画一个卡塔尔世界杯吉祥物“Laeeb”,再从前端特效角度探讨一下世界杯主题网站的实现的几种方法。

  编外话:

  今天是2022年12月14日,很快就到2023年了。几年了,困扰各个国家的疫情还是没能彻底解决,这些不是某个人某个国家单方面就能解决的问题。

  我一直在广州没离开过,广州现在的疫情情况大家都知道。 个人觉得,对于新冠病毒,大家还是需要以平常心对待,现在拼的是免疫力和心态。

  只要不发展成重症,身体基础好的很快就会初步康复,这需要拼的是免疫力(没有专门特效药情况下)。

  在这期间,首先不要自己把自己弄病了。对未知的危险,人本能会有恐惧感,人之常情。所以需要拼的是心态。

  每个人需要做的就是,照顾好自己,照顾好家人,要相信,疫情一定会过去。人类发展史上出现过数不清的未知病菌病毒,人类不是还没灭亡吗?如果生病了,就放宽心,好好休息,要相信你自己一定能打败病毒,重新夺取回属于你的健康。没有生病的,就好好珍惜所有,开开心心努力过好每一天!

一、python turtle海龟绘图卡塔尔世界杯吉祥物

(1)、世界杯吉祥物“Laeeb”绘制效果图

  2022年卡塔尔世界杯吉祥物“Laeeb”是一个卡通人物,在阿拉伯语中意为技艺高超的球员。它鼓励人们相信自己,将带领所有人享受足球的快乐。

(2)、代码演示方法和代码命令解释

    将源代码完整拷贝,保存成:你的文件名.py   ,然后在python环境下运行。你会看到和我一样的“2022年卡塔尔世界杯吉祥物Laeeb”效果。

    代码的语法解释部分,可点击查看文章里的介绍:皮卡丘python turtle海龟绘图(电力球版)附源代码

(3)、本机运行、将绘图动画打包发给别人

   可点击查看文章里的介绍:

  

(4)、我的 “2022年卡塔尔世界杯吉祥物Laeeb” 绘图完整源代码

#-*- coding: UTF-8 -*-
import turtle as t
 
"""
=================================================
@Project ->Adversity Awake 世界杯系列
@类别     : 世界杯->世界杯之1
@Author  : 逆境清醒
@Date    : 2022/12/13 06:02
@Desc    :https://blog.csdn.net/weixin_69553582
=================================================
"""
# 设置背景颜色,窗口位置以及大小
 
t.colormode(255)# 颜色模式
t.speed(0)
t.screensize(800,600,"black")#画布大小背景颜色
t.setup(width=800, height=600,startx=None, starty=None)#绘图窗口的大小和起始坐标

t.title("逆境清醒2022卡塔尔世界杯吉祥物!")#设置绘图窗口的标题
t.resizemode('noresize')  #大小调整模式:auto,user,noresize
t.tracer(1)   
t.hideturtle()
 
def mlingpen(x, y):
    t.penup()
    t.goto(x, y)
    t.pendown()

 
def mlingfacecheek(x, y, fx):
    mlingpen(x, y)
    t.seth(fx)
    t.pencolor("#fcd1ae")
    t.fillcolor('#fcd1ae')
    t.begin_fill()
    n = 1.8
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            n -= 0.05
            t.left(3)
            t.fd(n)
        else:
            n += 0.05
            t.left(3)
            t.fd(n)
    t.end_fill()
 
def mlingfacecheek_h(x, y, fx):
    mlingpen(x, y)
    t.seth(fx)
    t.pencolor("#fcc6ae")
    t.fillcolor('#fcc6ae')
    t.begin_fill()
    n = 1.6
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            n -= 0.06
            t.left(3)
            t.fd(n)
        else:
            n += 0.06
            t.left(3)
            t.fd(n)
    t.end_fill()

def mlingellipse(x,y,jiajiao,l, size,color1,color2):
    mlingpen(x, y)
    t.seth(jiajiao + 270)
    t.pensize(size)
    t.pencolor(color1)
    t.fillcolor(color2)
    t.pendown()
    t.begin_fill()
    a = 0.3
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a += l
            t.lt(3)  
            t.fd(a)  
        else:
            a -= l
            t.lt(3)
            t.fd(a)
    t.penup()
    t.end_fill()
 
def mlingrotate_left(chishu, angle, length):
    for i in range(chishu):  
        t.left(angle)  
        t.forward(length)  
 
def mlingrotate_right(chishu, angle, length):
    for i in range(chishu):  
        t.right(angle)  
        t.forward(length)  
 

def llaeebeye():
    #AdversityAwake
    t.seth(22)
    mlingpen(80,62)
    t.pensize(3)
    t.pencolor("#000000")
    t.fillcolor('#000000')
    t.begin_fill()
    t.circle(40,62)
    t.circle(21,160)
    t.circle(40,53)
    t.goto(80,62)
    t.end_fill()
    t.seth(20)
    mlingpen(80,62)
    t.pensize(2)
    t.pencolor("#000000")
    t.fillcolor('#ffffff')
    t.begin_fill()
    t.circle(35,62)
    t.circle(20,164)
    t.circle(40,53)
    t.goto(80,62)
    t.end_fill()
    t.seth(30)
    mlingpen(76,65)
    t.pensize(3)
    t.pencolor("#452b14")
    t.fillcolor('#e58f59')
    t.begin_fill()
    t.circle(31,90)
    t.lt(12)
    t.circle(12,70)
    t.lt(27)
    t.circle(40,68)
    t.goto(76,65)
    t.end_fill()
    t.seth(0)
    mlingpen(66,72)
    t.pensize(1)
    t.pencolor("#000000")
    t.fillcolor('#000000')
    t.begin_fill()
    t.circle(20,120)
    t.circle(10,120)
    t.lt(6)
    t.circle(40,40)
    t.goto(66,72)
    t.end_fill()
    t.seth(0)
    mlingpen(68,75)
    t.pencolor("#373331")
    t.fillcolor('#3f3a38')
    t.begin_fill()
    t.circle(5,360)
    t.end_fill()
    t.seth(0)
    mlingpen(73,102)
    t.pensize(1)
    t.pencolor("#000000")
    t.fillcolor('#ffffff')
    t.begin_fill()
    t.circle(6,360)
    t.end_fill()
    #AdversityAwake
    t.seth(40)
    mlingpen(10,70)
    t.pensize(3)
    t.pencolor("#000000")
    t.fillcolor('#000000')
    t.begin_fill()
    t.circle(30,170)
    t.circle(23,120)
    t.goto(10,70)
    t.end_fill()
    t.seth(44)
    mlingpen(10,70)
    t.pensize(2)
    t.pencolor("#000000")
    t.fillcolor('#ffffff')
    t.begin_fill()
    t.circle(29,170)
    t.circle(23,100)
    t.goto(10,70)
    t.end_fill()
    t.seth(30)
    mlingpen(0,75)
    t.pensize(3)
    t.pencolor("#452b14")
    t.fillcolor('#e58f59')
    t.begin_fill()
    t.circle(23,280)
    t.goto(0,75)
    t.end_fill()
    t.seth(30)
    mlingpen(-3,82)
    t.pensize(3)
    t.pencolor("#000000")
    t.fillcolor('#000000')
    t.begin_fill()
    t.circle(15,360)
    t.goto(-3,82)
    t.end_fill()
    t.seth(0)
    mlingpen(-11,82)
    t.pencolor("#373331")
    t.fillcolor('#3f3a38')
    t.begin_fill()
    t.circle(5,360)
    t.end_fill()
    t.seth(0)
    mlingpen(-6,102)
    t.pensize(1)
    t.pencolor("#000000")
    t.fillcolor('#ffffff')
    t.begin_fill()
    t.circle(6,360)
    t.end_fill()


def llaeebmeim():
    t.seth(100)
    mlingpen(-30,125)
    t.pensize(2)
    t.pencolor("#000000")
    t.fillcolor('#000000')
    t.begin_fill()
    t.goto(25,133)
    t.circle(10,100)
    t.rt(30)
    t.circle(50,60)
    t.goto(-30,125)
    t.end_fill()
    #AdversityAwake
    t.seth(120)
    mlingpen(60,130)
    t.pensize(2)
    t.pencolor("#000000")
    t.fillcolor('#000000')
    t.begin_fill()
    t.goto(106,130)
    t.circle(30,40)
    t.circle(25,80)
    t.goto(60,130)
    t.end_fill()


def llaeebmouse():
    #AdversityAwake
    t.seth(-30)
    mlingpen(0,55)
    t.pensize(3)
    t.pencolor("#000000")
    #t.begin_fill()
    t.circle(130,16)
    t.circle(48,40)
    #t.end_fill()


def llaeebbozi():
    #AdversityAwake
    t.seth(120)
    mlingpen(145,40)
    t.pensize(3)
    t.pencolor("#000000")
    t.fillcolor('#805d57')
    t.begin_fill()
    t.circle(12,120)
    t.rt(30)
    t.circle(55,17)
    t.rt(10)
    t.circle(-110,70)
    t.circle(100,50)
    t.circle(50,45)
    t.goto(-140,-210)
    t.goto(110,-210)
    t.lt(120)
    t.circle(100,60)
    t.goto(145,40)
    t.end_fill()

def llaeebyifu():
    t.seth(160)
    mlingpen(-70,140)
    t.pencolor("#624655")
    t.pensize(6)
    t.circle(170,20)
    t.circle(30,95)
    t.dot(15,"#624655")
    t.seth(-100)
    mlingpen(-70,140)
    t.circle(-30,130)
    t.dot(15,"#624655")
    t.seth(-180)
    mlingpen(-70,140)
    t.circle(30,50)
    t.circle(-190,20)
    t.circle(190,20)
    t.circle(-30,50)
    t.dot(15,"#624655")
    t.seth(190)
    mlingpen(-70,140)
    t.circle(-250,20)
    t.circle(250,10)
    t.circle(-30,50)
    t.dot(15,"#624655")
    #AdversityAwake
    t.seth(0)
    mlingpen(-140,-210)
    t.pensize(3)
    t.pencolor("#000000")
    t.fillcolor('#ffffff')
    t.begin_fill()
    t.goto(110,-210)
    t.circle(100,60)
    t.lt(20)
    t.circle(50,20)
    t.circle(-50,30)
    t.circle(80,60)
    t.goto(100,140)
    t.rt(20)
    t.circle(80,60)
    t.circle(100,60)
    t.circle(190,10)
    t.rt(15)
    t.circle(290,55)
    t.goto(-140,-210)
    t.end_fill()


def llaeebhand():
    t.seth(0)
    mlingpen(195,-165)
    t.pensize(3)
    t.pencolor("#000000")
    t.fillcolor('#ffffff')
    t.begin_fill()
    t.lt(75)
    t.circle(50,20)
    t.circle(-50,30)
    t.circle(80,60)
    t.goto(150,40)
    t.lt(130)
    t.circle(-100,70)
    t.goto(20,-40)
    t.lt(105)
    t.circle(200,60)
    t.goto(195,-165)
    t.end_fill()
    t.seth(0)
    mlingpen(190,-160)
    t.pensize(2)
    t.pencolor("#eee7f1")
    t.fillcolor('#eee7f1')
    t.begin_fill()
    t.lt(75)
    t.circle(50,20)
    t.circle(-50,30)
    t.circle(80,60)
    t.goto(147,25)
    t.lt(130)
    t.circle(-100,20)
    t.end_fill()
    t.seth(0)
    mlingpen(185,-160)
    t.pensize(2)
    t.pencolor("#faf4fc")
    t.fillcolor('#faf4fc')
    t.begin_fill()
    t.lt(75)
    t.circle(50,20)
    t.circle(-50,30)
    t.circle(75,55)
    t.goto(145,21)
    t.lt(130)
    t.circle(-95,30)
    t.end_fill()
    t.seth(0)
    mlingpen(185,-160)
    t.pensize(2)
    t.pencolor("#fdfafe")
    t.fillcolor('#fdfafe')
    t.begin_fill()
    t.lt(75)
    t.circle(45,20)
    t.circle(-45,30)
    t.circle(65,55)
    t.goto(143,13)
    t.lt(130)
    t.circle(-95,30)
    t.end_fill()
    #AdversityAwake
    t.seth(-80)
    mlingpen(-127.85,12.90)
    t.pensize(3)
    t.pencolor("#000000")
    t.fillcolor('#ffffff')
    t.begin_fill()
    t.circle(46,55)
    t.lt(60)
    t.circle(-30,40)
    t.lt(10)
    t.circle(-150,30)
    t.goto(20,-40)
    t.goto(110,-5)
    t.circle(-8,80)
    t.lt(2)
    t.circle(-280,55)
    t.goto(-140,-210)
    t.rt(89)
    t.circle(-300,48)
    t.goto(-127.85,12.90)
    t.end_fill()
    t.seth(-120)
    mlingpen(-101.00,-20.80)
    t.circle(90,32)
    t.lt(120)
    t.circle(-80,50)
    t.circle(66,60)
    mlingpen(40,-80)
    mlingellipse(40,-80,46,0.06,3,"#911a2b","#dd4159")
    mlingellipse(52,-66,45,0.01,3,"#911a2b","#ffffff")
    mlingpen(45,-74)
    t.dot(9,"#ffffff")
    mlingpen(46,-60)
    t.dot(9,"#ffffff")
    mlingpen(56,-48)
    t.dot(9,"#ffffff")
    mlingpen(72,-46)
    t.dot(9,"#ffffff")
    mlingpen(59,-75)
    t.dot(9,"#ffffff")
    mlingpen(73,-64)
    t.dot(9,"#ffffff")
    t.pensize(3)
    t.pencolor("#911a2b")
    t.fillcolor('#dd4159')
    t.begin_fill()
    mlingpen(10,-100)
    t.goto(20,-100)
    t.lt(90)
    t.fd(20)
    t.lt(135)
    t.fd(10)
    t.goto(10,-100)
    t.end_fill()
    t.pensize(10)
    mlingpen(100,-80)
    t.goto(110,-85)
    t.pensize(3)
    mlingpen(-50,-35)
    t.goto(-20,-45)
    t.pencolor("#000000")

t.pencolor("#fdfafe")
mlingpen(290,75)
t.write("鼓\n励\n人\n们\n相\n信\n自\n己\n",align="center",font=("黑体",16,"normal"))
t.up()
mlingpen(250,30)
t.write("\n\n\n\n卡\n塔\n尔\n世\n界\n杯\n吉\n祥\n物\n",align="center",font=("黑体",14,"normal"))
mlingpen(-220,-200)
t.write("作\n者\n:\n逆\n境\n清\n醒\n\n",align="center",font=("黑体",12,"normal"))


def llaeebtoumao():
    t.seth(0)
    mlingpen(105,135)
    t.pensize(3)
    t.pencolor("#000000")
    t.fillcolor('#624655')
    t.begin_fill()
    t.circle(10,155)
    t.rt(90)
    t.circle(8,90)
    t.lt(8)
    t.circle(270,38)
    t.lt(5)
    t.circle(8,100)
    t.rt(90)
    t.circle(10,100)
    t.lt(110)
    t.circle(-20,50)
    t.circle(-270,18)
    t.lt(5)
    t.circle(-250,18)
    t.goto(105,135)
    t.end_fill()


if __name__ == '__main__':
    llaeebyifu()
    llaeebbozi()
    llaeebhand()
    llaeebtoumao()
    llaeebmouse()
    llaeebmeim()
    llaeebeye()
    t.done()

二、世界杯主题网页特效

  为了增加交互体验感,网页上通常会有很多特效。有时不需要用很多复杂的技术,简单用css就能达到不错的效果,一起来看一下吧:

(1)、为透明png图片添加阴影特效

  如果我有一张png图片,想要加一个文字投影,是不是非要用ps等制图软件呢?答案是否定的,我们可以CSS滤镜来实现添加阴影特效。CSS滤镜 drop-shadow 可以做 box-shadow 一样类似的事情,我们可以输入x-offset、y-offset、模糊半径和颜色的值。

.elementname {  filter: drop-shadow(0 0.2rem 0.25rem rgba(0, 0, 0, 0.2));}
与 box-shadow 不同,它不需要 spread 参数

  使用 drop-shadow 可以让我们给一个元素添加阴影,这个阴影并不对应于它的边界框,而是使用该元素的Alpha蒙版。例如,我们可以在透明的PNG或SVG徽标中添加投影。

img {  filter: drop-shadow(0.35rem 0.35rem 0.4rem rgba(0, 0, 0, 0.5));}


  我们可以比较 box-shadow 和 drop-shadow 的效果:

        <style>
          .shadow {box-shadow:0px 0px 20px rgb(240, 240, 240);}
        </style>

使用 box-shadow 为我们提供了一个矩形阴影,即使元素没有背景

style="filter:drop-shadow(0 0 20px #ffffff);"

  而 drop-shadow 则为图像的非透明部分创建阴影。

 我们可以使用多个 drop-shadow 阴影以获得一些很酷的效果!

style="filter: drop-shadow(0 0 3px #ffffff) drop-shadow(0 0 5px #ffffff) drop-shadow(0 0 10px #ffffff);"

(2)、css三维空间移动特效

  本例css三维空间移动特效用到了translateZ()函数。该translateZ() CSS函数沿着z轴在三维空间中重新定位元素,即从观察者的角度而言更近或者更远。这个变换是由一个<length>元素定义的,它指定元素向内或向外移动的距离。

  translateZ(tz)相当于translate3d(0, 0, tz)。

  语法:translateZ(tz)

  它是怎么起作用的呢?首先,perspective()函数将观察者相对于z = 0处的平面(本质上是屏幕的表面)进行定位。500px意味着用户在位于z = 0处的图像“前”500个像素。

  然后,该translateZ()函数将元素从屏幕“向外”移动tz像素到用户。这使得在显示器上观看时元素显得更大,或者观看时更接近元素。

<style>
    .titleimg{
        top: 10px;
        justify-content:center center;
        opacity: 1;
        position: absolute;
        align-items:center;
        top: 100px;
        width: 1000px;
        -webkit-transform-origin: center center;
        -webkit-animation: logo 5s linear;
        -webkit-animation-iteration-count: 1;
        -webkit-animation-delay: 1s;
        -webkit-animation-timing-function: ease-in;
        }    

    .titleimg1{animation: light 2s ease-in-out infinite alternate;}

    @-webkit-keyframes logo {
        0% {-webkit-transform: perspective(100000px) translateZ(0);
            opacity: 1;
           }
       50% {-webkit-transform: perspective(500px) translateZ(-5000px);
            opacity: 1;
           }
       90% {-webkit-transform: perspective(100000px) translateZ(0);
            opacity: 1;
           }
      100% {-webkit-transform: perspective(100000px) translateZ(0);
            opacity: 1;
           }
      }
</style>
css 动画中 ease,seae-in,ease-in-out,ease-out,效果区别
描    述
linear 以相同速度开始至结束的过渡效果(== cubic-bezier(0,0,1,1))。(匀速)
ease

慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))

(相对于匀速,中间快,两头慢)。

ease-in

以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))

(相对于匀速,开始的时候慢,之后快)。

ease-out

以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))

(相对于匀速,开始时快,结束时候间慢)。

ease-in-out

以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))

(相对于匀速,(开始和结束都慢)两头慢)。

cubic-bezier(n,n,n,n)在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。

    

(3)、css滤镜发光按钮

鼠标移动到按钮上面时,显示流光发光效果,如图: 

实现方法:用css的filter滤镜:

filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url();

filter:滤镜函数

(可使用百分比值,也接受该值是十进制(小数制例 0.85),使用多个滤镜,用空格分隔每个滤镜。

滤 镜 名功   能描      述
none规定无效果。默认值。
blur(px)对图像应用模糊效果。

较大的值将产生更多的模糊。

如果为指定值,则使用 0。

brightness(%)调整图像的亮度。
  • 0% 将使图像完全变黑。
  • 默认值是 100%,代表原始图像。
  • 值超过 100% 将提供更明亮的结果。
contrast(%)调整图像的对比度。
  • 0% 将使图像完全变黑。
  • 默认值是 100%,代表原始图像。
  • 超过 100% 的值将提供更具对比度的结果。
drop-shadow(h-shadow v-shadow blur spread color)对图像应用阴影效果。
  • h-shadow - 必需。指定水平阴影的像素值。负值会将阴影放置在图像的左侧。
  • v-shadow - 必需。指定垂直阴影的像素值。负值会将阴影放置在图像上方。
  • blur -可选。单位用像素。为阴影添加模糊效果。不允许负值。默认使用 0。
  • spread - 可选。单位用像素。正值将导致阴影扩展并增大,负值将导致阴影缩小。默认使用 0。
  • Chrome、Safari 和 Opera。。。不支持第 4 个长度;如果添加,则不会呈现。
  • color - 可选。为阴影添加颜色。默认颜色取决于浏览器(通常为黑色)。
grayscale(%)将图像转换为灰阶。
  • 0% (0) 是默认值,代表原始图像。
  • 100% 将使图像完全变灰(用于黑白图像)
  • 不允许负值。
hue-rotate(deg)在图像上应用色相旋转。

该值定义色环的度数。

默认值为 0deg,代表原始图像。

最大值是 360deg。

invert(%)反转图像中的样本。
  • 0% (0) 是默认值,代表原始图像。
  • 100%将使图像完全反转。
  • 不允许负值。
opacity(%)设置图像的不透明度级别。

opacity-level 描述了透明度级别,其中:

  • 0% 为完全透明。
  • 100% 默认值,代表原始图像(不透明)。
  • 不允许负值。类似 opacity 属性。
saturate(%)设置图像的饱和度。
  • 0% (0)将使图像完全不饱和。
  • 100% 默认值,表示原始图像。
  • 超过 100% 提供过饱和的结果。
  • 不允许负值。
sepia(%)将图像转换为棕褐色。
  • 0% (0) 是默认值,代表原始图像。
  • 100% 将使图像完全变为棕褐色。
  • 不允许负值。
url()SVG 滤镜的 XML 文件的位置

url() 函数接受规定 SVG 滤镜的 XML 文件的位置,并且可以包含指向特定滤镜元素的锚点。

filter: url(svg-url#element-id)

initial将此属性设置为其默认值。
inherit从其父元素继承此属性。

a{  /*去掉下划线*/
    text-decoration: none; 
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    font-size: 30px;
    background: linear-gradient(90deg,#03a9f4,#f441a5,#ffeb3b,#03a9f4);
    background-size: 400%;
    width: 300px;
    height: 100px;
    line-height: 100px;
    text-align: center;
    color: #fff;
    border-radius: 50px;
    z-index: 1;
}
 
a::before{
    content: "";
    position: absolute;
    left: -2px;
    right: -2px;
    top: -2px;
    bottom: -2px;
    background: linear-gradient(190deg,#03a9f4,#f441a5,#ffeb3b,#3bff3b,,rgb(30, 179, 162));
    background-size: 200%;
    border-radius: 80px;
    filter: blur(2px);
    z-index: -1;
}
 
a:hover::before{
    animation: sun 8s infinite;
    filter: hue-rotate(90deg)
}
a:hover{
    animation: sun 10s infinite;
}

@keyframes sun{
    100%{
        background-position: -400% 0;
        background-size: 200%;
        border-radius: 80px;
        filter:drop-shadow(8px 8px 20px rgb(252, 235, 45));
        z-index: -inherit;
    }
}

网页调用:<div><a href="#">历届世界杯回顾</a></div>

(4)、翻转卡片特效

鼠标移动到图片上,自动翻转图片,显示出图片后的说明文字

完整css和调用方法如下:

        <div class="lanren">
            <div class="flip-3d">
                <figure>
                   <img src="images/cup1_300a.jpg" alt="">
                   <figcaption>2022世界杯会徽,远看类似一个白色奖杯,又似一个英文“无穷大”符号和阿拉伯数字中的“8”,上边还装饰有勃艮第颜色的图案。会徽的顶部有两个点,两点之间是一个足球图形,会徽底部是装饰图案。</figcaption>
               </figure>
           </div>
            <div class="flip-3d">
                <figure>
                    <img src="images/cup2_300a.jpg" alt="">
                    <figcaption>世界杯奖杯奖杯,名“大力神杯”。高36.8厘米,重6.175公斤,其中4.97公斤的主体由纯金铸造。底座由两层孔雀石构成。
                        国际足联规定奖杯为流动奖品,不论哪队获得多少冠军,也不能永久占有此杯。在大力神杯的底座下面有能容纳镌刻17个冠军队名字的铭牌——可以持续使用到2038年。</figcaption>
                  </figure>
            </div>
            <div class="flip-3d">
                <figure>
                    <img src="images/cup3_300a.jpg" alt="">
                    <figcaption>卡塔尔世界杯的吉祥物名叫Laeeb。La'eeb(拉伊卜),代表着技艺高超的球员。设计灵感来自于卡塔尔人的传统服饰,它鼓励人们相信自己,也寓意着它将带领所有人享受足球的快乐。
                        La’eeb是一个阿拉伯语单词,la’eeb是青春永驻的,来自“吉祥物宇宙”。</figcaption>
                </figure>
            </div>
        </div>
<style>
	.lanren{width:600px;overflow:hidden;margin:0 auto;}
	.flip-3d { 
	  perspective: 200px; width: 50%; float: left;  
	}
	.flip-3d figure { 
	  position: relative; 
	  transform-style: preserve-3d; 
	  transition: 1s transform;
	  font-size: 1em;
	  margin:25px;
	}
	.flip-3d figure img { 
	  width: 100%; height: auto; 
	}
	.flip-3d figure figcaption { 
	  position: absolute; 
	  width: 100%; height: 100%; top: 0; 
	  transform: rotateY(.5turn) translateZ(1px); 
	  background: rgba(255,255,255,1); 
	  text-align: center; 
	  padding-top: 5%; 
	  opacity: 0.6; 
	  transition: 1s .5s opacity; 
	}
	.flip-3d:hover figure { transform: rotateY(.5turn); }
	.flip-3d:hover figure figcaption { opacity: 1; }
	.flip-3d figure:after { 
	  content: " "; display: block;
	  height: 400; width: 100%; 
	  transform: rotateX(90deg); 
	  background-image:radial-gradient(ellipse closest-side, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 100%); 
	}
	@media screen and (max-width: 600px) { 
	  #flip-3d { perspective-origin: center top; }
		div#flip-3d figure { 
	    float: none; 
	    width: 100%; 
	    margin: 0 auto; 
	    margin-bottom: 12vw; 
	  }
	 .flip-3d figure figcaption{font-size: 0.8rem;}
		div#flip-3d figure:last-child { display: none; }
	}
	</style>

(5)、不停弹跳的旋转足球(带红色光影)

导入了animate.min.css库,加了一个足球从远处跳进画面的动画

 实现方式:

<link rel="stylesheet" href="css/animate.min.css"/>

调用时,用:class="animate__animated animate__zoomInDown"即可

阴影部分,随着足球的跳起,会有个缩放的过程,由css动画完成:

.shadow{
  width: 100px;
  height: 25px;
  border-radius: 50%;
  background-color: rgba(0,0,0,0.4);
  animation: shadowShow 1s linear infinite;
}
@keyframes shadowShow {
  0%{
      opacity: 1;
      transform: scale(1);
      -webkit-transform:translateY(-500);
  }
  50%{
      opacity: 0.5;
      transform: scale(0.5);
      -webkit-transform:translateY(-300);
  }
  100%{
      opacity: 1;
      transform: scale(1);
  }

}

为了增加足球的炫酷感,我加了一个红色光影效果,也是由css设置完成,代码如下:

@keyframes light {
from {
box-shadow:0px 0px 30px rgb(234, 194, 194);
}
to {
box-shadow:0px 30px 90px rgb(253, 0, 0);
}
}
.light {
width: 100px;
height: 100px;
border-radius:100%;
perspective-origin: center top;
animation: light 2s ease-in-out infinite alternate;
}

不停弹跳的旋转足球(带红色光影) 的完整css和调用方法如下:

<style>
.box800{
  width: 800px;
  height: 100%;
  display: flex;
  justify-content: space-around;
  align-items: center;
  padding-top:40%; 
  justify-content:center;
}
.ball{
  width: 100px;
  height: 100px;
  background: url("images/ball300.png");
  background-size: 100px 100px;
  border-radius: 100%;
  animation: animationBall 1s linear infinite;
}

@keyframes animationBall {
  0%{transform: translateY(0) rotate(0deg)  }
  50%{transform: translateY(-450px) rotate(180deg)}
  100%{transform: translateY(0) rotate(360deg)}
}

.shadow{
  width: 100px;
  height: 25px;
  border-radius: 50%;
  background-color: rgba(0,0,0,0.4);
  animation: shadowShow 1s linear infinite;
}
@keyframes shadowShow {
  0%{
      opacity: 1;
      transform: scale(1);
      -webkit-transform:translateY(-500);
  }
  50%{
      opacity: 0.5;
      transform: scale(0.5);
      -webkit-transform:translateY(-300);
  }
  100%{
      opacity: 1;
      transform: scale(1);
  }

}


@keyframes light {
from {
box-shadow:0px 0px 30px rgb(234, 194, 194);
}
to {
box-shadow:0px 30px 90px rgb(253, 0, 0);
}
}
.light {
width: 100px;
height: 100px;
border-radius:100%;
perspective-origin: center top;
animation: light 2s ease-in-out infinite alternate;
}
</style>

<link rel="stylesheet" href="css/animate.min.css"/>

<div class="box800">
  <div class="animate__animated animate__zoomInDown">
      <div class="ball"><div class="light"></div></div>
      <div class="shadow"></div>
  </div>
</div>

justify-content:

flex-start|flex-end|center|space-between|space-around|initial|inherit;

属性值 描 述
flex-start默认值。项目位于容器的开头。
flex-end项目位于容器的结尾。
center 项目位于容器中央。
space-between项目在行与行之间留有间隔。
space-around 项目在行之前、行之间和行之后留有空间。
initial 将此属性设置为其默认值。
inherit从其父元素继承此属性。


   
    
 

     推荐阅读:

21

python爱心源代码集锦
20

巴斯光年python turtle绘图__附源代码
19

​​

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)
18

​​​

​草莓熊python turtle绘图(玫瑰花版)附源代码

17

​​​

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

16

​​​

皮卡丘python turtle海龟绘图(电力球版)附源代码

15

​​​

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

14

​​​

草莓熊python turtle绘图(风车版)附源代码

13

​​​

用代码过中秋,python海龟月饼你要不要尝一口?

12

​​​

《 Python List 列表全实例详解系列》__系列总目录

11

​​​

用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

10

​​​

Python函数方法实例详解全集(更新中...)

9

​​​

matplotlib 自带绘图样式效果展示速查(全)

8

​​​

手机屏幕坏了____怎么把里面的资料导出(18种方法)

7

​​​

2022年12月多家权威机构____编程语言排行榜__薪酬状况

6

​​​

Python中Print()函数的用法___实例详解(全,例多)

5

​​​

色彩颜色对照表(300种颜色)(16进制、RGB、CMYK、HSV、中英文名)

4

​​​

Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

3

​​​

Tomcat 启动闪退问题解决集(八大类详细)

2

​​​

Tomcat端口配置(详细)

1

​​​

Tomcat10 安装(Windows环境)(详细)sss

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/89062.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构---栈和队列

栈和队列栈入栈出栈栈的JAVA实现队列入队出队循环队列栈和队列。这两者都属于逻辑结构&#xff0c;它们的物理实现既可以利用数组&#xff0c;也可以利用链表来完成。 栈 栈&#xff08;stack&#xff09;是一种线性数据结构&#xff0c;它就像一个上图所示的放入乒乓球的圆筒…

实施 GitOps 的三个关键步骤

GitOps 是一种自动化和管理基础架构和应用程序的模型&#xff0c;通过许多团队已经使用的相同 DevOps 最佳实践来形成的模型&#xff0c;例如版本控制、代码审查和 CI/CD 流水线。在实施 DevOps 时&#xff0c;我们找到了自动化软件开发生命周期的方法&#xff0c;但在基础设施…

[附源码]Python计算机毕业设计高铁乘坐舒适性在线调查及评价系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

3399的-mipi适应多个lcd屏显示-后续2-linux内核中的修改

一、前提&#xff1a; 1. rk3399核心板 2.linux4.4.19 源码 3. 多个MIPI显示屏的启动序列以及显示时序&#xff08;重要&#xff09; 4.rk3399MIPI通道0 5.接上一个uboot中的修改配置 二、内核驱动的修改 0. dts就不再给出了&#xff0c;请参考uboot的修改 1. 主要涉及的…

基于C#开发的(WinForm)图书管理系统【100010037】

图书管理系统项目开发说明书 项目简介 项目背景&#xff08;选择这个项目的原因、前景&#xff0c;面向的用户&#xff0c;优势&#xff09;&#xff1b; * 根据学院需要希望能够充分利用现代科技来提高图书管理的效率&#xff0c;在原有的办公系统基础上进行扩展&#xff0c…

ArkUI框架,更懂程序员的UI信息语法

ArkUI框架&#xff0c;更懂程序员的信息语法ArkUI框架简化代码的“秘密” 在传统的开发过程中&#xff0c;总有个问题在困扰我&#xff1a;如何实现前端view与后端数据的同步更改&#xff1f;例如&#xff1a;在某个视频类app的页面&#xff0c;如果我想要实现视频的点击播放功…

移动端touch拖动事件和click事件冲突问题解决

通过本课程你会学到什么 1.系统掌握 Web 全栈技能树 2.网络、前后端、持久化等核心技术解析 3.全栈开发的技术比较和选型 4.拓宽技术视野&#xff0c;培养全栈思维 今天我们要接触一个和 MVC 密切相关的&#xff0c;能带来思维模式改变的编程范型——面向切面编程&#xff08;…

OpenCV StudyNote

Open CV学习 图像读取与显示 灰度图像 - 单通道 彩色图像 - 三通道 (B, G, R) 一般步骤 import cv2 as cv # 导入OpenCV支持(cv2是包的名称不是版本号) import numpy as np # 所有图像数据都是以 numpy 数组方式存储 imread(filename[,flags]) # imread 函数&am…

自助服务:怎么提高客服人员效率?

越来越多的企业意识到了客服效率的重要性&#xff0c;大家通过布局全渠道系统、智能客服机器人、人员岗前培训等方式来提升客服效率&#xff0c;为客户提供更迅速、专业、优质的服务。人员效率的提升不仅能提高客户体验&#xff0c;还有助于企业的长期发展&#xff0c;带来更多…

【Vue2+Element ui通用后台】头部

文章目录headerheader 在 components 中新建 CommonHeader.vue 组件来完成头部组件的编写 <template><div class"header-container"><div class"l-content"><el-button icon"el-icon-menu" size"mini"><…

【MySQL】索引基础介绍

一、常见的存储引擎有哪些&#xff1f;区别是什么&#xff1f; Mysql 默认的存储引擎是&#xff1a;InnoDB&#xff0c;具有支持事务、行级锁、高并发访问性能。MyIsAM&#xff1a;访问速度快&#xff0c;实际运用如果是以读和插入操作为主&#xff0c;并对事物完整性和并发性…

面向对象程序设计期末项目总结

面向对象程序设计期末项目总结 开发前准备 MysqlNavicatTomCatIDEA 一&#xff0c;配置项目环境 右键项目名&#xff0c;添加新模块 命名后右键新建的模块 选中Web模块 到此项目创建完毕&#xff0c;接下来是配置环境。 打开IDEA–>File找到Project Structure 添加所…

Pikachu(皮卡丘)靶场中SQL注入

Pikachu靶场中SQL注入1.Pikachu(皮卡丘)靶场中SQL注入1.1.数字型注入1.2.字符型注入1.3.搜索型注入1.4.xx型注入1.5.insert/update注入1.6.delete注入1.7.http头注入1.8.盲注(base on boolian)1.9.盲注(base on time)1.10.宽字节注入1.Pikachu(皮卡丘)靶场中SQL注入 若遇到不链…

基于java+springboot+mybatis+vue+mysql的冬奥会科普平台

项目介绍 基于SpringBoot框架的冬奥会科普平台利用网络沟通、计算机信息存储管理&#xff0c;有着与传统的方式所无法替代的优点&#xff0c;系统采用java语言开发&#xff0c;前端采用vue技术&#xff0c;数据库采用mysql进行数据存储。比如计算检索速度特别快、可靠性特别高…

大数据如何在制造业中进行应用?数据宝董事长汤寒林现身数字化年会讲了这个事

12月8日1670923102263472480日&#xff0c;2022中国数字化年会成功在线上举办&#xff01;本届年会以“向变而生”为主题&#xff0c;历时三天&#xff0c;特别打造了主论坛、高峰论坛与行业数智化论坛三大板块&#xff0c;60余位专家学者与来自各领域各行业数字化领军人物 通过…

前端基础(五)_CSS文本文字属性

CSS文本文字属性 1、文字属性 1.1、字号 font-size&#xff1a;38px; 浏览器默认16px; 1.2、字体 font-family: 如果字体名称包含空格&#xff0c;字体名称上加引号&#xff1b; 中文字体名称加引号&#xff1b; 多个字体名称作为一个回退系统来保存&#xff0c;如果第一个不…

什么才是写博客初心如何坚持

为何写机器人课程博客并一直坚持&#xff1f;&#xff08;2021&#xff09; 创新源自真心&#xff0c;“乱”创新的课程徒有其表&#xff0c;“不”创新的课程逐渐凋零。 个人觉得&#xff0c;课程教学创新宏观上的目标是让学生更好的认识自己并适应社会发展和变化&#xff1b…

停车场管理系统

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 主要用jsp,数据库用MySQL 分为前台用户和后台管理员 前台用户 主界面是一个区域内的两到三个停车场&#xff0c;然后 可…

virtualenv系列 (2) · 系统环境与虚拟环境

文章目录1. 怎样算是一套Python环境&#xff1f;2. 系统环境 VS 虚拟环境3. 虚拟环境最佳实践1. 怎样算是一套Python环境&#xff1f; 首先&#xff0c;我们得先弄清楚&#xff1a;怎样算是一个Python环境&#xff1f;然后再去区分系统环境和虚拟环境。简单地说&#xff0c;在…

[附源码]Python计算机毕业设计SSM基于web的家教管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…