There is still no way in IE to make CSS parallax work. But since Webkit-based browsers such as Chrome and Opera (I have not tested Safari) work well with parallax, you can target Webkit browsers and display a parallax background for them and display different code - without parallax - for other browsers.
First, I put the parallax code inside @media queries, for example:
@media screen and (-webkit-min-device-pixel-ratio:0) and (min-resolution: .001dpcm) { .container { [rule contents] } .background { [rule contents] } .page-content { [rule contents] } }
The first attribute (-webkit-min-device-pixel-ratio:0) is for all Webkit-based browsers, but since I assume that not all versions of Webkit browsers will support this parallax effect, I also added a second attribute that limits browsers Chrome 29+ and Opera 16+ (I excluded Safari just to be safe, but you can choose another hack that also targets Safari if you find it works).
It would probably be a lot better to use the function discovery function , but I haven't studied JavaScript yet, and above is a CSS-based solution.
After placing the parallax rules in the @media request, I set an alternative default rule for the div element.
(Although splitting a site into the front and back div elements is not required without parallax, setting the back div element with a background image rather than body or html eliminates a ton of lag.)
To keep as much resemblance to the parallax version as possible, I set the background image to position: fixed .
Because browsers look at the CSS file from top to bottom and apply styles in this order, it is important to have the parallax .back rule (and its surrounding @media request) approaching after the standard, non-parallelax .back in the file.
And, of course, I made sure that all the attributes applied to the standard and parallax .back rules .back present only in the standard one to save space (they will be used by Webkit browsers along with additional rules in the parallax version).