前端学习笔记10

前端学习笔记10

一、过渡属性

过渡属性 transition 是实现css动效的属性。

transition: 属性名称 动画持续时间 运动曲线 延迟时间;

我们可以来写一下代码:

div{
    width: 200px;
    height: 200px;
    background: skyblue;
    transition: height 2s linear 1s;
}
div:hover{
    height: 300px;
}

如何单独控制transition的某个属性值:

transition-property
transition-duration
transition-timing-function
transition-delay

如果我们鼠标移上元素,想要有多个属性,如宽、高和背景都同时改变,显然 transition-property 的值,就不能只写一个属性的名称,而该写 all,如:

transition: all 2s linear;

补充

多值写法:

transition: height 2s linear, background 1s linear;

二、转换属性

转换属性 transform 可将元素进行旋转、位移和缩放等转换。

旋转Rotate
transform: rotateX() rotateY() rotateZ();

值与值之间以空格隔开,单位为deg。

位移Translate
transform: translateX() translateY() translateZ();

值与值之间以空格隔开,单位为px。

缩放Scale
transform: scaleX() scaleY() scaleZ();

值为数值,值与值之间以空格隔开,无单位。

translate实现未知宽高的盒子居中

https://blog.csdn.net/mr_fzz/article/details/53081452

三、旋转中心点和旋转轴

我们可以通过 transform-origin 这个属性配合旋转来控制元素的旋转中心点和旋转轴。

配合Transform:rotate()做旋转中心点的设置,两个值,单位可以是px %

参考的点是元素的左上角(px)

写%参考点是元素宽度和高度

配合Transform:rotateY()/rotateX()做旋转轴的设置。

值可以只写一个方向词:left/right/center/top/bottom

<!--旋转轴案例-->
<style>
    div{
        margin:100px auto;
        width: 200px;
        height: 200px;
        border: 1px solid #000;

    }
    img{
        transition: all .6s;
        transform-origin:right;
    }
    div:hover img{
        transform: rotateY(180deg);
    }

</style>

<div><img src="images/shn.jpg" alt=""></div>

四、开门案例

transform-style:preserve-3d; 让元素及其内部元素(子元素)的转换呈现3D效果,需要配合透视属性(景深属性)来做:

perspective: 700px; (一般我们会给700px~1500px);

css3属性perspective(可以理解为 人眼到物体的距离)

五、构建立体面案例

 <style>
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        .box,ul, li{
            width: 200px;
            height: 200px;
        }
        .box{
            border: 1px solid #000;
            margin: 100px auto;
            perspective: 700px;
        }
        .box ul{
            position: relative;
            transform-style: preserve-3d;
            transition:all 1s;
        }
        .box li{
            position: absolute;
            left: 0;top: 0;
        }
        .box li:nth-of-type(1){
            background-color: pink;
            transform:translateZ(100px);
            /*opacity: .7;*/
        }
        .box li:nth-of-type(2){
            background-color: skyblue;
            transform:rotateX(-90deg) translateZ(100px);
        }
        .box:hover ul{
            transform:rotateX(90deg);
        }
    </style>
    <div class="box">
        <ul>
            <li>前面</li>
            <li>底面</li>
        </ul>
    </div>

六、动画属性

过渡属性 animation 是实现css动效的属性。

selector {
    animation: 动画名称 动画持续时间 运动曲线 重复次数 往复运动;
}

@keyframes 动画名称 {
    0% { css状态 }
    50% { css状态 }
    100% { css状态 }
}

其中,0%和100%可以写为 fromto

运动曲线:值多为 linear

重复次数:没有单位,值为数值。如果是无数次,值为 infinite

动画持续时间 运动曲线 重复次数 往复运动;
}

@keyframes 动画名称 {
0% { css状态 }
50% { css状态 }
100% { css状态 }
}


其中,0%和100%可以写为 `from` 和 `to` 。

运动曲线:值多为 `linear` 。

重复次数:没有单位,值为数值。如果是无数次,值为 `infinite` 。

往复运动:表示是否往复执行动画,如是,则值为 `alternate`, 如否,则不写。



Demo
1、[各种效果](http://8.130.24.41/demo/homework18.html)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ibabysit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值