CSS(八)-- 变形(过渡、动画、平移、旋转、缩放)

摘要:
目录1。过渡1.1。过渡特性:指定过渡1.2的特性。转换持续时间:执行转换1.3所需的时间。过渡时间函数:用于通过Bezier曲线指定步骤()的时间序列函数,以逐步执行过渡效果1.4。转换延迟:转换效果的延迟,等待一段时间,然后执行1.5转换:可以同时设置

目录

1.过渡(transition)
  • 通过过渡可以指定一个属性发生变化时的切换方式

1.1transition-property:指定执行过渡的属性

  • 多个属性使用“,”隔开,如果所有属性都需要过渡,则使用all关键字
  • 大部分属性都支持过渡效果
  • 注意:过渡必须是从一个有效数值向另外一个有效数值过渡

1.2transition-duration:执行过渡需要的时间

  • 时间单位:s、ms

1.3transition-timing-function:过得的时序函数

  • ease(默认值):慢速开始,先加速,再减速
  • liner:匀速运动
  • ease-in:加速运动
  • ease-out:减速运动
  • ease-in-out:先加速后减速

通过贝塞尔曲线指定

transition-timing-function:cubic-bezier(.25,.1,.25,1)

贝塞尔曲线生成网址:(https://cubic-bezier.com)

steps()分步执行过渡效果

  • 第一个值:要分步执行的个数
  • 第二个值:
    • end:在时间结束是执行过渡
    • start:在时间开始时执行过渡

1.4 transition-delay:过渡效果的延迟,等待一段时间后再执行

transition-delay:2s;

1.5transition:可以同时设置过渡相关的所有属性

  • 只有一个要求,如果要写延迟,则两个时间中第一个是持续时间,第二个是延迟
tansition:2s(持续时间) margin-left(执行属性) 1s(延迟时间);
2.动画(animation)
  • 动画和过渡类似,都是可以实现一些动态的效果,不同的是过渡需要在某个属性发生变化时才会触发,动画可以自动触发动态效果
  • 设置动画效果必须先要设置一个关键帧,关键帧设置了动画执行每一个步骤

2.1设置项

@keyframes

@keyframes test{
      /*from表示动画的开始位置 也可以使用0% */
      from{
            margin-left:0;
      }
      /*动画结束的位置,也可以使用100%*/
      to{
            margin-left:700px;
      }
}

animation-name:引用设定好的@keyframes

animation-name:动画执行时间

animation-delay:设置动画的延时

animation-timing-function:设置移动类型(匀速、加速等)

animation-iteration-count:动画执行的次数

-infinite:无限执行

animation-direction:改变执行的方向

  • normal:默认值,每次都是从to向from运行
  • reverse:反向,从to向from运行
  • alternate:从from向to运行 重复执行动画时反向运行(类似于碰撞效果)
  • alternate-reverse:从to到from运行 重复执行动画时反向执行

animation-play-state:设置动画的执行状态

可选值

  • running(默认值):动画执行
  • paused:动画暂停
    • 当鼠标移入时动画暂停
.box1:hover div{
      animation-play-state:paused;
}

animation-fill-mode:动画的填充模式

可选值:

  • none(默认值):动画执行完毕回到初始位置
  • forwards:执行完毕后停在终点位置
  • backwards:元素在delay时就会处于from的状态
  • both:具备forwards和backwards的特点

animation:简写版本

和transition一样,除了持续时间必须在延迟时间前外,其他的属性都没有顺序要求

示例

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1{
             100px;
            height: 100px;
            margin: 0 auto;
            background-image: url(./image/trump_run.png);
            animation: run 1s steps(6) infinite;
        }

        /*创建关键帧  */
        @keyframes run{
            form{
                background-position: 0 0;
            }
            to{
                background-position:-600px 0 ;
            }
        }
    </style>
</head>
<body>
    <div class="box1">

    </div>
</body>
</html>
3.变形平移

变形就是指通过CSS来改变元素的形状或位置,变形不会影响到页面的布局
,transform用来设置元素的变形效果

3.1平移

translateX() 沿着x轴方向平移

transform:translateX(100px);
transform:translateX(50%);//平移元素百分比是相对于自身计算的

translateY() 沿着y轴方向平移

让元素居中

  • 水平居中
.box{
      background-color:black;
      position:absolute;
      left:50%;
      transform:translateX(-50%);
}
  • 垂直居中
.box{
      background-color:black;
      position:absolute;
      top:50%;
      transform:translateY(-50%);
}

3.2translateZ() 沿着z轴方向平移

  • 正常情况就是调整元素和人眼之间的距离
    距离越大,元素离人越近

  • z轴平移属于立体效果(近大远小),默认情况下网页是不支持透视,如果需要看见效果必须要设置网页的视图

  • 视距:perspective

html:perspective:800px;
.box1{
      200px;
      height:200px;
      background-color:#bfa;
      margin:20px auto;
      transtion:2s;
}
body:hover .box1{
      transform:translateZ(200px);
}
4.旋转
  • 通过旋转可以使元素沿着x、y或z轴旋转指定的角度
    rotateX()
    rotateY()
    rotateZ()
transform:rotateZ(180deg)

可选值:deg,turn

  • 30deg:30度
  • .5turn:半圈
transform:rotateZ(.5turn)

backface-visibility:设置是否显示元素的背面

  • visible:显示;
  • hidden:不显示;
5.设计时钟
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }

        .sec{
            height: 50%;
            4px;
            background-color: red;
            margin:0 auto;
            
        }

        .sec-wrapper{
            position:absolute;
            height:100%;
            100%;
            top:0;
            left:0;
            bottom:0;
            right:0;
            margin:auto;
            background-color:none;
            animation: run 60s infinite;

        }
        .clock{
             500px;
            height: 500px;
            margin:0 auto;
            margin-top:100px;
            border-radius:50%;
            border:10px solid black;
            position: relative;
            
        }
        .hour-wrapper{
            position:absolute;
            height:55%;
            55%;
            top:0;
            left:0;
            bottom:0;
            right:0;
            margin:auto;
            background-color:none;
            animation: run 43200s infinite;
        }
        .hour{
            height: 50%;
            4px;
            background-color: black;
            margin:0 auto;
            z-index: 3;
          
        }
        .min-wrapper{
            position:absolute;
            height:75%;
            60%;
            top:0;
            left:0;
            bottom:0;
            right:0;
            margin:auto;
            background-color:none;
            animation:run 3600s infinite;
        }
        .min{
            height: 50%;
            4px;
            background-color: rgb(28, 224, 77);
            margin:0 auto;
            z-index: 2;
            
        }

        /* 旋转的关键帧 */
        @keyframes run{
            from{
                transform:rotateZ(0);
            }
            to{
                transform:rotateZ(360deg);
            }
        }

    </style>
</head>
<body>
    <div class="clock">
        <div class="sec-wrapper">
            <div class="sec"></div>
        </div>
        <div class="min-wrapper">
            <div class="min"></div>
        </div>
        <div class="hour-wrapper">
            <div class="hour"></div>
        </div>
    </div>
</body>
</html>
6.缩放
  • 对元素进行缩放
    scaleX():水平方向
    scaleY():垂直方向
    scale:两方向同时
7.设置变形的原点,默认值center

transform-origin:20px 20px;
解释:例如缩放,变形原点是中心,当设置为transform-origin:0px 0px;后变形原点就变为左上角
那么缩放就只能在右和下方缩放

免责声明:文章转载自《CSS(八)-- 变形(过渡、动画、平移、旋转、缩放)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Visio 时序图[CSDN-Word教程]自动完成Word 日常任务下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

第二章 JSP页面制作基础

第二章  JSP页面制作基础 [本章导读] JSP页面将Java代码嵌入到HTML脚本中,掌握HTML语言是学习JSP的基础。HTML是网页制作的一种规范,一种标准,它通过标记符来标记网页的各个部分。本章首先介绍用HTML制作网页的各种标记符的设置方法,接着介绍了CSS的基本概念和使用方法。此外,为了增强读者对网页制作的了解,介绍了Dreamweaver的...

过渡(transition) 动画(animation)

过渡(transition) 1.transition   -通过过渡可以指定一个属性发生变化时的切换效果,通过过渡可以创建一些好的效果,提升用户体验。   -可以同时设置过渡相关的所有属性,只有一个要求,如果要写延迟,则俩个时间中第一个是持续时间,第二个是延迟时间。 2.transition-property(指定要执行过渡的属性)   -多个属性间用“...

Unity中DoTween的使用

在Unity手游开发中,经常用到插值运算,我们可以使用Mathf.Lerp自行去实现效果,但是使用插件提高了我们的开发效率,这里归结一下DoTween的基本使用方式以及效果说明: 直接代码: 1 using DG.Tweening; 2 using System.Collections; 3 using System.Collections...

CSS 属性选择器的深入挖掘

CSS 属性选择器,可以通过已经存在的属性名或属性值匹配元素。 属性选择器是在 CSS2 中引入的并且在 CSS3 中得到了很好拓展。本文将会比较全面的介绍属性选择器,尽可能的去挖掘这个选择器在不同场景下的不同用法。 简单的语法介绍 [attr]:该选择器选择包含 attr 属性的所有元素,不论 attr 的值为何。 [attr=val]:该选择器仅选...

更改file文件上传默认CSS样式

前言: 多数时候我们需要表单上传文件,如图片。但是浏览器默认的input[file]样式很不友好, 需要我们自己手动修改. 如图基于bootstrap布局的表单, 但file文件上传样式不敢恭维. 1 <div class="form-group"> 2 <label for="avatar" class="col-md...

CSS拾遗

1:CSS样式的声明 选择符{ 属性:值; 属性:值; 。。。 } 其中,选择符有: 标签选择器:标签名{样式} 类选择器: .类名{样式} ID选择器: #ID名{样式} 另外:样式属性的书写格式为:小写单词,用 - 分割。 比如:font-size 、 font-family 2:注释 /*注释*/ 3:CSS可以出现...