前端特效之毛玻璃-倾斜-日历

news2024/10/5 13:55:18

前端特效之毛玻璃-倾斜-日历

  • 描述
  • 项目
      • 效果
      • index.html
      • index.css

描述

项目描述
开发语言HTML、JavaScript、CSS
dyCalendarJS、vanilla-tilt

该项目中需要使用到的库有:

  1. dyCalendarJS
    vanilla-tilt.js 是 JavaScript 中的一个平滑的 3D 倾斜库。
  2. vanilla-tilt
    dyCalendarJS 是一个用于创建日历的 JavaScript 库,您可以在博客和网站中免费使用它。

如果你在观看本篇文章前并没有对这两个库进行了解,欢迎移步至我的另外两篇文章进行学习:

  1. JavaScript 库之 vanilla-tilt(一个平滑的 3D 倾斜库)
  2. JavaScript 库之 dyCalendarJS(日历)

项目

该项目文件中我已对代码进行了注释。如遇不懂的地方,请尝试查看相关注释。

效果

效果

效果

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>毛玻璃-倾斜-日历</title>
    <!-- 导入自定义 CSS 文件 -->
    <link rel="stylesheet" href="./index.css">
    <!-- 导入 dycalendar.css -->
    <link rel="stylesheet" href="../dycalendar.min.css">
</head>
<body>
    <div id="calendar" class="dycalendar-container"></div>

    
    <!-- 导入 dycalendar.js -->
    <script src="../dycalendar.min.js"></script>
    <!-- 导入 vanilla-tilt.js -->
    <script src="../vanilla-tilt.js"></script>
    <script>
        // 绘制日历
        dycalendar.draw({
            target: '#calendar',   // 指定用于创建日历的 HTML 容器
            type: 'month',   // 设置日历的类型
            prevnextbutton: 'show',   // 显示 "<" 及 ">" 按钮
            highlighttoday: true   // 高亮显示当前日期
        })

        // 为目标元素添加倾斜效果
        VanillaTilt.init(document.querySelector('#calendar'), {
            target: '#calendar',   // 指定需要添加倾斜效果的目标元素
            scale: 0.8,   // 鼠标悬停于目标元素上时,目标元素的放缩倍数
            glare: true,   // 是否设置反光效果
            'max-glare': 0.6   // 设置反光效果的强度
        })
    </script>
</body>
</html>

index.css

*{
    /* 去除元素默认的内外边距 */
    margin: 0px;
    padding: 0px;
    /* 
    设置边框时将压缩内容区域,而不会向外扩张。
    也就是说,为某个元素设置边框并不会改变其宽高。
     */
    box-sizing: border-box;
}

body{
    /* 显示区域的最小高度为显示窗口的高度 */
    min-height: 100vh;
    /* 设置该元素内部元素居中显示 */
    display: flex;
    justify-content: center;
    align-items: center;
    /* 设置该元素的背景颜色 */
    background-color: #161623;
}

body::before{
    /* 若需要正常使用伪元素,必须为其设置 content 属性 */
    content: '';
    width: 400px;
    height: 400px;
    /* 设置颜色渐变效果 */
    background: linear-gradient(#ffc107,#e91e63);
    /* 设置边框圆角,当该属性的值为 50% 时元素边框将显示为一个圆 */
    border-radius: 50%;
    /* 
    为该元素设置绝对定位,阻止该元素遮挡日历
    (定位元素可以设置 z-index 来调节显示顺序,
    z-index 的值越高,显示优先级越大)。
     */
    position: absolute;
    top: 10%;
    left: 20%;
    z-index: -1;
}

body::after{
    content: '';
    width: 300px;
    height: 300px;
    position: absolute;
    background: linear-gradient(#2196f3,#31ff38);
    border-radius: 50%;
    top: 45%;
    left: 55%;
    z-index: -1;
}

#calendar{
    /* 设置日历的宽高 */
    width: 400px;
    height: 400px;
    color: #fff;
    /* 
    设置日历的背景元素,为产生毛玻璃效果,这里将背景颜色设置为白色,
    将透明度设置为 0.1(透明度的取值范围为 0~1,取值越接近 1 ,颜色
    越不透明)。
     */
    background-color: rgb(255, 255, 255, 0.1);
    /* 
    设置 blur 过滤器,该过滤器可以将背景模糊化,参数中的
    像素值设定越高,显示得越是模糊。
    */
    backdrop-filter: blur(50px);
    /* 分别设置日历的四条边框,使日历显示得更为立体 */
    border-top: 1px solid rgb(255, 255, 255, 0.5);
    border-left: 1px solid rgb(255, 255, 255, 0.5);
    border-right: 1px solid rgb(255, 255, 255, 0.2);
    border-bottom: 1px solid rgb(255, 255, 255, 0.2);
    border-radius: 5px;
    /* 设置日历的内边距 */
    padding: 0px 20px;
    /* 
    设置日历周边的阴影效果,box-shadow 接收的值(如下)分别为
    阴影的 X 偏移量、阴影的 Y 偏移量、扩散半径、阴影颜色。
    */
    box-shadow: 5px 10px 10px rgb(0, 0, 0, 0.1);
}

/* 
这里存在许多在 HTML 文件中没有看到的类名,这是因为这些标签
是 dyCalendarJS 通过 JavaScript 动态创建的元素,如果有需要对
日历中的某些元素的样式进行改变,可以通过浏览器的 检查 功能来查看
JavaScript 创建的元素并对其样式进行适当的修改。
*/

/* 
有些元素需要通过修改传递给 dycalendar.draw() 的配置对象中的
部分属性才能够被发现。
*/

/* 设置日历的头部部分的样式 */
#calendar .dycalendar-header{
    margin-top: 60px;
    font-size: 20px;
}

/*
 设置日历 "<" 及 ">" 按钮的样式,应用该样式时请将 
 传递给 dycalendar.draw() 的配置对象中的 prevnextbutton 
 属性的值设置为 true 。
 */
#calendar .dycalendar-header .prev-btn,
#calendar .dycalendar-header .next-btn{
    width: 40px;
    height: 30px;
    background-color: rgb(255, 255, 255, 0.15);
    /* 设置文本对其方式及行高以使 ">" 及 "<" 居中显示 */
    text-align: center;
    line-height: 30px;
    /* 设置上下方向的外边距为 0px,设置左右方向的外边距为 5px */
    margin: 0px 5px;
}

#calendar .dycalendar-body table{
    width: 100%;
    height: 100%;
    margin-top: 50px;
}

/* tr:nth-child(1) 选择 table 标签中的第一个 tr 元素 */
/* 设置日历中星期(星期几)标识的样式 */
#calendar .dycalendar-body table tr:nth-child(1) td{
    background-color: rgb(255, 255, 255, 0.15);
    margin-bottom: 20px;
}

#calendar .dycalendar-body table td{
    border-radius: 3px;
    /* 设置鼠标悬停时的指针样式 */
    cursor: pointer;
}

/* 
:hover 伪类选择器用于设置鼠标悬停在指定元素时,
某个元素的样式
*/
#calendar .dycalendar-today-date,
#calendar .dycalendar-body table td:hover{
    color: #000;
    /* 
    使用 !important 提升该属性在多个设置了该属性的选择器
    中的权重
    */
    background-color: #fff !important;
}

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

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

相关文章

MS SQL Server 日志审核工具

手动审核数据库活动是一项艰巨的任务。有效实现这一目标的最佳方法是使用全面的解决方案来简化和自动化数据库和活动监控。该解决方案还应使数据库管理员能够监控、跟踪、即时识别任何操作问题的根本原因&#xff0c;并实时检测对机密数据的未经授权的访问。 审核 Microsoft S…

Bootstrap踩坑笔记(记录Bootstrap当中的核心知识点)

目录 1.Bootstrap官网 2.核心1:布局&#xff08;栅格系统&#xff09; 3.核心知识点3:响应式布局 A.容器 B.行 C.列 注意: D.案例: E.列偏移 F.列排序 4. 样式 A.按钮 B.图片 C.表格 5.组件 A.导航条 B.分页条 C.js插件 1.Bootstrap官网 Bootsrap官网 2.核心1…

docker入门(二):docker的常用命令

文章目录前言docker常用命令1 启停类/帮助 命令2镜像命令3 容器命令结语前言 大家好&#xff0c;这是我学习docker系列的笔记文章&#xff0c;目标是掌握docker,为后续学习K8s做准备。本文列举了docker的常用命令&#xff0c;感兴趣的朋友可以看一下以前的文章。 上一篇&#…

处理Springboot项目启动时streamBridge.send导致的卡住卡死问题

现象 我们的Spring Boot 项目启动时&#xff0c;偶现卡死的现象&#xff0c;启动到一半卡主不动了 2023-01-16 10:23:10.338 INFO 1 --- [ restartedMain] com.hazelcast.core.LifecycleService : [172.18.0.14]:5701 [dev] [4.2.4] [172.18.0.14]:5701 is STARTED 20…

Unity脚本 --- 常用API(常用类) --- Component类和Transform类

上面这个是Unity核心类图 第一部分 --- Component类 提供了查找组件的方法&#xff08;当前物体的&#xff0c;子物体&#xff0c;父物体的&#xff09; 1.颜色&#xff08;color&#xff09;是材质&#xff08;meterial&#xff09;控制的&#xff0c;meterial&#xff08…

【FreeRTOS】在Cortex-M4开发板上移植FreeRTOS并且实现LED灯闪烁(保姆级教程)

相信有不少小伙伴手上只有M4的开发板&#xff0c;想要移植FreeRTOS&#xff1b;但是&#xff0c;网上大部分都是M3移植教程。因此&#xff0c;陷入深深的迷茫中&#xff0c;难不成只能使用仿真了&#xff1f;&#xff1f;&#xff1f;&#x1f914;因此&#xff0c;小编特意写了…

【Linux】静态库和动态库

Linux为什么不允许普通用户给目录建立硬链接呢&#xff1f; 系统层面上有.和…硬链接指向目录。假设我们是超级用户&#xff0c;允许给目录建立硬链接&#xff0c;给根目录建立硬链接&#xff0c;从根目录开始查找&#xff0c;当查找硬链接的时候就是根目录&#xff0c;这时候递…

面试官让我聊聊 MQ 的数据丢失问题,没想到水这么深。。。

目录 一、背景引入二、Kafka分布式存储架构三、Kafka高可用架构四、画图复现Kafka的写入数据丢失问题五、Kafka的ISR机制是什么&#xff1f;六、Kafka写入的数据如何保证不丢失&#xff1f;七、总结 一、背景引入 这篇文章&#xff0c;给大家聊一下写入Kafka的数据该如何保证…

Git常用命令(全局设置获取仓库)

新建仓库: 填写名称等信息&#xff0c;根据需要选择私有&#xff0c;开源等选项。 创建完成。 邀请成员&#xff1a; Git常用命令 Git全局设置 首先要做的是设置用户名和email地址。这是非常重要的&#xff0c;每次Git提交都会使用该用户信息。 设置用户信息&#xff1a; …

岁末年初捷报频传 HashData斩获多项行业殊荣

凯歌高奏辞旧岁&#xff0c;数据赋智谱新篇。 刚刚过去的2022年&#xff0c;面对充满变数的外部环境&#xff0c;HashData始终坚持以技术为本&#xff0c;持续全面创新&#xff0c;适应数字经济发展趋势&#xff0c;笃行致远&#xff0c;砥砺前行&#xff0c;积极推动企业“上…

VPS融合怪测评脚本(主体已完善,历史遗留问题解决时间未知)(VPS fusion monster evaluation script)

ecs 原仓库链接&#xff1a;https://github.com/spiritLHLS/ecs 支持系统&#xff1a;Ubuntu 18&#xff0c;Debian 8&#xff0c;centos 7&#xff0c;Fedora&#xff0c;Almalinux 8.5, Arch 融合怪测评脚本 bash <(wget -qO- --no-check-certificate https://gitlab.…

Sealer 0.9 :帮助集群和分布式应用实现 Build、 Share、Run

作者&#xff1a;sealer 社区 新春之际&#xff0c;很高兴在此时宣布 Sealer [ 1] 0.9 版本的正式发布。Sealer 是一款致力于探索面向分布式应用的快速打包、交付和运行的解决方案。2021 年5月 Sealer 项目正式开源&#xff1b;短短一年时间&#xff0c;Sealer 在 2022 年 4 月…

人工智能图像识别四大算子

文章目录背景引入图像识别发展简介边缘检测算法*Prewitt算子**Sobel算子**Laplace算子**Conny算子** 文末寄语*背景引入 图像识别是当今计算机科学最热门的研究方向之一。随着科学技术的发展和人类社会的不断进步&#xff0c;图像识别技术在很多行业得到了广泛的应用。本章除了…

【单链表】数据结构,详解单链表,java实现代码

前言&#xff1a; 大家好&#xff0c;我是良辰丫&#x1f353;&#x1f353;&#x1f353;&#xff0c;今天我和大家一起了解一下数据结构中的链表&#xff0c;链表&#xff0c;顾名思义是用链子把一个个数据串连起了的&#xff0c;那么链表和顺序表又有什么不同呢&#xff1f;…

mysql存储过程基本语法

本文来说下mysql存储过程基本语法 文章目录基本语法使用实例变量的使用变量定义declare语句变量赋值用户变量存储过程的参数in 输入参数out 输出参数inout输入输出参数本文小结基本语法 存储过程就是具有名字的一段代码&#xff0c;用来完成一个特定的功能。创建的存储过程保存…

2022年全球白帽常用工具排行榜TOP 10

虽然此时还未到2022年年底&#xff0c;但并不妨碍我们整理一份2022年全球白帽常用的工具榜单&#xff0c;希望能给白帽们和企业安全人员们带来一定的借鉴和参考。 一方面&#xff0c;工具的重要性不言而喻&#xff0c;各大SRC的白帽们也有深刻的切身体会。一个好用且靠谱的工具…

带模糊加工时间的柔性作业车间调度理论和GA复现(python)

文章目录1.模糊作业车间1.1 模糊数1.2 三角模糊数操作1.3 模糊甘特图2.FJSP模糊加工时间GA2.1 GA算法设置2.2 python代码2.3 测试结果1.模糊作业车间 1.1 模糊数 论域X上的模糊集合A由隶属度函数u(x)表示&#xff0c;u(x)取值[0,1]。如果A为三角模糊数&#xff0c;A可以表示为…

软件测试复习07:软件测试过程

作者&#xff1a;非妃是公主 专栏&#xff1a;《软件测试》 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录测试计划测试设计测试执行测试监控测试结束软件测试过程主要有5个阶段&#xff1a;测试计划、测试设…

《深入浅出计算机组成原理》学习笔记 Day3

ELF和静态链接1. 程序执行&#xff1a;编译、链接和装载2. ELF 格式和链接3. 总结延伸参考1. 程序执行&#xff1a;编译、链接和装载 有这么两个C文件&#xff1a; \\ add.c int add(int a, int b) {return a b; }\\ test.c #include <stdio.h> int main() {int a 1;…

JVM学习(三):聊聊内存泄漏(memory leak)

一、什么是内存泄漏&#xff08;memory leak&#xff09;可达性分析算法来判断对象是否是不再使用的对象&#xff0c;本质都是判断一个对象是否还被引用。那么对于这种情况下&#xff0c;由于代码的实现不同就会出现很多种内存泄漏问题&#xff08;让JVM误以为此对象还在引用中…