HTML5+CSS3学习笔记第九天

web页面动态效果
1.平面转换(一般和过渡配合使用)
  • 改变盒子在平面内的形态(位移、旋转、缩放、倾斜)
<style>
    div{
      margin-top: 50px;
      width: 100px;
      height: 100px;
      background-color: pink;
      transition: all 1s;
    }
    div:hover{
      /*平移、旋转、放大、倾斜*/
      transform: translate(800px) rotate(360deg) 
                 scale(2) skew(180deg);
    }
  </style>
  • 平移——transform : translate(x轴移动距离,Y轴移动距离)

​ (右下为正方向,左上为负方向)

​ 属性值:px|百分比(参照盒子自身尺寸)|正负值都可

注意:translate()只写一个值,表示沿着x轴移动

​ 单独设置X或Y轴移动距离:translateX()或translateY()

  • 平移实现定位居中

    • 方法一 :先移到中间,再计算盒子宽高的一半向上向左移动

      position:absolute;
      left:50%;
      top:50%;
      margin-left:-100px;
      margin-top:-50px;
      width:200px;
      height:100px;
      
    • 方法二:不用计算盒子宽高,使用平移百分比的方式移动

      position:absolute;
      left:50%;
      top:50%;
      transform:translate(-50%,-50%);
      
  • 旋转——transform : rotate(度数deg)

  • 改变转换原点——transform-origin:水平原点位置 垂直原点位置

    位置取值:

    • 方位名词(left、top、right、bottom、center)
    • 像素单位取值
    • 百分比
  • 多重转换——transform: translate rotate scale skew

    • 以第一种转换形态的坐标轴为准,所以要想边平移边旋转就要将平移放到旋转前面,否则旋转会改变坐标轴方向;
  • 缩放

    transform : scale(倍数)|transform : scale(x轴缩放倍数,Y轴缩放倍数)

  • 倾斜——transform : skew(度数deg)

  • 渐变

    • 线性渐变——background-image:linear-gradient ( 渐变方向:to+方位词|角度[默认从上到下],

      ​ 颜色1 终点位置,

      ​ 颜色2 终点位置,

      ​ …);

    • 径向渐变——由中间向外变化(通常给按钮添加高光效果)

      background-image:radial-gradient ( 半径[可以写两条] at 圆心位置,

      ​ 颜色1 终点位置,

      ​ 颜色2 终点位置,

      ​ …);

2.空间转换
  • 空间:由XYZ三条坐标轴构成例题空间,前、右、下为真正方向。
  • 平移:transform : translate3d ( x , y , z ) | translateX | translateY |translateZ

​ (由于电脑是平面,默认情况下无法观察到Z轴的移动效果)

  • 解决无法观察到Z轴移动距离的问题

    视距perspective——指定观察者与z=0平面的距离,为元素添加透视效果(近大远小)

    perspective: 视距;(取值范围通常为800-1200)——要添加给直接父级

  • 旋转:transform : rotateZ(值) | rotateX|rotateY(正值旋转方向遵循左手法则,给父级增加perspective视距)

  • 立体呈现 : tranform-style——设置元素的子元素是位于3D空间还是平面

    • flat :子级处于平面
    • perserve-3d : 子级处于3D空间
  • 缩放:transform : scale3d (x,y,z) |scaleX|scaleY|scaleZ

3.动画——animation

*与过渡的区别:可以实现多个状态之间的变化过程,并且可控重复播放,是否暂停,最终画面等

  • 实现步骤:

    • 1.定义动画

      两个状态:

      @keyframs 动画名称 {

      ​ from {}

      ​ to{}

      }

      多个状态:百分比表示动画时长的百分比

      @keyframs 动画名称{
      0%{}
      ​ 10%{}
      ​ …
      ​ 100%{}
      }

    • 2.使用动画:(属性值不分先后)

      animation : 动画名称 动画花费时长 速度曲线(linear匀速|steps(数字)分步) 延迟时间 重复次数(infinite无限循环) 动画方向(alternate反向) 执行完毕时状态(forwards停到结束状态);

      *拆分属性:

    属性作用取值
    animation-name动画名称
    animation-duration动画时长
    animation-delay延迟时间
    animation-fill-mode动画执行完毕时状态forwards:最后一帧状态 backwards:第一帧状态
    animation-timing-function速度曲线steps(数字):逐帧动画
    animation-iteration-count重复次数infinite为无限循环
    animation-direction动画执行方向alternate为反方向
    animation-play-state暂停动画paused为暂停,通常配合:hover使用
 <style>
    .box{
      width: 200px;
      height: 100px;
      background-color: pink;
      animation: change 1s; 
    }
    /* 动画一:宽度从200变成800 */
    @keyframes change{
      from{
        width: 200px;
      }
      to {
        width: 800px;
      }
    }
  </style>
</head>
<body>
  <div class="box"></div>
</body>
</html>

注:HTML5+CSS3基础知识到这基本就都学完啦~撒花!!!其实不止学了九天,学了有十几天,下一步!JS 我来啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

学习使我快乐01

您的支持,是我前行的动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值