在使用JavaScript的CSS中,如何将不同的Y位置百分比分配给layered background images,以便它们随着页面滚动而更新?

<style>
  body {
    background-image: 
      url(img/bg-pattern-01.png),
      url(img/bg-pattern-02.png),
      url(img/bg-pattern-03.png);
    background-position:
      center 45%,
      center 50%,
      center 55%;
  }
</style>

因此,在上面的示例中,百分比(45%、50%、55%)不是静态值,而是受页面垂直滚动位置的动态影响.可能是实际滚动百分比的混合或平均混合.

推荐答案

我在下面添加了示例代码.

-Java -Java 脚本

document.addEventListener("scroll", () => {
  document.body.style.backgroundPosition = [0, 30, 60]
    .map(
      (basePosition) => `center ${basePosition + window.scrollY * 0.2}%`
    )
    .join(", ");
});

-css.-css.

    body {
      margin: 0;
      height: 200vh; /* Ensure enough content to allow scrolling */
      background-image: url(https://images.pexels.com/photos/531880/pexels-photo-531880.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1),
        url(https://images.pexels.com/photos/956999/milky-way-starry-sky-night-sky-star-956999.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1),
        url(https://images.pexels.com/photos/743986/pexels-photo-743986.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1);
      background-position: center 0%, center 30%, center 60%;
      background-repeat: no-repeat;
    }

Javascript相关问答推荐

是什么原因导致此Angular 16应用程序中类型错误时属性结果不存在?

IMDB使用 puppeteer 加载更多按钮(nodejs)

将状态向下传递给映射的子元素

在Vite React库中添加子模块路径

手机上的渲染错误文本必须在文本组件中渲染,但在浏览器上没有问题<><>

如何从Intl.DateTimeFormat中仅获取时区名称?

使用JQuery单击元素从新弹出窗口获取值

闭包是将值复制到内存的另一个位置吗?

从页面到应用程序(NextJS):REST.STATUS不是一个函数

同一类的所有div';S的模式窗口

在FAQ Accodion应用程序中使用React useState时出现问题

如何在一个对象Java脚本中获取不同键的重复值?

与在编剧中具有动态价值的定位器交互

使用createBrowserRoutVS BrowserRouter的Reaction路由

在ChartJS中使用spanGaps时,是否获取空值的坐标?

如何正确地在ComponentWillUnmount中卸载状态以避免内存泄漏?

在使用JavaScript以HTML格式显示Google Drive中的图像时遇到问题

验证Java脚本函数中的两个变量

观察子组件中的@Output事件emits 器?

带有JS模块模式的Rails的Importmap错误:";Net::ERR_ABORTED 404(未找到)&Quot;