Web学习

本文详细介绍了网页Web和平面转换的相关技术,包括Lodash中文文档、移动Web的学习资源、以及平面转换的各种效果如平移、旋转、改变转换原点、缩放、倾斜和渐变。此外,还探讨了平移实现居中效果、双开门效果的CSS实现,以及动画和逐帧动画的应用。内容覆盖了CSS3的transform属性、空间转换、视距perspective以及动画的关键帧动画和速度曲线等重要概念。
摘要由CSDN通过智能技术生成

网页Web

Lodash中文文档
swiper官网

移动 Web

移动 Web学习链接

平面转换 transform

作用:为元素添加动态效果,一般与过度配合使用
概念:改变盒子在平面内的形态(位移、旋转、缩放、倾斜)

平面转换又叫 2D 转换

平面转换 - 平移

属性:  transform: translate(x轴移动距离, y轴移动距离);
取值:  像素单位数值
        百分比(参照盒子自身尺寸计算结果)
        正负均可
技巧:  translate() 只写一个值,表示沿Xz轴移动
        单独设置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%);
双开门效果
// 1. 布局:父子结构,父级是大图,子级是左右小图
.father {
    margin: 0 auto;
    width: 1366px;
    height: 600px;
    overflow: hidden;
}

.father .left,
.father .right {
    width: 50%;
    height: 600px;
    background-image: url(./image.jpg);
    transition: all 0.5s;
}

.father .right {
    // right 表示取到精灵图右面的图片
    background-position: right 0;

}
// 2. 鼠标悬停效果:左右移动
.father:hover .left {
    transform: translate(-100%);
}

.father:hover .right {
    transform: translateX(100%);
}

平面转换 - 旋转

属性:   transform: rotate(旋转角度);
单位:   deg
技巧:   
    取值正负均可
    取值为正,顺时针旋转
    取值为负,逆时针旋转

平面转换 - 改变转换原点

默认情况下,转换原点是盒子中心点
属性:   transgorm-origin: 水平原点位置 垂直原点位置;
取值:
    方位名词(left、top、right、bottom、center)
    像素单位数值
    百分比
例: transform-origin: right bottom;

平面转换 - 多重转换

旋转会改变坐标轴向
多重转换:以第一种转换形态的坐标轴为准
多重转换技巧: 先平移再旋转
属性:   transform: translate() rotate();
//先平移再旋转  直线型移动旋转
transform: translate(600px) rotate(360deg);
//先旋转再平移  螺旋形移动旋转
transform: rotate(360deg) translate(600px);

//层叠性 后面写的属性生效  多重转换不可分开写
transform: translate(600px);
transform: rotate(360deg);

平面转换 - 缩放

直接修改宽高尺寸: 
        //从左上角开始缩放 
        width: 500px; height: 400px; 

属性:   transform: scale(缩放倍数);
        transform: scale(X轴缩放倍数, Y轴缩放倍数);
技巧:
        通常,只为scale()设置一个值,表示X轴和Y轴等比例缩放
        取值大于1,表示放大;取值小于1,表示缩小
/* 大于1,表示放大 */
transform: scale(2);
/* 等于1,不变 */
transform: scale(1);
/* 小于1,表示缩小 */
transform: scale(0.5);

平面转换 - 倾斜

属性:   transform: skew();
取值:   角度度数 deg
transform: skew(±30deg);

平面转换 - 渐变

渐变是多个颜色逐渐变化的效果,一般用于设置盒子背景

  1. 线性渐变
属性:
    background-image: linear-gradient(
        渐变方向,
        颜色1 终点位置,
        颜色2 终点位置,
        ……
    );

取值:  
    渐变方向:可选
        >   to 方位名词
        >   角度度数
    终点位置:可选
        >    百分比

background-image: linear-gradient(
    to right,//45deg,
    red 70%,
    green
);

background-image: linear-gradient(
    transparet,
    rgba(0,0,0,0.5)
);
  1. 径向渐变
    作用:给按钮添加高光效果
属性:
background-image: linear-gradient(
    半径 at 圆心位置,
    颜色1 终点位置,
    颜色2 终点位置,
    ……
);

取值:
    半径可以是两条,为椭圆
    圆心位置取值:像素单位数值/百分比/方位名词

background-image: linear-gradient(
    50px 20px at center center,//50px at 50px 30px,
    red,//red 50%, //rgba(255,255,255,0.2),
    pink //transparent
);

空间转换

空间:是从坐标轴角度定义的X、Y和Z三条坐标轴构成了一个立体空间,Z轴位置与视线方向相同。
空间转换也叫 3D 转换。
属性:transform
        transform: translate3d(x, y, z);
        transform: translateX();
        transform: translateY();
        transform: translateZ();
取值:正负均可
    像素单位数值
    百分比(参照盒子自身尺寸计算结果)

电脑显示平面,默认无法观察到 Z 轴平移的效果

视距 perspective

作用:指定了观察者与 Z=0 平面的距离,为元素添加透视效果
透视效果:近大远小、近实远虚
属性:(添加给 直接父级,取值范围800-1200(经验值))
    perspective: 视距;

空间 - 旋转

transform: rotateZ(值);
transform: rotateX(值);
transform: rotateY(值);
左手法则:根据旋转方向确定取值正负
    左手握住旋转轴,大拇指指向正值方向,其他四个手指弯曲方向为旋转正值方向
拓展:  rotate3d(x,y,z,角度度数):用来设置自定义旋转轴的位置及旋转的角度
        x,y,z取值为0-1之间的数字

立体呈现 transform-style

作用:设置元素的子元素是位于3D空间还是平面中
属性名:transform-style
属性值:    
    flat:子级处于平面中
    preserve-3d: 子级处于3D空间内
呈现立体图形的步骤:
    1. 父元素添加transform-style: preserve-3d;
    2. 子级定位
    3. 调整子盒子的位置(位移或旋转)

空间转换 - 缩放

属性:
    transform: scale3d(x, y, z);
    transform: scaleX();
    transform: scaleY();
    transform: scaleZ();

动画

过渡:实现两个状态间的变化过程
动画:实现多个状态间的变化过程,动画过程可控(重复播放、最终画面、是否暂停)
实现步骤:
    1. 定义动画
        @keyframes 动画名称 {
            from {}
            to {}
        }

        @keyframes 动画名称 {
            0% {}
            10% {}
            ……
            100% {}
        }
    2. 使用动画
        animation: 动画名称 动画花费时长;
        百分比:表示的意思是动画时长的百分比

动画 - animation

animation: 动画名称 动画时长 速度曲线 延迟时间 重复次数 动画方向 执行完毕时状态;
提示: 
   1. 动画名称和动画时长必须赋值
   2. 取值不分先后顺序
   3. 如果有两个时间值,第一个时间表示动画时长,第二个时间表示延迟时间
/* linear:匀速 */
animation:change 1s linear;
/* steps:分步动画,工作中,配合精灵图实现精灵动画 */
animation:change 2s steps(3);
/* 如果有两个时间,第一个是动画时长,第二个是延迟时间 */
animation:change 2s 2s;
/* 重复次数,infinite:无限循环 */
animation:change 2s 3;
animation:change 2s infinite;
/* 交替往返 */
animation:change 2s infinite alternate;

/* 动画执行完毕时的状态 */
/* forwards:结束状态 */
/* backwards: 开始状态(默认值)*/
animation:change 2s 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使用
走马灯效果
    无缝动画原理:复制开头图片到结尾位置(图片向后累加的宽度=区域宽度)

动画 - 逐帧动画

核心原理:

    1. steps()逐帧动画
    2. CSS精灵图
属性
作用
取值
animation-timing-function速度曲线steps(数字): 逐帧动画

精灵动画制作步骤:

1. 准备显示区域
        盒子尺寸与一张精灵小图尺寸相同
2. 定义动画
        移动背景图(移动距离 = 精灵图宽度)
3. 使用动画
        steps(N),N与精灵小图个数相同

动画 - 多组动画

当动画开始状态的样式 与 盒子默认样式相同时,可以省略 动画开始状态的代码.(但没必要)

animation:
    动画1,
    动画2,
    动画N
;
animation:
    run 1s steps(12) infinite,
    move 3s linear forwards
;

HTML学习
Web移动端学习
JS基础学习
Web API学习
JS进阶学习
ajax学习
Node.js与Webpack学习
Git学习—学习中
vue学习—学习中
小程序学习—学习中

XML教学视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值