2d过渡

160 阅读2分钟

2d过渡

转换是css3的颠覆性特效之一,可以进行平移,翻转,缩放,变形,甚至支持矩阵变换,取代之前flash才能实现的特效。css3的布局不会影响原来的布局。 2D过渡通常指的是在2D平面内实现的图形或图像的过渡效果。这可以通过许多方式实现,例如使用平移、缩放、旋转、淡入淡出、形状变化等。

以下是一些实现2D过渡效果的常见技术和方法:

  1. 平移:通过移动对象的位置来实现过渡效果,例如从左到右或从上到下平移。
  2. 缩放:通过增加或减小对象的大小来实现过渡效果,例如从小到大或从大到小缩放。
  3. 旋转:通过将对象绕中心点旋转来实现过渡效果,例如从左转到右或从上到下旋转。
  4. 淡入淡出:通过调整对象的透明度来实现过渡效果,例如从不透明到透明或从透明到不透明淡入淡出。
  5. 形状变化:通过改变对象的形状来实现过渡效果,例如从圆形变成正方形或从三角形变成梯形。

下面是一个使用CSS3实现2D过渡效果的例子,通过旋转和缩放实现一个DIV元素在鼠标悬停时的过渡效果:

HTML代码:

bashCopy code
<div id="box"></div>

CSS代码:

cssCopy code
#box {
    width: 100px;
    height: 100px;
    background-color: blue;
    transition: transform 0.5s ease-in-out;
}

#box:hover {
    transform: rotate(180deg) scale(1.5);
}

在这个例子中,当鼠标悬停在#box元素上时,CSS属性transform将被过渡动画修改,使#box元素在0.5秒内以180度旋转并放大1.5倍,从而实现了过渡效果。

<!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>
        html,body,div,li, ul {
            padding: 0;
            margin: 0;
        }
		ul {
            list-style: none;}
		li {
            width: 100px;
            height: 100px;
            border: 5px solid blue;
            margin: 10px;
            transition: all 1s linear;
        }
        /*translate(x,y) 向左向下平移*/
        li:nth-child(1):hover {
            transform: translate(10px, 10px);
        }
        /*scale(x,y) 缩放,先水平方向上进行缩放,再垂直方向上进行缩放*/
        li:nth-child(2):hover{
            transform: scale(2,0.5);
        }
        /*tansform-origin:设置旋转的原点 rotate(50deg)顺时针方向上旋转*/
        li:nth-child(3):hover{
		transform-origin: 50px 50px;
		transform: rotate(50deg)
        }
        /*skew(x,y):式元素进行一定角度上的倾斜*/
        li:nth-child(4):hover{
		transform:skew(30deg,0deg) ;
        }
    </style>
</head>

<body>

    <ul class="list">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>

</body>

</html>