js实现元素根据鼠标滚轮滚动向左右上下滑动着从模糊到清楚显示出来

html代码

<div ref={test} id="animatedElement" className="not-animated">

<div style={{width:"100px",height:"50px",backgroundColor:"red"}}>

</div>

</div>

JS代码

const test = useRef(null)

// 监听滚轮事件

useEffect(() => {

const handleScrollaa = () => {

const scrollTop1 = document.documentElement.scrollTop || document.body.scrollTop;

const h = test.current;

const triggerPoint = window.innerHeight

if (scrollTop1 > triggerPoint * 0.3) {

// 触发动画,通过添加 animate 类

console.log(32135456434687)

(headerLogo2 as HTMLElement).style.animation = `ROW3 2s forwards`;

}

else if(scrollTop1 < triggerPoint * 0.3){

h.style.animation=""

h.style.opacity="0"

}

};

window.addEventListener('scroll', handleScrollaa);

// 组件卸载时移除事件监听器

return () => {

window.removeEventListener('scroll', handleScrollaa);

};

}, \[\]);

CSS代码(实现从左到右滑动出来,并且由模糊到清楚的展现)

@keyframes ROW3 {

0% {

transform: translateX(-100%); /* 动画开始时,图片在容器外部 */

filter: blur(30px); /*模糊属性*/

opacity:0; /*opacity: 0 隐藏 1 显示 */

}

100% {

transform: translateX(0) rotate(1turn) ; /* 动画结束时,图片移动到容器内部 rotate(1turn)是内容旋转,随着移动而滚动 */

filter: blur(0);

opacity:1;

}}

相关推荐
Hoey3 分钟前
虚拟 DOM 和 DIFF 算法
前端·vue.js
bkspiderx5 分钟前
HTTP协议:Web通信的“通用语言”解析
前端·网络协议·http
云水一下5 分钟前
模块系统与 npm——万物皆模块
前端·npm·node.js
我不是懒洋洋7 分钟前
从零实现一个Redis客户端:RESP协议与网络编程
开发语言·c++
小小码农Come on12 分钟前
Qt::WA_StyledBackground属性的作用
开发语言·qt
无风听海12 分钟前
PKCE 的 S256 算法深度剖析:从协议设计到密码学原理
javascript·网络·算法·密码学
ZC跨境爬虫14 分钟前
跟着 MDN 学CSS day_47:(移动优先实战——从手机到宽屏的响应式进化)
前端·css·html·tensorflow·媒体
许彰午15 分钟前
04_Java数组操作全解
java·开发语言·python
小新11015 分钟前
vue实战项目 计算器
前端·javascript·vue.js
码不停蹄的玄黓16 分钟前
Java 线程池 execute() 和 submit() 对比
java·开发语言