53 个 CSS 特效 3(完)

53 个 CSS 特效 3(完)

前两篇地址:

  • 53 个 CSS 特效 1
  • 53 个 CSS 特效 2

这里是第 33 到 53 个,很多内容都挺重复的,所以这里解释没之前的细,如果漏了一些之前的笔记会补一下,写过的就会跳过。

依旧,预览地址在 http://www.goldenaarcher.com/html-css-js-proj/,git 地址: https://github.com/GoldenaArcher/html-css-js-proj

现在小的写的差不多了,接下来会着手折腾一下 responsive 网页,完了之后就是 tailwind css。

我觉得比较好玩的特效是这个:

在这里插入图片描述

可以算是集大成了,这也是最后一个项目。


下面开始正文:

  1. profile card

    效果如下:

    在这里插入图片描述

    和之前的一些 UI 库差不太多,实现部分也写了挺多遍的了

  2. countdown

    [在这里插入图片描述
    没什么特别复杂的 CSS 逻辑,这里主要用的是 JS 去控制时间的变化,然后将 Days 这些字添加到 attributes 里,CSS 中通过 attr 获得即可。

  3. calendar

    在这里插入图片描述

    CSS 上也没有什么特别的难点,一般来说除非自己要写对应的 UI 库,否则也不太可能用得上这个。

    JS 实现上挺有趣的,获取当月日历这个没什么大问题,获取上个月的日历是通过获取上个月最后一天在星期几,然后做一个 i-- 的循环。下个月则是获取下个月第一天在星期几,做一个 i++ 实现。

  4. ball animation

    在这里插入图片描述

    主要也是对 animation 的学习,小球的形变是通过 scale 实现的

  5. Form with Validation

    在这里插入图片描述

    这个实际应用还挺多的,特别如果写的是 2B 项目,很多情况下就是填写表格和表单……

    这个主要还是依靠 JS 实现的,关于 CSS 的控制倒是以前没有想过,他的写法是直接把 error 这个 class 加到了整个表单上,之前用 React 写都是直接通过单独的 input 控制。

    顺便做了 responsive,大屏幕的效果是这样的:

    在这里插入图片描述

  6. Social Icons Slideshow

    和之前做的 slideshow 差不多:

    在这里插入图片描述

    这里用了一个之前没用过的 CSS:filter: brightness(1.5);,可以用来控制元素的明暗。

    icon 的出现和消失则是使用 CSS 进行控制的,没有什么特别大的难点。

  7. Circle Progress Bar

    在这里插入图片描述

    progress bar 的实现还是挺有意思的,首先它分成 3 个部分,两个半圆和一个遮罩。在第一个半圆完成旋转的时候,遮罩就会消失,同时让第二个半圆完成渲染,图示如下:

    在这里插入图片描述

    其中橙色代表的是遮罩,蓝色是第一个半圆,绿色是第二个半圆。二者的移动轨迹是重叠的,这也就是为什么刚开始不会看到绿色的移动轨迹。

    实现了 overflow: hidden 和修改完颜色后的效果:

    在这里插入图片描述

    完成了中心部分的填充后:

    在这里插入图片描述

  8. Ripple Button

    在这里插入图片描述

    这个特效的实现也挺有意思的,主要是通过 JS 的 mouseentermouseleave。在 mouseenter 的时候,获取当前鼠标所在的位置,创建一个新的背景颜色,过渡使用 animation 完成。在 mouseleave 的时候,将该背景颜色从 DOM 中移除。

  9. Loader

    这里做了 3 个 loader 的特效,实用性都是有的,不过具体也看 UI 风格:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    主要都是使用 animation+scale+animation-delay+opacity 的变化

  10. 又一个 navbar

    在这里插入图片描述

    之前写过差不多的吧,还有其实我觉得这个特效没有特别好看,过渡还是有点奇怪……

  11. 又一个 landing page

    在这里插入图片描述

    同样也是二段式的 animation,这里背景的变化用了 clip-path,之前也有介绍过,现在的网站可以拖拽最后获取 clip-path 的角度。

  12. clock

    在这里插入图片描述

    主要靠 JS 调整时间,其他的 CSS 没什么难度

  13. Jumping Square

    在这里插入图片描述

    形变的特效是使用 border-radius + translateY 做出来的,所以会看到两边拉的细长,但是中间还是粗的效果,其实这违反物理了……嘛……不过不是用渲染引擎做出来的就算了

    square 的效果主要就是 translateY + rotateZ 做的,两边的支柱也差不多

  14. Search Bar

    在这里插入图片描述

    也是比较简单的 animation,稍稍有点花哨,一般来说水平出现就行了吧

  15. 3D Form

    在这里插入图片描述

    这个特效属于是 3D card 的进阶版了

  16. invisible card

    在这里插入图片描述

    之前写的也挺多了,主要就是用位移(position: absolute + overflow: hidden + top 的变化) 和 transition 结合。这里的卡片依旧使用 borderbox-shadow 实现

  17. signup form

    在这里插入图片描述

    这里用的技巧之前也基本都写过了,比较讨巧的还是用 checkbox 实现 radio button 这个功能,不过之前也洗过了,这里不多赘述

    很多转换是用 JS 实现的,这也就是为什么这个页面相对而言能够实现的比较复杂的原因。

  18. profile cards

    在这里插入图片描述

    之前做了 profile card,这里大致的布局设计没什么特别大的差别

    按钮的特效用 @keyframes 的 animation 做的,主要也是使用 scale + rotateZ 的效果实现晃动

    打字的特效是通过 JS 实现的,JS 代码如下:

    const heading = 'Please Meet Our Team';
    let i = 0;
    
    const typing = () => {
      if (i < heading.length) {
        document.querySelector('.heading').innerHTML += heading.charAt(i);
        i++;
    
        setTimeout(typing, 150);
      }
    };
    
    typing();
    

    跳动的光标也是使用 CSS animation 实现的,定位用的是 after 实现,这样总是能够定位到 heading 的末端

    有一个 CSS attribute 还挺重要的,white-space: pre-wrap,如果没有这个 attribute 的话,光标的位置会到处乱跳,尤其是当浏览器觉得 heading 的内容可以被 wrap 的时候

    光标跳动的效果也是通过 animation+background-color 的修改实现,不断从 #ffftransparent 的跳动就可以实现忽明忽暗的特效

  19. slideshow cities

    在这里插入图片描述

    button 用了 3D 环境,slideshow 之前写过,首页闪现的效果我以为用 opacity 实现的,不过没想到是用 animation 做的……还是用 translateX 移动黑屏部分

    下面按钮的特效一样,不过是黑屏换成白屏

    之前的 slideshow 用的是 JS,不过这里用的是 CSS 的 animation,也挺妙的,可以一看,animation 部分的代码:

    @keyframes slideshow {
      0% {
        left: 0;
      }
      10% {
        left: 0;
      }
      15% {
        left: -100%;
      }
      25% {
        left: -100%;
      }
      30% {
        left: -200%;
      }
      40% {
        left: -200%;
      }
      45% {
        left: -300%;
      }
      55% {
        left: -300%;
      }
      60% {
        left: -200%;
      }
      70% {
        left: -200%;
      }
      75% {
        left: -100%;
      }
      85% {
        left: -100%;
      }
      90% {
        left: 0;
      }
    }
    
  20. 3d hamburger menu

    这个特效有点多,简单的就是之前写的几个整合,包括:

    • 3d button
    • hamburger menu
    • 3d card

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  21. 3d cube

    在这里插入图片描述

    我本来以为这里切图了,后来发现没有,用的是 background 的一个 attributes,也就是 backgournd-position,CSS 如下:

    .cube-1 .front {
      background: url(images/slide-img-1.jpg) no-repeat 50% 0;
      background-size: cover;
    }
    
    .cube-2 .front {
      background: url(images/slide-img-1.jpg) no-repeat 50% -7vw;
      background-size: cover;
    }
    
    .cube-3 .front {
      background: url(images/slide-img-1.jpg) no-repeat 50% -14vw;
      background-size: cover;
    }
    

    MDN 上玩了一下 backgournd-position

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    其他的 3d 动画都和之前写的差不多了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【游戏开发教程】Unity Cinemachine快速上手,详细案例讲解(虚拟相机系统 | 新发出品 | 良心教程)

文章目录 一、前言二、插件下载三、案例1&#xff1a;第三人称自由视角&#xff0c;Free Look character场景1、场景演示2、组件参数2.1、CinemachineBrain&#xff1a;核心2.2、CinemachineFreeLook&#xff1a;第三人称自由视角相机2.2.1、设置Follow&#xff1a;跟随2.2.2、…

openlayers-16-添加一组轨迹动画

实现一组动画&#xff0c;即根据一组只有起止点坐标的线段&#xff0c;实现点在这些线段上较为平滑的移动&#xff0c;移动速度和平滑程度均可控制。 下面的代码仅作为思路参考&#xff0c;还欠缺很多细节&#xff0c;比如在进行插值计算时&#xff0c;还需要判断经纬度坐标差&…

6. vue-element-admin 二次开发避坑指南

vue-element-admin 二次开发避坑指南 1.1 前言1.1.1 切换标签时未保存页面的操作内容1.1.2 markdown 样式乱码1.1.3 修改默认尺寸1.1.4 当后端服务器宕机情况下页面加载层一直转圈无法停止&#xff0c;只能关闭页面1.1.5 隐藏齿轮 1.1 前言 上一篇博文&#xff0c;我们分享了vu…

传送带下料口堵塞识别检测算法 yolov5

传送带下料口堵塞识别检测算法通过python基于yolov5网络深度学习框架模型&#xff0c;下料口堵塞识别检测算法能够准确判断下料口是否出现堵塞现象&#xff0c;一旦发现下料口堵塞&#xff0c;算法会立即抓拍发出告警信号。Python是一种由Guido van Rossum开发的通用编程语言&a…

【VM】保姆级VM算法平台二次开发之-环境配置

VM算法平台二次开发 1.下载Visual Studio 20222.项目的创建 C# 应用3.设置属性&#xff0c;去掉属选型32位4. 进行引用的导入工作5. 重新加载&#xff0c;查看引用6. 工具箱添加Dll的依赖。&#xff08;只需要加载一次就行&#xff09; 1.下载Visual Studio 2022 可以直接在官…

【学习笔记】计算机视觉对比学习综述

计算机视觉对比学习综述 前言百花齐放InstDiscInvaSpreadCPCCMC CV双雄MoCoSimCLRMoCo v2SimCLR v2SwAV 不用负样本BYOLSimSiam TransformerMoCo v3DINO 总结参考链接 前言 本篇对比学习综述内容来自于沐神对比学习串讲视频以及其中所提到的论文和博客&#xff0c;对应的链接详…

ESXi 6.7添加螃蟹2.5g网卡支持

安装了ESXi 6.7&#xff0c;结果机器两块网卡只能识别一块&#xff0c;然后想着不能让另一块浪费啊&#xff0c;开始折腾&#xff0c;看着网上都是找的驱动然后封装进iso&#xff0c;可是我已经装完了&#xff0c;怎么办&#xff0c;然后找到了下面解决方法 1.找驱动 下载RTL81…

对话出海企业:2023亚马逊云科技出海日圆桌论坛

在全球经济亟待复苏的今天&#xff0c;持续对外开放是中国未来经济发展重要的“两条腿”之一。在愈发饱和的国内市场&#xff0c;中国企业需要对外寻找全新机遇才能在未来不确定的市场博弈下生存下去。“出海”&#xff0c;也成为近几年最炙手可热的词汇之一&#xff0c;大量中…

mysql通过.frm和.ibd 文件恢复数据库

问题背景&#xff1a;由于强制在服务关闭mysql导致部分数据表以及数据丢失 如下图只有.frm .ibd的文件为我的问题文件 查找不到表结构和表数据目录D:XXXX\mysql-5.7.24-winx64\data\mydata 从frm文件中恢复表结构 先把原来的数据备份一次 避免过程中出错 先备份之前数据的.fr…

Oracle的学习心得和知识总结(二十九)|Oracle数据库数据库回放功能之论文三翻译及学习

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《Oracle Database SQL Language Reference》 2、参考书籍&#xff1a;《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Gui…

数据结构入门 — 栈

本文属于数据结构专栏文章&#xff0c;适合数据结构入门者学习&#xff0c;涵盖数据结构基础的知识和内容体系&#xff0c;文章在介绍数据结构时会配合上动图演示&#xff0c;方便初学者在学习数据结构时理解和学习&#xff0c;了解数据结构系列专栏点击下方链接。 博客主页&am…

利用逻辑回归判断病人肺部是否发生病变

大家好&#xff0c;我是带我去滑雪&#xff01; 判断肺部是否发生病变可以及早发现疾病、指导治疗和监测疾病进展&#xff0c;以及预防和促进肺部健康&#xff0c;定期进行肺部评估和检查对于保护肺健康、预防疾病和提高生活质量至关重要。本期将利用相关医学临床数据结合逻辑回…

DEAP库文档教程二-----创建类型

本节将展示如何通过creator创建类型以及如何使用toolbox进行初始化。 1、Fitness 已经提供的Fitness类是一个抽象类&#xff0c;它需要weight来使得它成为一个函数。一个最小化的适应度是通过负权重构建的&#xff0c;而一个最大化适应度则需要正权重。 creator.create(&quo…

算法通关村第10关【青铜】| 快速排序各种写法

思路&#xff1a; 指定一个数字&#xff0c;将数组比他小的放到左边&#xff0c;比他大的放到右边&#xff0c;实现归位 然后再指定一个数字递归&#xff0c;一直遍历完数组 最好的情况每次指定的都是中间位置的数字&#xff0c;划分完后两边长度相等&#xff0c;2T(n/2) O…

Ansible之playbooks剧本

文章目录 一.playbooks介绍1.playbooks简述2.playbooks剧本格式3.playbooks组成部分4.运行playbooks及检测文件配置 二.模块实战实例1.playbooks模块实战实例2.vars模块实战实例3.指定远程主机sudo切换用户4.when模块实战实例5.with_items迭代模块实战实例6.Templates 模块实战…

【BUG事务内消息发送】事务内消息发送,事务还未结束,消息发送已被消费,查无数据怎么解决?

问题描述 在一个事务内完成插入操作&#xff0c;通过MQ异步通知其他微服务进行事件处理。 由于是在事务内发送&#xff0c;其他服务消费消息&#xff0c;查询数据时还不存在如何解决呢&#xff1f; 解决方案 通过spring-tx包的TransactionSynchronizationManager事务管理器解…

OpenShift 4 - 用 Prometheus 和 Grafana 监视用户应用定制的观测指标(视频)

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 OpenShift 4.13 的环境中验证 文章目录 OpenShift 的监控功能构成部署被监控应用用 OpenShift 内置功能监控应用用 Grafana 监控应用安装 Grafana 运行环境配置 Grafana 数据源定制监控 Dashboard 演示视…

LeetCode(力扣)669. 修剪二叉搜索树Python

LeetCode669. 修剪二叉搜索树 题目链接代码 题目链接 https://leetcode.cn/problems/trim-a-binary-search-tree/ 代码 递归 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # …

【MySQL】基础知识(二)

MySQL基础知识(二) 文章目录 MySQL基础知识(二)01 表操作1.1 创建表1.2 查看所有表1.3 查看指定表的结构1.4 删除表练习 02 CURD2.1 新增2.1.1 指定列插入2.1.2 datetime类型插入 2.2 查询2.2.1 全列查询2.2.2 指定列查询2.2.3 查询字段为表达式2.2.4 别名查询2.2.5 去重2.2.6 …

android frida 逆向 自吐加密算法

前言&#xff1a; ♛ frida hook android Android 逆向神器 前几天在学习 Android 逆向的时候发现了一个神器&#xff1a;通过 frida hook 我们可以 “劫持” 一些函数 为我们所用&#xff0c; 今天就和大家上手一个 加密函数的劫持 让打印出&#xff1a; 加密秘钥 …