鼠标移动视差玻璃态效果

news2024/11/28 12:35:29

效果展示

在这里插入图片描述

页面结构组成

从页面上可以看到页面的结构比较简单,主要的元素如下:

  • 背景图片
  • 文字
  • 带有清晰中心圆的毛玻璃

但是在怎么组织这几个元素的层次关系就需要需要考虑一下,并且中间的圆怎么实现也是需要考虑的。

CSS 知识点

  • clip-path
  • background-position 动态计算值
  • 绝对定位使用

实现页面基础结构

我们知道页面的组成元素后,可以这样考虑页面的组成,背景图片位于最底层主要是负责展示非中心圆区域的内容展示,然后我们再创建一个悬浮于背景图片之上的毛玻璃层,最后我们再实现一层中心圆,它主要是负责展示图片中心位置的内容。

<section>
  <!-- 底部背景和文字层 -->
  <div class="img_box">
    <p class="text">Parallax</p>
  </div>
  <!-- 毛玻璃层 -->
  <div class="box box1"></div>
  <!-- 中心圆 并且 带有毛玻璃 -->
  <div class="box box2">
    <p class="text">Parallax</p>
  </div>
</section>

实现底部背景

section .img_box {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  background: url(bg.jpg);
  background-size: 110%;
  /* 变量值通过JS设置 */
  background-position: calc(var(--x) / -20) calc(var(--y) / -20);
}

section .text {
  position: absolute;
  color: #fff;
  font-size: 15em;
  font-weight: 900;
  transform: translateX(calc(var(--x) / -5)) translateY(calc(var(--y) / -5));
}

实现第一层毛玻璃

section .box {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  backdrop-filter: blur(12px);
}

实现顶层中心圆

section .box2 {
  background: url(bg.jpg);
  background-size: 110%;
  /* 图片位置与背景图片位置保持一致,变量值通过JS设置 */
  background-position: calc(var(--x) / -20) calc(var(--y) / -20);
  /* 借助 clip-path 属性实现中心圆*/
  clip-path: circle(250px at center);
}

section .box2::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 500px;
  height: 500px;
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.25);
  z-index: 10;
  border-radius: 50%;
}

实现图片和文字跟随鼠标移动事件

const pos = document.documentElement;
pos.addEventListener("mousemove", (e) => {
  pos.style.setProperty("--x", e.clientX + "px");
  pos.style.setProperty("--y", e.clientY + "px");
});

完整代码下载

完整代码下载

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

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

相关文章

【红外图像】利用红外图像处理技术对不同制冷剂充装的制冷系统进行性能评估(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

使用 Elastic 输入包自定义你的数据摄取

作者&#xff1a;Ishleen Kaur Elastic 通过集成&#xff08;integrations&#xff09;实现了外部数据源和 Elastic Observability Solution 之间数据流的收集、转换和分析。 集成包通过封装多个组件来实现这一点&#xff0c;包括代理配置 (agent configuration)、数据收集输入…

基于微信小程序的二手闲置交易市场小程序设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

基于SpringBoot的仿京东商城系统

前台部分实现效果截图 后台部分实现效果截图 源码地址&#xff1a;https://download.csdn.net/download/qq_50954361/87647905

以太网协议介绍(ARP、UDP、ICMP、IP)

以太网协议介绍 一、ARP协议 请求&#xff1a; 应答&#xff1a; ARP协议&#xff1a; 0x0001 0x0800 6 4硬件类型&#xff1a;2个字节&#xff0c;arp协议不仅能在以太网上运行还能在其他类型的硬件上运行。以太网用1来表示&#xff1b; 协议类型&#xff1a;两字节。指的是a…

Xilinx AXI DataMover使用说明与测试

Xilinx AXI DataMover使用说明与测试 1 架构说明2 IP设置说明2.1 接口说明2.2 设置说明 3 测试说明3.1 S2MM测试3.2 MM2S测试 本文主要介绍Xilinx AXI DataMover的使用和测试方法。 1 架构说明 在Xilinx的数据传输总线中&#xff0c;AXI Memory Map接口和AXI Stream接口是最常…

Java Spring拦截器优化实践: 专注于API路径拦截

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Spring IOC之AnnotationConfigApplicationContext

博主介绍:✌全网粉丝近5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌ 博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus…

C进阶 -- 自定义类型

&#x1f3c6;结构体 &#x1f36d;✨&#x1f387;&#x1f386;&#x1f645;‍♀️ &#x1f36d;结构体是一些值的集合&#xff0c;这些值称为 成员变量。结构的每个成员可以是不同的变量。 &#x1f947; 结构体类型的声明 struct Student {int age;//成员变量 }stu;/…

Rn页面滚动显示隐藏head动画

完整代码 import { View, Text, StyleSheet, Animated } from react-native export default () > {const opacity new Animated.Value(0)const handleScroll Animated.event([{ nativeEvent: { contentOffset: { y: opacity } } }],{ useNativeDriver: true })return (&l…

LSTM+CRF模型

今天讲讲LSTM和CRF模型&#xff0c;LSTM&#xff08;长短期记忆&#xff09;是一种特殊的循环神经网络&#xff08;RNN&#xff09;模型&#xff0c;用于处理序列数据、时间序列数据和文本数据等。LSTM通过引入门控机制&#xff0c;解决了传统RNN模型在处理长期依赖关系时的困难…

JavaSE | 初识Java(一) | JDK \ JRE \ JVM

Java初识 Java 是一门半编译型、半解释型语言。先通过 javac 编译程序把源文件进行编译&#xff0c;编译后生成的 .class 文件是由字节 码组成的平台无关、面向 JVM 的文件。最后启动 java 虚拟机 来运行 .class 文件&#xff0c;此时 JVM 会将字节码转换成平台能够理…

【C语言深入理解指针(3)】

1. 字符指针变量 在指针的类型中我们知道有⼀种指针类型为字符指针 char* ; ⼀般使⽤: int main() {char ch w;char *pc &ch;*pc w;return 0; }还有⼀种使⽤⽅式如下&#xff1a; int main() {const char* pstr "hello bit.";//这⾥是把⼀个字符串放到ps…

链表经典面试题(五)

求链表的公共结点 1.题目2.详细的图示3.详细注释和代码实现 1.题目 2.详细的图示 3.详细注释和代码实现 public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {//定义两个表示长度的指针,让它们指向headA和headB//我们暂时无法知道哪…

cesium 鹰眼图1

cesium 鹰眼图1 1、实现思路 用两个cesium实体来实现一个加载3维一个加载2维,在利用“viewer.scene.preRender.addEventListener”监听事件按监听实体的移动,使两个实体保持一样 2、示例代码 <!DOCTYPE html> <html lang="en"><head><

【Linux】探访环境变量的奥秘

一、概念先知 首先我们在聊【环境变量】之前知道它是什么&#x1f447; 环境变量(environment variables)&#xff1a;一般是指在操作系统在开机的时候帮我们维护系统运行时的一些动态参数读者可以回忆一下我们在学习 Java / Python 的时候&#xff0c;你们的老师是否有让你们配…

毛玻璃员工卡片悬停效果

效果展示 页面结构组成 通过效果展示图&#xff0c;我们可以看出页面布局比较常规&#xff0c;最核心的就是卡片&#xff0c;当鼠标没有悬停在卡片上时&#xff0c;文字和头像处于半透明状态&#xff0c;当鼠标悬停在卡片上是&#xff0c;底部会展示社交图标。 CSS 知识点 b…

去雨去雪去雾算法之本地与服务器的TensorBoard使用教程

在进行去雨去雾去雪算法实验时&#xff0c;需要注意几个参数设置&#xff0c;num_workers只能设置为0&#xff0c;否则会报各种稀奇古怪的错误。 本地使用TensorBoard 此外&#xff0c;发现生成的文件是events.out.tfevents格式的&#xff0c;查询了一番得知该文件是通过Tens…

postgresql-管理表空间

postgresql-管理表空间 基本概念创建表空间用户授权移动表空间 修改表空间移动表空间位置 删除表空间 基本概念 在 PostgreSQL 中&#xff0c;表空间&#xff08;tablespace&#xff09;表示数据文件的存放目录&#xff0c;这些数据文件代表了数 据库的对象&#xff0c;例如表…