实现Parallax在Angular2应用程序中不显示图像

问题描述:

我正在构建一个包含Angular 2和Materialise CSS的网页;然而,当我尝试使用Materialise的的视差特性,图像不显示实现Parallax在Angular2应用程序中不显示图像

这里是我的Angular2组件类:

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

@Component({ 
    selector: 'my-app', 
    template: ` 
    <img src="https://unsplash.it/1425/500" alt="Unsplashed background img 1"> 
    <div id="index-banner" class="parallax-container"> 
     <div class="section no-pad-bot"> 
     <div class="container"> 
      <br><br> 
      <h1 class="header center teal-text text-lighten-2">Parallax Template</h1> 
      <div class="row center"> 
      <h5 class="header col s12 light">A modern responsive front-end framework based on Material Design</h5> 
      </div> 
      <div class="row center"> 
      <a href="http://materializecss.com/getting-started.html" id="download-button" class="btn-large waves-effect waves-light teal lighten-1">Get Started</a> 
      </div> 
      <br><br> 
     </div> 
     </div> 
     <div class="parallax"><img src="https://unsplash.it/1425/500" alt="Unsplashed background img 1"></div> 
    </div> 
    <div class="container"> 
     <div class="section"> 
     <!-- Icon Section --> 
     <div class="row"> 
      <div class="col s12 m4"> 
      <div class="icon-block"> 
       <h2 class="center brown-text"><i class="material-icons">flash_on</i></h2> 
       <h5 class="center">Speeds up development</h5> 
       <p class="light">We did most of the heavy lifting for you to provide a default stylings that incorporate our custom components. Additionally, we refined animations and transitions to provide a smoother experience for developers.</p> 
      </div> 
      </div> 
      <div class="col s12 m4"> 
      <div class="icon-block"> 
       <h2 class="center brown-text"><i class="material-icons">group</i></h2> 
       <h5 class="center">User Experience Focused</h5> 
       <p class="light">By utilizing elements and principles of Material Design, we were able to create a framework that incorporates components and animations that provide more feedback to users. Additionally, a single underlying responsive system across all platforms allow for a more unified user experience.</p> 
      </div> 
      </div> 
      <div class="col s12 m4"> 
      <div class="icon-block"> 
       <h2 class="center brown-text"><i class="material-icons">settings</i></h2> 
       <h5 class="center">Easy to work with</h5> 
       <p class="light">We have provided detailed documentation as well as specific code examples to help new users get started. We are also always open to feedback and can answer any questions a user may have about Materialize.</p> 
      </div> 
      </div> 
     </div> 
     </div> 
    </div> 
    <div class="parallax-container valign-wrapper"> 
     <div class="section no-pad-bot"> 
     <div class="container"> 
      <div class="row center"> 
      <h5 class="header col s12 light">A modern responsive front-end framework based on Material Design</h5> 
      </div> 
     </div> 
     </div> 
     <div class="parallax"><img src="background2.jpg" alt="Unsplashed background img 2"></div> 
    </div> 
    <div class="container"> 
     <div class="section"> 
     <div class="row"> 
      <div class="col s12 center"> 
      <h3><i class="mdi-content-send brown-text"></i></h3> 
      <h4>Contact Us</h4> 
      <p class="left-align light">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam scelerisque id nunc nec volutpat. Etiam pellentesque tristique arcu, non consequat magna fermentum ac. Cras ut ultricies eros. Maecenas eros justo, ullamcorper a sapien id, viverra ultrices eros. Morbi sem neque, posuere et pretium eget, bibendum sollicitudin lacus. Aliquam eleifend sollicitudin diam, eu mattis nisl maximus sed. Nulla imperdiet semper molestie. Morbi massa odio, condimentum sed ipsum ac, gravida ultrices erat. Nullam eget dignissim mauris, non tristique erat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;</p> 
      </div> 
     </div> 
     </div> 
    </div> 
    <div class="parallax-container valign-wrapper"> 
     <div class="section no-pad-bot"> 
     <div class="container"> 
      <div class="row center"> 
      <h5 class="header col s12 light">A modern responsive front-end framework based on Material Design</h5> 
      </div> 
     </div> 
     </div> 
     <div class="parallax"><img src="http://materializecss.com/templates/parallax-template/background3.jpg" alt="Unsplashed background img 3"></div> 
    </div> 
    ` 
}) 

export class AppComponent {} 

正如你可能已经注意到了,在我的模板中的第一行是一个图像标记。此图片标签正常工作。

但是,视差容器内的其他图像标签无法正常工作,并且它们是否在本地存储或外部资源无关紧要。

在我的index.html文件我有以下代码:

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Angular QuickStart</title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="styles.css"> 

    <!-- Polyfill(s) for older browsers --> 
    <script src="node_modules/core-js/client/shim.min.js"></script> 

    <script src="node_modules/zone.js/dist/zone.js"></script> 
    <script src="node_modules/reflect-metadata/Reflect.js"></script> 
    <script src="node_modules/systemjs/dist/system.src.js"></script> 

    <script src="systemjs.config.js"></script> 
    <script> 
     System.import('app').catch(function(err){ console.error(err); }); 
    </script> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.8/css/materialize.min.css"> 
    </head> 

    <body> 
    <nav class="blue darken-4" role="navigation"> 
     <div class="nav-wrapper container light"><a id="logo-container" href="/" class="brand-logo">My App</a> 
     <ul class="right hide-on-med-and-down"> 
      <li><a href="#">Navbar Link</a></li> 
     </ul> 
     <ul id="nav-mobile" class="side-nav"> 
      <li><a href="#">Navbar Link</a></li> 
     </ul> 
     <a href="#" data-activates="nav-mobile" class="button-collapse"><i class="material-icons">menu</i></a> 
     </div> 
    </nav> 
    <my-app>Loading AppComponent content here ...</my-app> 
    <footer class="page-footer blue darken-4"> 
     <div class="footer-copyright"> 
     <div class="container"> 
      Made by Materialize 
     </div> 
     </div> 
    </footer> 
    <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.8/js/materialize.min.js"></script> 
    <script src="assets/main.js"></script> 
    </body> 
</html> 

在这里,除了包括实现,jQuery和Angular2的东西,我已经包含了两个文件:styles.css的和main.js.

styles.css包含视差模板的CSS。并且下面的代码属于main.js

(function($){ 
    $(function(){ 

    $('.button-collapse').sideNav(); 
    $('.parallax').parallax(); 

    }); // end of document ready 
})(jQuery); // end of jQuery name space 

我看不到任何理由让我的代码不工作,但它不是。我哪里错了?

在Chrome中检查我的应用程序时,我发现图像被发现没有404错误。该应用程序似乎并没有显示它们。

对于paralax使用此代码:

<div class="parallax-container"> 
    <div class="parallax" materialize="parallax"><img src="http://materializecss.com/images/parallax1.jpg"></div> 
</div> 
<div class="section white"> 
    <div class="row container"> 
    <h2 class="header">Parallax</h2> 
    <p class="grey-text text-darken-3 lighten-3">Parallax is an effect where the background content or image in this case, is moved at a different speed than the foreground content while scrolling.</p> 
    </div> 
</div> 
<div class="parallax-container"> 
    <div class="parallax" materialize="parallax"><img src="http://materializecss.com/images/parallax2.jpg"></div> 
</div> 

对于Sidnav使用此代码

<nav role="navigation"> 
     <div class="nav-wrapper container"> 
     <a id="logo-container" href="#" class="brand-logo">Logo</a> 
     <ul class="right hide-on-med-and-down"> 
      <li><a href="#">Navbar Link</a></li> 
     </ul> 

     <ul id="nav-mobile" class="side-nav" > 
      <li><a href="#">Navbar Link</a></li> 
     </ul> 
     <a href="#" materialize="sideNav" data-activates="nav-mobile" class="button-collapse"><i class="material-icons">menu</i></a> 
     </div> 
    </nav>