
本文详细介绍了如何利用css动画实现一个图像在视口内无限循环滚动的效果,作为已废弃的`marquee`标签的现代替代方案。通过`@keyframes`定义动画路径,结合`transform: translatex()`精确控制元素位置,使图像能够平滑地从视口右侧移动到左侧并无限重复,同时提供了具体的html和css代码示例及关键属性解析,帮助开发者轻松实现这一视觉效果。
在现代Web开发中,为了实现元素(如图像或文本)在页面上连续滚动的效果,我们不再推荐使用已废弃的
实现图像无限循环滚动的核心在于利用CSS的@keyframes规则和transform属性。我们通过定义动画的关键帧,让元素在指定时间内从一个位置平移到另一个位置,并设置动画无限循环。
以下是使用HTML和CSS实现一个透明图像(例如一艘船的PNG图片)在视口中无限循环滚动的具体步骤和代码。
首先,我们需要一个HTML元素来承载我们的图像。这里我们使用一个div元素,并通过CSS将其背景设置为所需的透明PNG图像。
立即学习“前端免费学习笔记(深入)”;
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS图像滚动示例</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="ship-marquee"></div>
</body>
</html>接下来,在style.css文件中定义ship-marquee类的样式,包括图像的尺寸、定位以及关键的动画属性。
/* style.css */
body {
margin: 0;
overflow-x: hidden; /* 防止滚动条出现 */
}
.ship-marquee {
width: 120px; /* 船的宽度,根据实际图片调整 */
height: 80px; /* 船的高度,根据实际图片调整 */
background-image: url('path/to/your/ship.png'); /* 替换为你的透明PNG图片路径 */
background-size: contain; /* 确保图片完整显示在div内 */
background-repeat: no-repeat; /* 防止图片重复 */
background-position: center; /* 图片居中显示 */
position: fixed; /* 固定在视口,不随页面滚动 */
top: 50px; /* 距离视口顶部的距离,可调整 */
/* left: 0; */ /* 动画会控制水平位置,此处可省略或设为0 */
z-index: 100; /* 确保船在其他内容之上 */
/* 应用动画 */
animation: marquee-move 15s linear infinite forwards;
}
/* 定义动画关键帧 */
@keyframes marquee-move {
0% {
transform: translateX(100vw); /* 动画开始时,船完全位于视口右侧之外 */
}
100% {
transform: translateX(-100%); /* 动画结束时,船完全位于视口左侧之外(-100%是自身宽度) */
}
}代码解析:
通过CSS动画,我们能够以现代、标准且高性能的方式实现图像的无限循环滚动效果,完美替代了已废弃的
以上就是纯CSS实现视口内图像无限循环滚动教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号