首页 > 其他分享 >记录一个前端景深效果的实现

记录一个前端景深效果的实现

时间:2024-12-02 17:33:04浏览次数:6  
标签:translate const 记录 前端 transform value 0px ref 景深

参考教程:https://blog.csdn.net/aaaa_aaab/article/details/143949881
在上述教程的基础上有一些修改,并非是在banner上的应用:


展示

代码

  1. ts
import type { CSSProperties } from 'vue'
const startX = ref(0);
const currentX = ref(0);
const cloudStyle1 = ref<CSSProperties>({
	// transition: 'transform 0.6s cubic-bezier(0.4, 0, 0.2, 1)',  // 更平滑的过渡
	transition: 'transform 0.3s',
	transform: 'translate(0px, 0px)',
	width: '800px',
	position: 'absolute',
	bottom: '0',
	left: '0',
	zIndex: -1
});
const cloudStyle2 = ref<CSSProperties>({
	transition: 'transform 0.3s',
	transform: 'translate(0px, 0px)',
	width: '600px',
	position: 'absolute',
	bottom: '0',
	right: '0',
	zIndex: -1
});
const textStyle = ref<CSSProperties>({
	width: '2400px',
	position: 'absolute',
	bottom: '0',
	right: '0',
	zIndex: -1,
	transition: 'transform 0.1s',
	transform: 'translate(0px, 0px)',
});
const onm ouseMove = (event: MouseEvent) => {
	currentX.value = event.clientX;
	const disx = currentX.value - startX.value;
	const move = disx / 72;//设定图片应该移动的距离,一个向前两个向后
	const move1 = -disx / 36;
	const move2 = -disx / 36;
	cloudStyle1.value.transform = `translate(${move1}px, 0px)`;
	cloudStyle2.value.transform = `translate(${move2}px, 0px)`;
	textStyle.value.transform = `translate(${move}px, 0px)`;
};
  1. html
<div class="graph-layer">
	<!-- :style="textStyle" -->
	<div :class="['graph', { dark: props.isDarkMode }]" @mousemove="onMouseMove" > 
		<img :src="news_jpg" alt="Background" :style="textStyle">
		<img src="@/assets/imgs/cloud-3-2.png" alt="Background" :style="cloudStyle1">
		<img src="@/assets/imgs/cloud-3-3.png" alt="Background" :style="cloudStyle2">
		<span :class="['graphTitle', { dark: props.isDarkMode }]" >
			Keywords
		</span>
		<div id="wcchartdiv"></div>
		<div class="selectTool">
			<el-switch
			v-model="onyear"
			class="mb-2"
			active-text="Monthly"
			inactive-text="Annually"
			/>
		</div>
	</div>
</div>
  1. css
.graph-layer {
	border-radius: 10px;
	overflow: hidden;
	margin: 2rem;
	border: 1px solid #e4e7ed;
	.graph{
		overflow: hidden;  /* 隐藏超出的部分 */
		position: relative;  
		z-index: 1;
		.graphTitle{
			display: flex;
			justify-content: center; /* 水平居中对齐 */
			font-size: 1.3rem;
			font-weight: bold;
			color: #23262c;
			padding: 10px;
			z-index: 2;  /* Set a higher z-index for the text to stay above the background */
			&.dark {
				color: #c7ceff;
			}
		}
		.selectTool{
			// margin: 1rem;
			padding: 1rem;
			:deep(.el-switch__label) {
				color: #a1a1a1;
			}
		}
	}
}

标签:translate,const,记录,前端,transform,value,0px,ref,景深
From: https://www.cnblogs.com/80sVolxxxx/p/18577480

相关文章

  • ALPN复现记录. GAN WGAN .Bilevel Optimization
    titleALPN复现流程GAN与WGAN二阶优化1这篇文章是一篇用于高频遥感图分类的应用型文章,公开数据集程序开源,难度友好,代码清晰程度较好。用'IP'数据集说明,其他类似classAEDataset(Datapath,transform)defgetitem()deflen()--->输出用于生成学习无标签的数据pytorch......
  • 12.2 CW 模拟赛 赛时记录
    前言\(12\)月的第一场,没有大样例这次带了耳塞,注意考试方法其实并不复杂,先看题吧带上耳塞,终于舒服了看题\(\rm{T1}\)结论题?\(\rm{T2}\)\(\rm{HS}\)似乎讲过???但是我忘了,一会看能不能推一下多半是找规律\(\rm{T3}\)性质题?\(\rm{T4}\)数据结构维护吧,......
  • 记录Vue3中使用pinia可能遇到的问题及解决方法
    1.在安装依赖时容易停留pinia,附带持久化插件使用的地址https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/方法:请按照以下步骤:删除C:\Users账户中的.npmrc文件在命令提示符里执行npmcacheverify在命令提示符里执行npmconfigsetregistryhttps://regi......
  • 前端开发本地搭建nginx服务相关操作
    问题引入:前端本地开发,处理bug等,需要连接不同后端或者测试环境服务,前端切换vue.config文件,然后重启耗费较长时间解决方案:利用nginx代理,以及启动重载速度快,解决此问题1.vue.config文件devServe代理修改为本地端口,例如代理本地8080端口devServer:{port:8189,open:......
  • 不会前端也能写官网?没问题,Devbox+Cursor 带你起飞
    大家平时都是怎么给自己的产品开发官方网站的?是不是先在本地配置好环境,然后使用IDE写代码,写完代码后部署到服务器生成预览链接,团队协作成员再打开浏览器访问,然后你再修改,再部署,再访问,再修改,再部署,再访问...今天给你们分享一个丝滑的方案,让你告别繁琐的本地环境配置,告别反复沟......
  • Microi 吾码:前端开发的创新利器与实战指南
     目录一、引言二、Microi吾码概述(一)模块化设计(二)组件化开发(三)响应式原理三、Microi吾码在前端开发中的核心应用(一)高效的路由管理(二)强大的状态管理四、Microi吾码在前端性能优化方面的卓越实践(一)代码分割与懒加载(二)虚拟DOM与Diff算法优化(三)图片与资源优化......
  • Centos7.9 安装mysql8.4.3-lts 记录过程
    1、下载并上传mysqlrpm安装包tar-xvfmysql-8.4.3-1.el7.x86_64.rpm-bundle.tar2、按照如下顺序执行安装;如果有依赖缺少,执行yum-yinstall依赖名称rpm-ivhmysql-community-common-8.4.3-1.el7.x86_64.rpmrpm-ivhmysql-community-client-plugins-8.4.3-1.el7.x86_64......
  • 35、前端问答
    [TOC]阿里前端岗位P6技术一面:1.简单自我介绍,介绍一下你的项目和技术栈?2.说一说react和vue的比较React18与Vue3全方面对比3.详细说下ReactDiff算法React原理:通俗易懂的diff算法4.详细说下观察者模式实现前端必备的7种设计模式前端设计模式之观察者模式5.......
  • 说说你对前端架构师职位的理解,你觉得前端架构师应具备什么样的技能呢?
    前端架构师,我的理解是,他扮演着前端团队的技术领航员和守护者角色,负责搭建和维护前端项目的整体架构,确保项目的可扩展性、可维护性、性能和安全性。他不仅仅是一个资深的前端开发者,更是一个技术决策者和团队的指导者。他需要具备宏观的技术视野,能够预见项目发展的技术挑战,并提前......
  • 你认为前端工程师真正的价值体现在哪里?
    前端工程师的真正价值体现在将设计理念、产品需求和用户体验转化为可交互的、功能完善的网页或应用程序。这不仅仅是简单的“写代码”,而是需要多方面的能力和深刻的理解:用户体验至上:前端工程师是用户与产品交互的桥梁,他们需要深入理解用户行为和需求,将抽象的设计转化为用户......