我在Angular中尝试实现视差效果

由于关于Angular和parallax.js的组合的文章较少,所以我决定写一篇。

完成的形象

听说视差效果也有几种类型,但这篇文章是关于使用Angular实现根据鼠标悬停来使背景移动的例子。

Jun-21-2021 22-06-47.gif

参考的网站

你可以在以下网站上找到答案:如何在Angular 2+(5.2.10)中使用parallax.js – Medium。但我会再次在这里简要介绍一下。

准备好了

已经存在一个 Angular 项目,并将其解释为有一个名为 ParallaxComponent 的组件。

安装parallax-js的步骤1

npm i parallax-js
image.png

在中国的母语中,只需要一个选项来改述以下句子:

为 angular.json 添加对 parallax.js 的引用。

"scripts": [
  "./node_modules/parallax-js/dist/parallax.min.js"
]
image.png

需要使用require,因此需要安装@types/node库。

在参考这个的基础上,在Angular 7(TypeScript 3.1.3)中找不到名为 ‘require’ 的内容。

请安装@types/node库。

npm i @types/node
image.png

在 tsconfig.app.json 文件中添加 “types”:[“node”]。

  "compilerOptions": {
    "types": [
      "node"
    ]
image.png

组件的编辑

添加下面的ngAfterContentInit()函数

import { Component } from '@angular/core';

@Component({
  selector: 'app-parallax',
  templateUrl: './parallax.component.html',
  styleUrls: ['./parallax.component.scss']
})
export class ParallaxComponent {

  constructor() { }

  ngAfterContentInit() {
    const Parallax = require('parallax-js')
    const scene = document.getElementById('scene');
    const parallaxInstance = new Parallax(scene, {
      relativeInput: true,
      haverOnly: true
    });
  }

}

在以下的方式中,将背景图像设置在容器中的 CSS 中:

html、css可如此编写,通过 CSS 在容器中设置背景图像。

参考网站
https://csspoint101.com/parallax-on-hover-effect-using-parallax-js/

<div id="container" class="container">
    <div id="scene" class="scene">
                <div data-depth="1.00"><img src="../../assets/astronaut.png"></div>
                <div data-depth="0.60"><img src="../../assets/Neptune.png"></div>
                <div data-depth="0.40"><img src="../../assets/Mars.png"></div>
                <div data-depth="0.80"><img src="../../assets/rocket.png"></div>
    </div>
</div>
.container{
    background: url("../../assets/background.jpg") no-repeat;
    width: 100%;
    overflow: hidden;
}
image.png

总结

parallaxonhover-min.gif
广告
将在 10 秒后关闭
bannerAds