欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > 文本在屏幕上自由游动

文本在屏幕上自由游动

2025/1/15 22:56:44 来源:https://blog.csdn.net/lulei5153/article/details/145077651  浏览:    关键词:文本在屏幕上自由游动

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>文本在屏幕上自由游动</title><style>body {background-color: #000; /* 设置背景颜色为黑色 */width: 100%; /* 设置宽度为100% */height: 100vh; /* 设置高度为视口高度 */overflow: hidden; /* 隐藏溢出内容 */position: relative; /* 设置相对定位 */}div {background-color: #000; /* 设置背景颜色为黑色 */color: rgb(255, 255, 255); /* 设置文本颜色为白色 */font-size: 100px; /* 设置字体大小为100px */position: absolute; /* 设置绝对定位 */white-space: nowrap; /* 防止文本换行 */will-change: transform; /* 提示浏览器该元素会频繁变化 */}</style>
</head><body><div id="movingText">文本在屏幕上自由游动</div><script>(function () {// 错误处理:确保元素存在const textElement = document.getElementById('movingText');if (!textElement) {console.error('未找到元素 #movingText');return;}// 初始化位置和速度let x = Math.random() * (window.innerWidth - textElement.offsetWidth); /* 随机生成初始x坐标 */let y = Math.random() * (window.innerHeight - textElement.offsetHeight); /* 随机生成初始y坐标 */let dx = 0.5 + Math.random() * 0.011;  /* 设置x方向速度 */let dy = 0.5 + Math.random() * 0.011;  /* 设置y方向速度 */// 边界检测函数function checkBoundaries() {const maxX = window.innerWidth - textElement.offsetWidth; /* 计算x方向最大边界 */const maxY = window.innerHeight - textElement.offsetHeight; /* 计算y方向最大边界 */if (x > maxX || x < 0) { /* 如果x超出边界 */dx = -dx; /* 反转x方向速度 */x = Math.max(0, Math.min(x, maxX)); /* 防止文本超出边界 */}if (y > maxY || y < 0) { /* 如果y超出边界 */dy = -dy; /* 反转y方向速度 */y = Math.max(0, Math.min(y, maxY)); /* 防止文本超出边界 */}}// 动画循环function moveText() {x += dx; /* 更新x坐标 */y += dy; /* 更新y坐标 */checkBoundaries(); /* 检查边界 */// 使用 transform 替代 left 和 toptextElement.style.transform = `translate(${x}px, ${y}px)`; /* 应用变换 */requestAnimationFrame(moveText); /* 请求下一帧动画 */}// 启动动画moveText(); /* 开始动画 */// 窗口大小变化时重新计算边界window.addEventListener('resize', () => {x = Math.random() * (window.innerWidth - textElement.offsetWidth); /* 重新计算x坐标 */y = Math.random() * (window.innerHeight - textElement.offsetHeight); /* 重新计算y坐标 */});})();</script>
</body></html>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com