2

I am using linear-gradient for my background-image. That was working well until I set background-attachment to fixed.

How can I do same effect with background-attachment: fixed;

.photo { background-image: linear-gradient( to bottom, rgba(255,255,255,0) 80%, rgba(255,255,255,1) 100% ), url(https://s30.postimg.org/v67rh5bdd/image.jpg); background-attachment: unset; /* 'fixed' does not work */ background-position: center top; background-repeat: no-repeat; width: 100%; height: 55vh; position: absolute; } .panel { margin-top:30vh; } .panel-body { height: 100vh; }
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> </head> <body> <div class="container"> <div clasas="row"> <div class="photo"></div> <div class="col-xs-10 col-xs-offset-1"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title">Panel title</h3> </div> <div class="panel-body"> Panel content </div> </div> </div> </div> </div> <script src="https://code.jquery.com/jquery.min.js"></script> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" type="text/css" /> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> </body> </html>

or jsbin: http://jsbin.com/miqizetoqu/edit?css,output

1
  • is the intention to have the white gradient "move over to top" of the fixed picture, or to have both remain fixed to the top of the page? Commented Jan 11, 2017 at 1:01

1 Answer 1

2

Why not use a pseudo element on the .photo div to hold the gradient. This can be positioned absolutely over the top of the image.

.photo { background-image: url(https://s30.postimg.org/v67rh5bdd/image.jpg); background-attachment: fixed; background-position: center top; background-repeat: no-repeat; background-size: cover; width: 100%; height: 55vh; position: absolute; } .photo::before { content: ''; display: block; position: absolute; top: 0; bottom: 0; left: 0; right: 0; background: linear-gradient( to bottom, rgba(255,255,255,0) 80%, rgba(255,255,255,0.1) 82%, rgba(255,255,255,0.2) 84%, rgba(255,255,255,0.3) 86%, rgba(255,255,255,0.4) 88%, rgba(255,255,255,0.5) 90%, rgba(255,255,255,0.6) 92%, rgba(255,255,255,0.7) 94%, rgba(255,255,255,0.8) 96%, rgba(255,255,255,0.9) 98%, rgba(255,255,255,1) 100% ); } 

See this bin:

http://jsbin.com/tepalahipe/edit?css,output

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.