CSS动画--页面特效

本章内容

  1. 2D、3D转换
  2. 过渡
  3. 动画
  4. 多列
  5. 瀑布流效果

 2D、3D转换
通过CSS3转换,我们能够对元素进行移动、缩放、转动、拉长或拉伸

转换是使元素改变形状、尺寸和位置的一种效果
可以使用2D、3D来转换元素

2D转换方法

translate()
rotate()
scale()
matrix()

3D转换方法

rotateX()
rotateY()

示例:

这里写图片描述

<body>
    <div>第一个div</div><br/>
    <div class="div2">第er个div</div>
    <div class="div3">第3div</div>
    <div class="div4">第4div</div>
    <div class="div5">第5div</div>
    <div class="div6">第6div</div>
</body>
div{
    width: 100px;
    height: 100px;
    background-color: aquamarine;
}
.div2{
    transform: translate(200px,100px);
    -webkit-transform: translate(200px,100px);/*safari chrome*/
    -ms-transform: translate(200px, 100px);/*IE*/
    -o-transform: translate(200px, 100px);/*opera*/
    -moz-transform: translate(200px, 100px);/*Firefox*/
}
.div3{
    transform: rotate(200deg);
    -webkit-transform: rotate(200deg);/*safari chrome*/
    -ms-transform: rotate(200deg);/*IE*/
    -o-transform: rotate(200deg);/*opera*/
    -moz-transform: rotate(200deg);/*Firefox*/
}
.div4{
    margin-top: 100px;
    transform: scale(1,2);
    -webkit-transform: scale(1,2);/*safari chrome*/
    -ms-transform:scale(1,2);/*IE*/
    -o-transform: scale(1,2);/*opera*/
    -moz-transform: scale(1,2);/*Firefox*/
}
.div5{
    margin-left: 150px;
    transform: skew(20deg, 20deg);
    -webkit-transform: skew(20deg, 20deg);/*safari chrome*/
    -ms-transform:skew(20deg, 20deg);/*IE*/
    -o-transform: skew(20deg, 20deg);/*opera*/
    -moz-transform: skew(20deg, 20deg);/*Firefox*/
}
.div6{
    transform: rotateY(120deg);
    -webkit-transform: rotateY(120deg);/*safari chrome*/
    -ms-transform:rotateY(120deg);/*IE*/
    -o-transform: rotateY(120deg);/*opera*/
    -moz-transform: rotateY(120deg);/*Firefox*/
}

过渡
通过使用CSS3,可以给元素添加一些效果
CSS3过渡是元素从一种样式转换成另一种样式

动画效果的CSS
动画执行的时间

属性
transition              设置四个过渡属性

transition-property     过渡的名称

transition-duration     过渡效果花费的时间

transition-timing-function      过渡下过的时间曲线

transition-delay        过渡效果开始时间

示例:

这里写图片描述

<body>
    <div></div>
</body>
div{
    width: 100px;
    height: 100px;
    background-color: aquamarine;
    transition:width 2s, height 2s, transform 2s;
    transition-delay: 2s;
}
div:hover{
    width: 200px;
    height: 200px;
    transform: rotate(360deg);
    -webkit-transform: rotate(360deg);
}


动画
通过CSS3,也可以进行创建动画
CSS3的动画需要遵循@keyframes规则
规定动画的时长
规定动画的名称

示例:

这里写图片描述

<body>
    <div>anim</div>
</body>
div{
    width: 100px;
    height: 100px;
    background-color: aquamarine;
    position: relative;
    animation: anim 5s infinite alternate;
    -webkit-animation: anim 5s infinite alternate;
}
@keyframes anim{
    0%{background: red; left:  0px; top: 0px}
    25%{background: blue; left: 200px; top: 0px}
    50%{background: #ccffcc; left: 200px; top: 200px}
    75%{background: #00ff00; left: 0px; top: 200px}
    100%{background: red; left:  0px; top: 0px}
}
@-webkit-keyframes anim {
            0%{background: red; left:  0px; top: 0px}
            25%{background: blue; left: 200px; top: 0px}
            50%{background: #ccffcc; left: 200px; top: 200px}
            75%{background: #00ff00; left: 0px; top: 200px}
            100%{background: red; left:  0px; top: 0px}
        }


多列
在CSS3中,可以创建多列来对文本或者区域进行布局
属性
column-count
column-gap
colume-rule

示例:

这里写图片描述

.div1{
    column-count: 4;
    column-gap: 50px;
    -webkit-column-count: 4;
    -webkit-column-gap: 50px;
    -webkit-column-rule: 5px outset #FF0000;
    column-rule: 5px outset #FF0000;
}


瀑布流效果

示例:
这里写图片描述

<body>
    <div class="container">
        <div><img src="a.jpg"> <p>便签</p></div>
        <div><img src="b.jpg"></div>
        <div><img src="c.jpg"></div>
        <div><img src="d.jpg"></div>
        <div><img src="e.jpg"><p>便签</p></div>
        <div><img src="f.jpg"></div>
        <div><img src="g.jpg"></div>
        <div><img src="h.jpg"><p>便签</p></div>
        <div><img src="i.jpg"></div>
    </div>
</body>
.container{
    column-width: 250px;
    -webkit-column-width: 250px;
    column-gap: 5px;
    -webkit-column-gap: 5px;
}
.container div{
    width: 250px;
    margin: 5px 0;
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值