网页设计基础第十讲:DH商城导航栏CSS3动画效果学CSS3转换(一)

2,271 阅读4分钟

本文通过任务描述、任务实施、实验实训三部分,深入浅出地介绍了如何运用CSS3的平移、旋转、缩放、倾斜等转换属性,为DH商城的导航链接添加生动的动画效果。

任务描述

简要介绍项目背景,明确学习目标。阐述DH商城导航栏的设计需求,包括期望达到的动画效果及其在用户体验上的重要性。 image.png 对DH商城导航链接做平移、旋转、缩放、倾斜等变化

知识回顾

CSS3转换是一些效果的集合,如平移、旋转、缩放、倾斜效果。每个效果都可以称为变形(transform),它们可以分别操控元素发生平移、旋转、缩放、倾斜等变化。

语法

transform:[transform-function] *;

其中transform-function是转换的的效果,同时可以使用多个效果进行组合,之间使用空格分隔。

常用转换效果

效果说明
translate()平移函数,基于X、Y坐标重新定位元素的位置
scale()缩放函数,可以使任意元素对象尺寸发生变化
rotate()旋转函数,取值是一个度数值
skew()倾斜函数,取值是一个度数值
matrix()把所有 2D 转换方法组合在一起

每一种效果又包含分别基于X、Y坐标的效果,如scaleX()、scaleY()

对转换的讲解将使用以下基础代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>css动画效果基础案例</title>
    <style>
          li{
        list-style: none;
        float: left;
        width: 80px;
        line-height: 40px;
        background: rgba(242, 123, 5, 0.61);
        border-radius: 6px;
        font-size: 16px;
        margin-left: 3px;
    }

    li a{
        text-decoration: none;
        color: #fff;
        display: block;
        text-align: center;
        height: 40px;
    }

    li a:hover{
        background: rgba(242, 88, 6, 0.87);
        border-radius: 6px;
    }
    li a:hover{
    transform: translate(4px,8px);
    -webkit-transform: translate(4px,8px);
    -o-transform: translate(4px,8px);
    -moz-transform: translate(4px,8px);
}

    </style>
</head>
<body>
    <h1>欢迎来到DH商城</h1>
    <ul>
        <li><a href="#">服装城</a></li>
        <li><a href="#">美妆馆</a></li>
        <li><a href="#">超市</a></li>
        <li><a href="#">全球购</a></li>
        <li><a href="#">闪购</a></li>
        <li><a href="#">团购</a></li>
        <li><a href="#">拍卖</a></li>
        <li><a href="#">金融</a></li>
    </ul>
</body>
</html>

任务实施

位移变换效果实现

以元素的左上角为坐标点,进行平移 image.png 语法

translate(tx,ty);/*向两个方向平移*/
translateX(tx);/*水平方向平移*/
translateY(ty);/*垂直方向平移*/

其中:

  • tx:水平方向的平移量,正数为向右平移。
  • ty:垂直方向的平移量,正数为向下平移。

示例

li a:hover{
    transform: translate(4px,8px);
    -webkit-transform: translate(4px,8px);
    -o-transform: translate(4px,8px);
    -moz-transform: translate(4px,8px);
}

旋转效果实现

以元素的中心为坐标进行旋转

image.png

语法

rotate(a);/*水平面旋转*/
rotateX(a);/*环绕X坐标旋转*/
rotateY(a);/*环绕Y坐标旋转*/

其中:

a:旋转的角度,单位为deg,正数为顺时针旋转

示例

li a:hover{
    transform: rotate(-70deg);
    -webkit-transform: rotate(-70deg);
    -moz-transform: rotate(-70deg) ;
    -o-transform: rotate(-70deg);
}

缩放效果实现

以元素的中心为坐标,实现水平和垂直方向缩放

image.png 语法

scale(sx,sy);/*水平、垂直方向缩放*/
scaleX(sx);/*水平方向缩放*/
scaleY(sy);/*垂直方向绽放*/

其中:

1、sx:水平方向放大的倍数,正数为放大

2、sy:垂直方向放大的倍数,正数为放大

示例

li a:hover{
    transform: scale(1.5);
    -webkit-transform: scale(1.5);
    -moz-transform: scale(1.5);
    -o-transform: scale(1.5);
}

倾斜效果实现

倾斜的坐标系和数学中的坐标系完全不一样。倾斜以元素的左上角为原点,竖直向下为x方向,水平向右为y方向,

image.png

语法

skew(sx,sy);/*两个方向分别相对X、Y坐标倾斜*/
skewX(sx);/* 垂直方向相对X坐标倾斜*/
skewY(sy);/*水平方向相对Y坐标倾斜*/

其中

  • sx:垂直方向倾斜的角度,单位deg,正数向右偏移,即逆时针方向偏移
  • sy:水平方向倾斜的角度,单位deg,正数向下偏移,即顺时针方向偏移

示例

li a:hover{
    transform: skewX(40deg);
    -webkit-transform: skewX(40deg);
    -moz-transform: skewX(40deg);
    -o-transform: skewX(40deg);
}

实验实训

实验一:图片墙效果

1、在项目中创建网页pic-wall.html

2、多张图片在网页中随机放置(使用偏移实现)。图片随机旋转和倾斜。

3、当鼠标悬浮时,图片显示在最上层(z-index),放大1.5倍。不倾斜不旋转

悬浮前效果:

image.png 悬浮后效果:

image.png