当前位置: 首页 > news >正文

vue3 自定义指令并实现页面元素平滑上升

基本示例

// 在directives/example.ts中
import type { Directive } from "vue";
/*** 示例*/
const example: Directive = {mounted(el) {console.log("mounted", el);},beforeUnmount(el) {console.log("beforeUnmount", el);}
};
export default example;

封装全局指令

// 在directives/index.ts中
import type { App, Directive } from "vue";
import example from "./example"; // 示例
const list: {[key: string]: Directive;
} = {example
};
const setDirectives = {install(app: App<Element>) {Object.keys(list).forEach((key) => {app.directive(key, list[key]);});}
};
export default setDirectives;

挂载

// 在main.ts中
import useDirective from "@/directives/index.ts"; // 自定义指令
const app = createApp(App);
app.use(useDirective);

使用

<div v-example></div>

元素平滑上升

import type { Directive } from "vue";
/*** 平滑滚动*/
const DISTANCE = 100;
const DURATION = 500;
const map = new WeakMap();
// 判断元素是否与视口区域重叠
const ob = new IntersectionObserver((entries) => {for (const entrie of entries) {// 出现在了视口if (entrie.isIntersecting) {const animation = map.get(entrie.target);animation && animation.play(); // 启动动画ob.unobserve(entrie.target); // 执行过之后就关闭监听}}
});
// 判断元素是否在视口区域
const isBelowViewport = (el: Element) => {const rect = el.getBoundingClientRect();return rect.top - window.innerHeight > 0;
};
const smoothScrolling: Directive = {mounted(el: Element) {// 已经在视口区域就不做处理if (!isBelowViewport(el)) return;// 动画配置const animation = el.animate([{transform: `translateY(${DISTANCE}px)`,opacity: "0.5"},{transform: `translateY(0)`,opacity: "1"}],{duration: DURATION,easing: "ease-out",fill: "forwards"});animation.pause(); // 暂停动画map.set(el, animation);ob.observe(el); // 监听元素是否进入视口},unmounted(el: Element) {ob.unobserve(el); // 关闭监听}
};
export default smoothScrolling;

相关文章:

vue3 自定义指令并实现页面元素平滑上升

基本示例 // 在directives/example.ts中 import type { Directive } from "vue"; /*** 示例*/ const example: Directive = {mounted(el) {console.log("mounted", el);},beforeUnmount(el) {console.log("beforeUnmount", el);} }; export defa…...

abp记录

abp记录abp8.3 : abp new MyCompany.MyProject -t app --no-ui -d ef --database-provider mysql --version 8.3.0...

强化学习(二十):模仿学习

一、概念 1、很多情况下,环境没有明确的奖励,例如聊天,自动驾驶的操作,无法明确定义好坏 2、不知道该怎么定义奖励时,可以收集专家示范 3、模仿学习(imitation learning,IL):智能体通过专家示范来学习,环境没有奖励给智能体二、行为克隆 1、类似于监督学习,专家做什…...

重生之从零开始的神经网络算法学习之路 —— 第七篇 重拾 PyTorch(超分辨率重建和脚本的使用)

重生之从零开始的神经网络算法学习之路 —— 第七篇 重拾 PyTorch(超分辨率重建和脚本的使用)重生之从零开始的神经网络算法学习之路——第七篇 重拾PyTorch(超分辨率重建和脚本的使用) 引言 在前一篇中,我们初步探索了PyTorch框架的使用并体验了GPU加速计算的优势。本篇将…...

从基础到实践(四十五):车载显示屏LCD、OLED、Mini-LED、MicroLED的工作原理、设计差异等说明 - 教程

从基础到实践(四十五):车载显示屏LCD、OLED、Mini-LED、MicroLED的工作原理、设计差异等说明 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &quo…...

国产项目管理工具崛起:Gitee如何以本土化优势重构开发协作生态

国产项目管理工具崛起:Gitee如何以本土化优势重构开发协作生态 在数字化浪潮席卷全球的当下,项目管理工具已成为企业技术栈中不可或缺的基础设施。随着中国科技产业的蓬勃发展,本土化项目管理平台正展现出强大的竞争力。作为国内领先的DevOps全生命周期解决方案提供商,Gite…...

GAS_Aura-Sending Gameplay Events

1讲了增加一个TaskNotify的通知蓝图,及其内部的函数的作用...

【IEEE-智造领空天,寰宇链未来】第五届机电一体化技术与航空航天工程国际学术会议(ICMTAE 2025)

会议将围绕“航空航天工程”、“机电一体化”、“先进制造”、“精密测量与仪器”、“结构强度与完整性”等相关最新研究领域,为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提供一个分享专业经验,扩大专业网络,面对面交流新思想以及展示研究成…...

进程间通信(消息队列)

消息队列概念 Linux系统中消息队列(Message Queue)是进程间通信的一种方式,这种通信机制的好处是可以传输指定类型(用户可以自行定义)的数据,相同类型的数据根据到达顺序在队列中进行排队。 当然,不同类型的数据不能处于同一个队列中,也就是说系统中可能存在多个消息队列…...

有点长所以单发的闲话(对acgn的看法(存疑))

因为某个东西的影响,突然有些感悟,想写点东西。 先解释题目吧,\(a,c,g,n\) 分别是动画,漫画,游戏,小说。算是构成了所谓“二次元”。 逢 我了解二次元这一块可以说是比较健康且古早的。我看电脑是从 \(3,4\) 岁开始的(我妈如是说),当时是小学吧,我在腾讯(应该是)看…...

【光照】Unity中的[光照模型]概念辨析

本文介绍了游戏渲染中的核心光照模型。传统标准光照模型(Phong/Blinn-Phong)包含漫反射和环境光,计算简单但真实感不足。物理基础渲染(PBR)基于BRDF数学框架,整合GGX法线分布和菲涅尔效应,通过金属度/粗糙度参数实现更真实的能量守恒光照效果。相比传统经验模型,PBR计算…...

深入解析:Shell脚本监控系统资源详解

深入解析:Shell脚本监控系统资源详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important…...

计算几何全家桶

#include <bits/stdc++.h> using namespace std;using point_t=long double; //全局数据类型,可修改为 long long 等constexpr point_t eps=1e-8; constexpr long double PI=3.1415926535897932384l;// 点与向量 template<typename T> struct point {T x,y;bool …...

链表

点击查看代码 /******************************************************************************************************** * * * * * * * Copyright (c) 2023-2024 cececlmx@126.com All right Reserved * ******************************************************…...

国产代码托管平台Gitee崛起:企业数字化转型的安全基石

国产代码托管平台Gitee崛起:企业数字化转型的安全基石 在数字经济高速发展的今天,软件开发已成为企业创新的核心驱动力。作为分布式版本控制系统的Git,因其高效协作特性而广受开发者青睐。然而,随着国际形势变化和数据安全法规日趋严格,越来越多的中国企业开始寻求自主可控…...

Gitee:本土化创新赋能企业数字化转型,打造高效研发新范式

Gitee:本土化创新赋能企业数字化转型,打造高效研发新范式 在数字化转型浪潮席卷各行各业的当下,企业研发效能提升已成为关乎企业核心竞争力的关键因素。作为国内领先的一站式DevOps研发管理平台,Gitee凭借其独特的本土化优势和技术创新实力,正在重新定义企业级代码托管与协…...

完整教程:从无声视频中“听见”声音:用视觉语言模型推理音频描述

完整教程:从无声视频中“听见”声音:用视觉语言模型推理音频描述pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New&…...

Win10如何安装语音包

一、系统环境Win10 参考 https://cp.baidu.com/landing/tscp_doc/8e36175e077a04256c1b85e9a0975471二、安装步骤 2.1、控制面板,打开windows设置说明:选择时间和语言选项,看到如下界面,主要关注语言及语音即可2.2、语言安装 选择语言,点击添加语言功能选择泰语,点击一下…...

C#通过TCP/IP控制康奈视读码枪实现方案

一、通信协议解析 康奈视读码枪(如DataMan系列)的TCP/IP通信遵循以下规范:通信模式 服务器模式:读码枪作为TCP服务端监听指定端口(默认23/8000) 客户端模式:PC作为客户端主动连接设备IP指令格式指令类型 示例指令 功能说明触发扫描 TRIGGER ON 启用连续扫描模式读取数据…...

利用三方APP[IP切换助手]使用socks5

1.安装前必读提示 a.此乃三方软件,它有收费模式,你不必理会它首页所出的收费方式.这些都是随机IP,且是不稳定的. b.此乃三方软件,我们不排除他们有可能会收集配置服务器,用户自行决定.之所以推荐它,目的:是为那些不想麻烦自己去注册其他地区apple store id的用户; c.此乃三方软…...

智能卫浴雷达模块感应方案WT4101寿命长不怕干扰

目前新装修的公共卫浴很多都采用的是雷达方案的感应开关方式,采用雷达方案做感应开关的原因很简单,因为雷达在公共环境当中干扰因素少寿命长,能够稳定的承担起感应开关的工作,并且雷达的成本也在逐年下降,让更多雷达感应开关普及到市场上。红外感应模块应用在公共卫浴的痛…...

修改Windows 资源器中文件的创建时间或更新时间

方法一:使用PowerShell 使用管理员身份打开PowerShell 执行语句 更改创建时间(Get-Item "D:\文件\demo.txt").CreationTime = "2025-09-15 12:34:56"更改更新时间(Get-Item "D:\文件\demo.txt").LastWriteTime = "2025-09-15 14:30:00&qu…...

Mysql练习,15个必练语句带你玩转数据库

还在为记不住MySQL语句而苦恼吗?你是否每次写SQL都要反复查阅文档?今天我们就来一起练习MySQL最常用的15个语句,让你从零开始掌握数据库操作。 快速上手MySQL基本操作 连接数据库是第一步,记住用户名和密码要紧跟-u和-p参数,不能有空格。如果不想明文显示密码,可以只输入…...

威力导演2026中文版 CyberLink PowerDirector 2026 v24.0 旗舰版更新内容

讯连科技威力导演(PowerDirector)是一款功能全面的视频编辑软件及视频剪辑软件.威力导演中文版采用独家之智慧型高速不失真影片输出技术SVRT,可快速编辑处理视频,威力导演旗舰版(CyberLink PowerDirector Ultimate)支持XAVC-S及H.265/HEVC音视频编码,威力导演破解版视频创作功能…...

越权漏洞

本实验用本地搭建的pikachu漏洞练习平台做实验水平越权水平越权是指同一权限级别下的不同用户之间,可以非法访问或操作其他用户的数据或资源。即用户通过某种手段,绕过系统的访问控制机制,获取与自身权限同级的其他用户的信息或执行相关操作咱们先看一下水平越权环境可以看到…...

GAS_Aura-Ability Tasks

1讲了PlayMontageAndWait的源码...

本地大模型的崛起:为什么越来越多人不用云端 AI?

一、引言过去两年,AI 产品几乎都依赖云端模型,比如 ChatGPT、文心一言。但现在越来越多人开始尝试 本地大模型(Local LLM):不需要联网、不依赖云端服务器。为什么这种趋势正在兴起?本文从 隐私、安全、成本、效率 等角度来解读。二、什么是“本地大模型”?定义:将大语言…...

Gitee:国产代码托管平台如何重塑企业研发效能版图

Gitee:国产代码托管平台如何重塑企业研发效能版图 在全球数字化转型浪潮中,企业研发效能正成为决定商业竞争力的关键因素。作为中国本土领先的代码托管平台,Gitee通过深度本地化服务与技术创新,正在重新定义企业级软件开发流程。最新统计显示,该平台已汇聚超过1350万开发者…...

CompassBench 大模型评测

OpenCompass 是一个开源开放的大模型评测平台,构建了包含学科、语言、知识、理解、推理五大维度的通用能力评测体系,支持了超过 50 个评测数据集和 30 万道评测题目,支持零样本、小样本及思维链评测。OpenCompass 支持大部分主流 HuggingFaces 上的大语言模型的评测,只需几…...

Windows截图工具Acropalypse漏洞剖析:开发者中心安全的重要教训

本文深入分析Windows Snip and Sketch工具中的Acropalypse漏洞,揭示API设计缺陷导致的安全风险,探讨开发者中心安全原则,并对比Win32与UWP API的安全差异,为安全软件开发提供重要见解。Windows Snip and Sketch中的Acropalypse漏洞,开发者中心安全的教训 Acropalypse是一个…...

bootstrap-flex总结

一主轴方向、默认横线排布 flex-row(默认)。flex-column是竖向排列<div class="d-flex "> <div class="p-2 bg-primary text-white">Item 1</div><div class="p-2 bg-success text-white">Item 2</div><div …...

【源码解读之 Mybatis】【基础篇】-- 第2篇:配置系统深度解析

【源码解读之 Mybatis】【基础篇】-- 第2篇:配置系统深度解析第2篇:配置系统深度解析 1. 配置系统概述 1.0 第1篇思考题解答 在深入学习配置系统之前,让我们先回顾并解答第1篇中提出的思考题,这将帮助我们更好地理解配置系统在整个架构中的作用。 思考题1:为什么 MyBatis …...

eSIM笔记

1. 办理eSIM套餐 -> 获得eSIM套餐的激活码(包含SM-DP+地址,Profile)LPA:1$esim.wo.com.cn$A1B2C3D4 SM-DP+地址:sim.wo.com.cn 激活码:A1B2C3D4 确认码:空 qq:505645074...

拯救者Y7000过热降频解决方法

拯救者Y7000过热降频解决方法 一、型号描述 ​ 型号:拯救者Y7000 2020 ​ CPU:i5-10200H CPU @ 2.4GHz ​ 显卡:NVIDIA GeForce GTX 1650 二、问题描述现象:由于电脑已经使用四年,近期不定时会出现电脑卡顿等现象,但不影响使用就没咋管,经常卡一会,不使用一会就自动恢复…...

普通大语言模型(LLM)和向量化模型(Embedding Model)的区别以及其各自的作用

简单来说:普通大语言模型(LLM) 像是一个知识渊博、能说会道的专家。你问它问题,它生成答案、写文章、编代码。 向量化模型(Embedding Model) 像是一个高度专业化的图书管理员或档案管理员。它不生成内容,而是将文字转换成数字(向量),并理解它们之间的语义关系,从而帮…...

ios电脑如何改成windows系统

如何将iOS设备转换为Windows系统:一个不可能的任务? 一、引言 在日常生活中,我们经常听到“iOS”和“Windows”这两个术语,它们分别代表了两种不同的操作系统。iOS是由苹果公司开发的移动操作系统,主要用于iPhone和iPad等移动设备上,而Windows则是由微软公司开发的桌面操…...

PythonFlask 运用 DBUtils 创建通用连接池

Python&Flask 运用 DBUtils 创建通用连接池pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !…...

帧同步、快照同步与状态同步

https://zhuanlan.zhihu.com/p/564017214前段时间,在Epic举办的UnrealCircle会议上,我受邀分享了一场关于“UE4回放系统”的技术演讲。不过由于时长限制,很多细节都没有得到进一步的阐述。这篇文章会在演讲的基础上拓展更多内容,更好的帮助大家去理解虚幻引擎的回放系统,建…...

内存一致性模型

顺序一致性(Sequential Consistency)是计算机系统中保证多线程程序正确执行的一种内存一致性模型。 它要求所有操作的执行顺序与程序员的源码顺序一致,即每个线程的操作在其本地源码顺序中保持不变, 同时不同线程的操作全局排序也符合源码顺序。 ‌核心要求顺序一致性模型确…...

MahMetro 框架学习

学习建议: 1.从Demo开始:运行官方Demo,玩遍每一个功能,看看它是如何实现的。 2.动手实践:在自己的一个小项目中应用它,从改造MetroWindow和设置主题开始 3.逐个攻克:依次自学习一个控件(比如先学会用Flyout,再学HamburgerMenu),不要试图一下子掌握所有内容 4.善用搜索引…...

基于MATLAB的标准化降水蒸散指数(SPEI)实现

一、架构 %% 主程序框架 [prec, pet, time] = load_data(input.nc); % 加载降水与PET数据 prec_acc = accumulate(prec, 3); % 3个月时间尺度累积 pet_acc = accumulate(pet, 3); d = prec_acc - pet_acc; % 水分盈亏量 spei = calculate_spei(d, loglogistic); % 计算SPEI plo…...

Prometheus Probe 监控配置文档

概述 本文档描述了使用 Prometheus Operator 的 Probe 资源监控外部服务的配置方法。该配置通过静态目标地址直接监控多个服务端点,无需创建额外的 Service 和 Endpoints 资源。 前提条件Kubernetes 集群 Prometheus Operator v0.42 或更高版本 monitoring 命名空间已存在配置…...

客户案例|邦普循环x甄知科技,筑牢高效智能的IT运维底座

燕千云ITSM为邦普循环后续业务扩张与系统升级提供可扩展的IT服务框架,筑牢稳定、高效、智能的数字化底座,助力其在动力电池循环利用领域持续保持竞争优势。客户介绍 广东邦普循环科技有限公司(以下简称邦普循环),成立于2005年,总部位于广东省佛山市,地处粤港澳大湾区腹地,…...

VMware Exporter 指标转换方案

概述 本文档提供将 VMware Exporter 指标转换为标准 Node Exporter 格式的方案,实现监控基础设施的统一化和标准化。 背景 VMware Exporter 提供的原始指标格式与标准的 Node Exporter 不兼容,导致无法直接使用为 Node Exporter 设计的现有仪表板和告警规则。通过 Prometheus…...

可5V使用引脚兼容STM32F103C8T6的国产32位MCU

经常的型号如下,仅做记录 1.MM32F103C8T6 灵动微 2.CH32F103C8T6 沁恒微 3.FCM32F103C8T6 闪芯微 此料内核为M4, 4.CH32V103C8T6 沁恒微 此料内核为RISC-V 5.CW32F030C8T6 武汉芯源 此料内核为M0+ 6.待补充...

git clone操作报错diffie-hellman-group1-sha1的解决方案

在使用Git进行克隆操作的过程中,可能会遇到一个与加密算法相关的报错,尤其是当服务器使用了过时的安全算法 diffie-hellman-group1-sha1时。这通常发生在尝试克隆旧的或配置较老的Git服务器时,当代的SSH客户端默认不再支持这种较弱的加密方式,导致无法成功建立连接。 要解决…...

Celery inspect 常用命令手册

📘 Celery Inspect 常用命令清单 & 字段解释 运行格式: celery -A <app_name> inspect <command> 1. active 含义 显示 正在执行的任务(worker 正在跑的任务)。 示例 { "worker1@host": [ { "id": "f5e9b8c7-1234-5678-90ab-a…...

都可以!燕千云ITSM一站式接入全球主流AI大模型

燕千云ITSM基于对行业痛点的深度洞察,已实现对国内外多家主流大型语言模型的无缝接入与深度适配,构建覆盖多场景、高可用的企业级大模型矩阵,全面支持企业在AI技术选型与落地过程中的灵活性与可控性,实现真正的“全球优秀模型一站式接入”。在企业加速推进数智化转型升级的…...

删边最短路

今天写题的时候做到一个非常牛的东西。 给你一个图,\(q\) 次问你如果删掉一条边,\(1\) 到 \(n\) 的最短路会变成多少。 首先搞出来 \(1\) 出发的最短路树,然后如果这条边根本不在这棵树上,显然没有任何影响。 如果在的话,我们必然要绕路了。 给出一个性质:我们选择绕的路…...

问题解决模板

背景: 晚11点客户反馈,发送短信收不到了问题现象: 查看短信服务日志,发现日志提示: RocketMqMsgSender.java:41 - 发送短信消息到消息队列失败,CODE: 14 DESC: service not available now. It may be caused by one of the following reasons: the brokers disk is full …...