css渐变和动画

一、渐变

1.线性渐变

属性:linear-gradient(开始位置 角度,起始颜色,终止颜色 )

  • 开始位置:渐变开始的位置,属性值可以为百分比/长度/left、right、top\bottom(可组合使用)
  • 角度:渐变终止方向的角度,当开始位置为数值或百分比的时候可用
  • 起始颜色
  • 终止颜色
  • 重复渐变:将属性修改为:repeating-linear-gradinet()
div{
    width: 300px;
    height: 100px;
    margin: 50px;
    padding: 50px;
    border: 5px groove rgba(200,60,30,0.8)
}
#div1{
    background-image: linear-gradient(red,blue)
}

输出:

在这里插入图片描述

#div2{
    background-image: linear-gradient(to left,red,blue);
}

输出:
在这里插入图片描述

 #div3{
    background-image: linear-gradient(to right bottom,red,blue);
}

输出:
在这里插入图片描述

#div4{
    background-image: linear-gradient(60deg,red,blue);
}

在这里插入图片描述

#div5{
    background-image: linear-gradient(red,blue,pink,orange);
}

在这里插入图片描述

#div6{
    background-image: linear-gradient(60deg,red 10%,blue 30%,pink 60%,orange 80%);
}

在这里插入图片描述

#div7{
    background-image: linear-gradient(60deg,red 30px,blue 80px,pink 120px,orange 300px);
}

在这里插入图片描述

#div8{
    background: repeating-linear-gradient(60deg,orange 20px,red 40px);
}

在这里插入图片描述

2.径向渐变(放射渐变)
  • 属性:radial-gradient(形状、发散方向、起始颜色、终止颜色)
  • 形状:ellipse(椭圆)/ circle(圆形)
  • 发散方向:属性值可以是left、right、top、bottom、center(可组合使用)
  • 大小(半径):属性值可用像素或关键字表示
    • closest-side:圆心到距离最近的边
    • farthest-side:圆心到距离最远的边
    • closest-corner:圆心到距离最近的角
    • farthest-corner:圆心到距离最远的角 起始颜色 终止颜色
  • 重复的径向渐变:repeating-radial-gradinet()
div{
    width: 300px;
    height: 100px;
    margin: 50px;
    padding: 50px;
    border: 5px groove rgba(200,60,30,0.8)
}
#div1{
    background-image: radial-gradient(red,blue,orange)
}

在这里插入图片描述

#div2{
   background-image: radial-gradient(circle,red,blue,orange);
}

在这里插入图片描述

#div3{
    background-image: radial-gradient(circle at top,red,blue,orange);
}

在这里插入图片描述

#div4{
    background-image: radial-gradient(circle at right top,red,blue,orange);
}

在这里插入图片描述

#div5{
    background-image: radial-gradient(circle 50px,red,blue,orange);
}

在这里插入图片描述

#div6{
            background-image: radial-gradient(circle closest-side,red,blue,orange);
        }

在这里插入图片描述

#div7{
            background-image: repeating-radial-gradient(circle 50px, red ,orange)
        }

在这里插入图片描述

二、动画效果 -(变形)

1. transform: 2D变形

通过 CSS3 转换,我们能够对元素进行移动、缩放、转动、拉长或拉伸。转换方法:

  • translate()/rotate()/scale()/skew()/matrix()
  • none 定义不进行转换。
  • translate(x,y) 定义 2D 平移转换。
  • translateX(x) 定义转换,只是用 X 轴的值。
  • translateY(y) 定义转换,只是用 Y 轴的值。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>2D动画演示</title>
    <style>
        div{
            width: 300px;
            height: 100px;
            margin-top: 50px;
            margin-left: 50px;
            padding: 0;
            background: red;
        }
        #div11,#div22,#div33,#div44,#div55,#div66{
            margin-left: 0;
            background: blue;
        }
        #div11:hover{
            transform: translate(30px,30px);
        }
        #div22:hover{
            transform: scale(0.8,0.5);
            transform-origin: left top;
        }
        #div33:hover{
            transform: rotate(30deg);
            transform-origin: left top;
            /* transform-origin: 30px 30px; */
            /* transform-origin: 30% 30%; */
        }
        #div44:hover{
            transform: skewX(30deg);
            /* transform: skewY(30deg); */
            /* transform: skew(30deg,45deg); */
        }
        #div55:hover{
            transform: matrix(1,0.3,0,1,0,0);
        }
        #div66:hover{
            transform: scale(0.8,0.5) rotate(30deg);
        }
    </style>
</head>
<body>
    <div id="div1"><div id="div11">平移</div></div>
    <div id="div2"><div id="div22">缩放</div></div>
    <div id="div3"><div id="div33">旋转</div></div>
    <div id="div4"><div id="div44">倾斜</div></div>
    <div id="div5"><div id="div55">矩阵</div></div>
    <div id="div6"><div id="div66">多重变形</div></div>
    <br><br><br><br><br><br><br><br><br><br><br><br><br>
</body>
</html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • scale(x,y) 定义 2D 缩放转换。
  • scaleX(x) 通过设置 X 轴的值来定义缩放转换。
  • scaleY(y) 通过设置 Y 轴的值来定义缩放转换。

  • rotate(angle) 定义 2D 旋转,在参数中规定角度。
    • 补充 :角度也可以使用弧度单位:rad

  • skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜转换
  • kewX(angle) 定义沿着 X 轴的 2D 倾斜转换。
  • skewY(angle) 定义沿着 Y 轴的 2D 倾斜转换。

  • matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。
  • 变形矩阵功能很强大,但是相对比较复杂,涉及到复杂的数学计算,在本章中暂不作详细讲解。

  • transform-origin:改变元素变形的基准点
    • 像素/百分比
    • X 轴:left/right/center
    • Y 轴:top/bottom/center/
2. transform 3D变形
  • transform:3D 变形可以近似理解为沿着 Z 轴移动元素,使得元素更加靠近或者远离你,从而使元素看起来变得更大或更小。

  • transform:3D 变形函数

    • translate3d(x,y,z) 定义 3D 转换。
    • translateY(y) 定义转换,只是用 Y 轴的值。
    • translateX(x) 定义转换,只是用 X 轴的值。
    • translateZ(z) 定义 3D 转换,只是用 Z 轴的值
  • rotate3d(x,y,z,angle) 定义 3D 旋转。

    • rotateX(angle) 定义沿着 X 轴的 3D 旋转。
    • rotateY(angle) 定义沿着 Y 轴的 3D 旋转。
    • rotateZ(angle) 定义沿着 Z 轴的 3D 旋转。
  • scale3d(x,y,z) 定义 3D 缩放转换。

    • scaleZ(z) 通过设置 Z 轴的值来定义 3D 缩放转换。

    • scaleX(x) 通过设置 X 轴的值来定义缩放转换。

    • scaleY(y) 通过设置 Y 轴的值来定义缩放转换

    • matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 定义 3D转换,使用 16 个值的 4x4 矩阵。

  • transform-origin 允许你改变被转换元素的位置。2D 转换元素能够改变元素 x 和 y 轴。3D 转换元素还能改变其 Z 轴

    • perspective(n) 为 3D 转换元素定义透视视图。
    • transform-style 规定被嵌套元素如何在 3D 空间中显示。
    • flat 子元素将不保留其 3D 位置。
    • preserve-3d 子元素将保留其 3D 位置
  • perspective-origin 规定 3D 元素的底部位置。 目前浏览器都不支持 perspective-origin 属性,暂不讲解

  • backface-visibility 定义元素在不面对屏幕时是否可见。浏览器支持度不好,暂不讲解

三、动画效果 - 过渡

1. 过渡动画
  • 通过 CSS3,我们可以在不使用 Flash 动画或 JavaScript的情况下,当元素从一种样式变换为另一种样式时为元素添加效果。
  • CSS3 过渡是元素从一种样式逐渐改变为另一种的效果。要实现这一点,必须规定两项内容:把效果添加到哪个CSS 属性上/规定效果的时长。
2. 过渡动画的属性
  • transform 简写属性,用于在一个属性中设置四个过渡属性。
    • transform-property 规定应用过渡的css属性的名称
    • none 没有属性会获得过渡效果。
    • all 所有属性都将获得过渡效果。
    • 属性名称
  • transform-duration 定义过渡效果花费的时间,默认是0。单位是秒或毫秒。
  • transform-timing-function 规定过渡效果的时间曲线。默认是‘ease’。
    • 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 之间的数值。
  • transition-delay 规定过渡效果何时开始。默认是0。

四、动画效果-关键帧动画

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值