黑马程序员——移动Web——day01

目录:

  1. 平面转换
    1. 简介
    2. 平移
    3. 定位居中
    4. 案例-双开门
    5. 旋转
    6. 转换原点
    7. 案例-时钟
    8. 多重转换
    9. 缩放
    10. 案例-播放特效
    11. 倾斜
  2. 渐变
    1. 线性渐变
    2. 案例-产品展示
    3. 径向渐变
  3. 综合案例
    1. 导航-频道
    2. 渐变按钮
    3. 轮播图
    4. 猜你喜欢

1.平面转换

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

 

平面转换也叫 2D 转换,属性是 transform  

平移
transform: translate(X轴移动距离, Y轴移动距离);
  • 取值

    • 像素单位数值

    • 百分比(参照盒子自身尺寸计算结果)

    • 正负均可

  • 技巧

    • translate() 只写一个值,表示沿着 X 轴移动

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

定位居中
  • 方法一:margin

 

  • 方法二:平移 → 百分比参照盒子自身尺寸计算结果

 

案例-双开门

 

HTML 结构

<div class="father"><div class="left"></div><div class="right"></div>
</div>

CSS 样式

* {margin: 0;padding: 0;
}/* 1. 布局:父子结构,父级是大图,子级是左右小图 */
.father {display: flex;margin: 0 auto;width: 1366px;height: 600px;background-image: url(./images/bg.jpg);overflow: hidden;
}.father .left,
.father .right {width: 50%;height: 600px;background-image: url(./images/fm.jpg);transition: all .5s;
}.father .right {/* right 表示的取到精灵图右面的图片 */background-position: right 0;
}/* 2. 鼠标悬停的效果:左右移动 */
.father:hover .left {transform: translate(-100%);
}.father:hover .right {transform: translateX(100%);
}
旋转
transform: rotate(旋转角度);
  • 取值:角度单位是 deg

  • 技巧

    • 取值正负均可

    • 取值为正,顺时针旋转

    • 取值为负,逆时针旋转

转换原点
  • 默认情况下,转换原点是盒子中心点
transform-origin: 水平原点位置 垂直原点位置;

取值:

  • 方位名词(left、top、right、bottom、center)

  • 像素单位数值

  • 百分比

案例-时钟

 

.hour {width: 6px;height: 50px;background-color: #333;margin-left: -3px;transform: rotate(15deg);transform-origin: center bottom;
}.minute {width: 5px;height: 65px;background-color: #333;margin-left: -3px;transform: rotate(90deg);transform-origin: center bottom;
}.second {width: 4px;height: 80px;background-color: red;margin-left: -2px;transform: rotate(240deg);transform-origin: center bottom;
}

 

多重转换

多重转换技巧:先平移再旋转

transform: translate() rotate();
  • 多重转换原理:以第一种转换方式坐标轴为准转换形态

    • 旋转会改变网页元素的坐标轴向

    • 先写旋转,则后面的转换效果的轴向以旋转后的轴向为准,会影响转换结果

缩放
transform: scale(缩放倍数);
transform: scale(X轴缩放倍数, Y轴缩放倍数);
  • 技巧

    • 通常,只为 scale() 设置一个值,表示 X 轴和 Y 轴等比例缩放

    • 取值大于1表示放大,取值小于1表示缩小

案例-播放特效

  • CSS 样式

/* 1. 摆放播放按钮:图片区域的中间 */
.box li {overflow: hidden;
}.pic {position: relative;
}.pic::after {position: absolute;left: 50%;top: 50%;/* margin-left: -29px;margin-top: -29px; *//* transform: translate(-50%, -50%); */content: '';width: 58px;height: 58px;background-image: url(./images/play.png);transform: translate(-50%, -50%) scale(5);opacity: 0;transition: all .5s;
}
/* 2. hover效果:大按钮,看不见:透明是0 → 小按钮,看得见:透明度1 */
.box li:hover .pic::after {transform: translate(-50%, -50%) scale(1);opacity: 1;
}
倾斜
transform: skew();
  •  取值:角度度数 deg

2.渐变

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

分类:

  • 线性渐变

 

  • 径向渐变

 

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

取值:

  • 渐变方向:可选

    • to 方位名词

    • 角度度数

  • 终点位置:可选

    • 百分比

案例-产品展示

  • HTML 结构

<div class="box"><img src="./images/product.jpeg" alt="" /><div class="title">OceanStor Pacific 海量存储斩获2021 Interop金奖</div><div class="mask"></div>
</div>
  • CSS 样式

.mask {position: absolute;left: 0;top: 0;width: 100%;height: 100%;background-image: linear-gradient(transparent,rgba(0,0,0,0.5));opacity: 0;transition: all .5s;
}.box:hover .mask {opacity: 1;
}

 

径向渐变
background-image: radial-gradient(半径 at 圆心位置,颜色1 终点位置,颜色2 终点位置,......
);

取值:

  • 半径可以是2条,则为椭圆

  • 圆心位置取值:像素单位数值 / 百分比 / 方位名词

3.综合案例

导航-频道

箭头旋转

.x-header-nav .nav-item:hover .icon-down {transform: rotate(-180deg);
}

频道列表

.channel-layer {position: absolute;top: 60px;left: 50%;z-index: -2;width: 1080px;height: 120px;padding: 10px;margin-left: -540px;color: #72727b;background-color: #f5f5f5;border: 1px solid #e4e4e4;border-top: none;transition: all 0.5s;transform: translateY(-120px);
}/* TODO 2. 弹窗频道 */
.x-header-nav .nav-item:hover .channel-layer {transform: translateY(0);
}
渐变按钮

搜索按钮

.x-header-search form .btn {position: absolute;top: 0;right: 0;width: 60px;height: 40px;line-height: 40px;text-align: center;background-color: #f86442;border-top-right-radius: 20px;border-bottom-right-radius: 20px;background-image: linear-gradient(to right,rgba(255, 255, 255, 0.3),#f86442);
}

登录按钮

/* TODO 7. 渐变按钮 */
.card .card-info .login {padding: 3px 34px;color: #fff;background-color: #ff7251;border-radius: 30px;box-shadow: 0 4px 8px 0 rgb(252 88 50 / 50%);background-image: linear-gradient(to right,rgba(255, 255, 255, 0.2),#ff7251);
}

客户端按钮

/* TODO 8. 径向渐变 */
.download .dl .dl-btn {width: 68px;height: 34px;line-height: 34px;color: #fff;text-align: center;border-radius: 4px;background-image: radial-gradient(50px at 10px 10px,rgba(255, 255, 255, 0.5),transparent);
}
轮播图
/* TODO 4. 摆放图片 */
.banner .banner-list .banner-item.left {z-index: 0;transform: translate(-160px) scale(0.8);transform-origin: left center;
}.banner .banner-list .banner-item.right {z-index: 0;transform: translate(160px) scale(0.8);transform-origin: right center;
}
猜你喜欢
/* TODO 5. 播放按钮和遮罩 */
.album-item .album-item-box::after {position: absolute;left: 0;top: 0;content: '';width: 100%;height: 100%;background: rgba(0,0,0,.5) url(../assets/play.png) no-repeat center / 20px;opacity: 0;transition: all .5s;
}.album-item .album-item-box:hover::after {opacity: 1;background-size: 50px;
}/* TODO 6. 图片缩放 */
.album-item .album-item-box:hover img {transform: scale(1.1);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/681868.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GEE重投影——NICFI数据集重投影到WGS84坐标

简介 重投影 遥感影像的重投影是将一幅影像从一个地理坐标系统转换到另一个地理坐标系统的过程。在遥感应用中,重投影非常重要,因为不同的遥感影像可能来自于不同的遥感传感器或不同的地理坐标系统,而在进行数据分析和集成时,需要保证所有影像在同一地理坐标系统下。 重…

(二)【Jmeter】专栏实战项目靶场drupal部署

该专栏后续实战示例&#xff0c;都以该篇部署的项目展开操作。 前置条件 参考“&#xff08;一&#xff09;【Jmeter】JDK及Jmeter的安装部署及简单配置” 安装部署Jmeter&#xff0c;从文章最后下载“Postman、Rancher.ova、VirtualBox-7.0.12-159484-Win.exe、Xshell-7.0.01…

小白学习Halcon100例:如何利用动态阈值分割图像进行PCB印刷缺陷检测?

文章目录 *读入图片*关闭所有窗口*获取图片尺寸*根据图片尺寸打开一个窗口*在窗口中显示图片* 缺陷检测开始 ...*1.开运算 使用选定的遮罩执行灰度值开运算。*2.闭运算 使用选定的遮罩执行灰度值关闭运算*3.动态阈值分割 使用局部阈值分割图像显示结果*显示原图*设置颜色为红色…

ARMv8-AArch64 的异常处理模型详解之异常处理概述Handling exceptions

异常处理模型详解之异常处理概述 一&#xff0c;异常处理相关概念二&#xff0c;异常处理概述 一&#xff0c;异常处理相关概念 在介绍异常处理之前&#xff0c;有必要了解一些关于异常处理状态的术语&#xff1a; 当处理器响应一个异常时&#xff0c;我们称该异常被获取了&a…

PIL Image 使用详解

文章目录 1. 各种图像处理库介绍1.1 读取数据的通道顺序1.2 Python图像处理库&#xff08;PIL、Pillow、Scikit-image、Opencv&#xff09; 2、PIL库与Pillow库的区别3 Pillow库3.1 Pillow库特点3.2 Pillow库安装 4、Pillow的Image对象&#xff08;PIL.Image&#xff09;4.1 Im…

Peter算法小课堂—区间模型(2)

上次咋们讲了前两个区间模型&#xff1a;1.最大不重叠区间数 2.不重叠区间最少分组数。今天我们就学习&#xff1a;最小区间覆盖问题、区间重叠最厚层数&#xff01; 最小区间覆盖 先看三道题 那么&#xff0c;第1题&#xff0c;它是浮点数的题&#xff0c;也就要求首尾相同。…

知识图谱 多模态学习 2024 最新综述

知识图谱遇见多模态学习&#xff1a;综述 论文题目&#xff1a;Knowledge Graphs Meet Multi-Modal Learning: A Comprehensive Survey 论文链接&#xff1a;http://arxiv.org/abs/2402.05391 项目地址&#xff1a;https://github.com/zjukg/KG-MM-Survey 备注&#xff1a;55…

Unresolved reference: kotlinx 和 Unresolved reference:xxx

Unresolved reference: kotlinx 这个报错是因为build.gradle中忘记apply plugin了 apply plugin: kotlin-android-extensions如下 同步以后再次编译发现报错 Unresolved reference:xxx 是因为用于使用 Gradle 构建的 Kotlin 版本与 IDE 插件中的版本不一样的原因 解决方法 …

剪辑视频衔接怎么操作 剪辑视频衔接过渡自然方法 剪辑视频教程新手入门 抖音剪辑短视频 会声会影视频制作教程

视频剪辑在现代社交媒体和数字媒体时代中变得越来越重要。它广泛应用于各种领域&#xff0c;包括电影制作、广告宣传、教育培训、社交媒体内容创作等。 一、剪辑视频衔接怎么操作 会声会影是一款功能强大、易于使用的视频编辑软件。接下来我们拿会声会影为例讲解剪辑视频如何…

二叉树的垂直遍历

1.题目 这道题是2024-2-13的签到题&#xff0c;题目难度为困难。 考察的知识点是DFS算法和自定义排序。 题目链接&#xff1a;二叉树的垂直遍历 给你二叉树的根结点 root &#xff0c;请你设计算法计算二叉树的 垂序遍历 序列。 对位于 (row, col) 的每个结点而言&#xff…

HotCoin Global: 澳洲双牌照持有平台,坚守全球合规之路

前言&#xff1a; 加密交易平台的合规性不仅是相关法规遵守的问题&#xff0c;更是市场透明度和用户公平性的关键。为促使加密市场的交易活动有规范、有秩序地进行&#xff0c;确保加密投资者的资产与交易安全&#xff0c;部分国家明确对加密资产的交易和经营活动进行监督及管…

C++ matplotlib 画图 Linux

Matplotlib-cpp画图 命令行下载matplotlibcpp git clone https://github.com/lava/matplotlib-cpp将matplotlibcpp.h移动到自己所用的工程 CMakeList.txt文件如下所示 cmake_minimum_required(VERSION 3.0.2) project(huatu)set(CMAKE_CXX_STANDARD 11)file(GLOB_RECURSE P…

生成树(习题)

模板】最小生成树 生成树有两种方法&#xff0c;但是我只会克鲁斯卡尔算法&#xff0c;所以接下来下面的的题目都是按照这个算法来实现的&#xff0c;首先来见一下生么是这个算法&#xff0c;在之前的我写的一篇博客中有题使叫修复公路&#xff0c;其实这一题就是使用了这个算…

Redis相关介绍

概念 Redis&#xff1a;非关系型数据库&#xff08;non-relational)&#xff0c;Mysql是关系型数据库(RDBMS) Redis是当今非常流行的基于KV结构的作为Cache使用的NoSQL数据库 为什么使用NoSQL 关系型 数据库无法应对每秒上万次 的读写请求 表中的存储记录 数量有限 无法简单…

JUC-java并发编程的艺术

一、并发问题 上下文切换&#xff1a;CPU通过时间片分配算法来循环执行任务&#xff0c;当前任务执行一个时间片后会切换到下一个任务。在切换前会保存上一个任务的状态&#xff0c;以便下次切换回这个任务时&#xff0c;可以再加载这个任务的状态。所以任务从保存到再加载的过…

MySQL:常用指令

MySQL官网 一、在Windows 系统 cmd窗口里执行的命令 启动:net start MySQL停止:net stop MySQL卸载:sc delete MySQL 二、在macOS系统终端里执行的命令 启动&#xff1a;mysql.server start停止&#xff1a;mysql.server stop重启&#xff1a;mysql.server restart 三、执行帮…

Qt:槽函数的五种写法

一、Qt4写法&#xff08;不推荐&#xff09; connect(ui.btnOpen,SIGNAL(clicked),this,SLOT( open() ) );因为是以宏定义的方式展开&#xff0c;所以如果SIGNAL写错&#xff0c;或者信号名字、槽函数写错、编译器是无法检验出来的&#xff0c;导致出现隐性BUG&#xff0c;不容…

【医学大模型 知识增强】SMedBERT:结构化语义知识 + 医学大模型 = 显著提升大模型医学文本挖掘性能

SMedBERT&#xff1a;结构化语义知识 医学大模型 显著提升医学文本挖掘任务性能 名词解释结构化语义知识预训练语言模型医学文本挖掘任务 提出背景具体步骤提及-邻居混合注意力机制实体嵌入增强实体描述增强三元组句子增强 提及-邻居上下文建模域内词汇权重学习领域自监督任务…

【项目】高并发内存池

高并发内存池 【项目】高并发内存池项目介绍这个项目做的是什么&#xff1f; 内存池相关知识池化技术内存池malloc 定长内存池的实现高并发内存池整体框架设计ThreadCache对齐规则封装FreeList类封装thread cache类TLS无锁访问 CenctralCache整体设计页号规定span结构SpanList结…

QQ强制聊天,加好友。临时会话接口跳转单页源码

QQ互动增强工具&#xff1a;一键聊天、加好友与临时会话 &#x1f525; 全新体验&#xff0c;轻松连接 &#x1f525; 在数字社交时代&#xff0c;QQ仍然是我们与亲朋好友、工作伙伴沟通的重要桥梁。但有时候&#xff0c;复杂的设置和权限障碍让简单的“加个好友”或“说句话…