Animated Background-Pics
To get the pic to cover the whole screen on different screen sizes it is good to attach it to the <body>
tag.
The library Body-Classname provides a declarative way to specify document.body.className. I additionally used Emotion to write css styles with JavaScript.
/** @jsx jsx */ (before -> import React from 'react'; for emotion library ) import BodyClassName from 'react-body-classname'; import { jsx } from '@emotion/core' (...) let sectionStyle = (process.env.PUBLIC_URL + `/images/${image()}.png`) ; let errorStyle =(process.env.PUBLIC_URL + `/images/error.gif`) ; (...) <BodyClassName className="container" css={{ backgroundImage: `url("${errorState ? errorStyle : sectionStyle}")` }}> (...) <BodyClassName/>
body{ background-size: cover; background-repeat: no-repeat; background-position: center; background-attachment: fixed; min-height: 100%; min-width: 100%; }
Where to put your images?
<src>
- have an image-folder in the source folder and access it from there ->
<img src="/images/imagename.png" alt='image'/>
<public>
- The react docs explain this nicely in the documentation, you have to use
process.env.PUBLIC_URL
with images placed in the public folder.<img src={process.env.PUBLIC_URL + '/img/logo.png'} />
Top comments (0)