Fiddle:https://jsfiddle.net/jzhang172/b09pbs4v/
I am attempting to create a unique scrolling effect where any content within the bordered container becomes fully opaque (opacity: 1) as the user scrolls. It would be great if there could also be a smooth transition to full opacity when entering the box.
I suspect achieving this solely with CSS might not be possible, so I am in the process of learning jQuery and JavaScript. Any help is appreciated!
As an additional question: How will this functionality impact mobile users? I want to ensure that this effect is only present on desktop and other devices while maintaining a constant opacity of 1 on mobile.
.box{
height:500px;
width:100%;
background:gray;
font-size:20px;
overflow:auto;
}
.box p{
opacity:.5;
}
.boxtwo{
height:100px;
width:100%;
background:red;
opacity:.5;
}
.make-me-solid{
position:absolute;
top:0;
height:400px;
width:100%;
border:1px solid black;
}
body,html{
margin:0;
padding:0;
}
<div class="box">
<div class="make-me-solid"></div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sodales quam quis dapibus congue. Praesent efficitur odio quis est sodales, id sagittis nisl euismod. Sed lacinia, enim vitae interdum imperdiet, quam lacus vehicula eros, eu feugiat ligula risus at justo. Morbi id varius diam. Nullam risus neque, porta eu nisl id, rhoncus malesuada justo. Sed a arcu hendrerit, fringilla nulla id, fringilla nisl. Suspendisse vehicula sollicitudin lacinia. Proin quis nibh efficitur, consectetur lectus at, eleifend purus. Nullam finibus libero eget ante venenatis finibus. Phasellus ultrices magna non maximus imperdiet. Vestibulum euismod rhoncus tortor, eu tincidunt leo placerat et. Vestibulum convallis dapibus turpis ut consequat.
</p>
<div class="boxtwo"></div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sodales quam quis dapibus congue. Praesent efficitur odio quis est sodales, id sagittis nisl euismod. Sed lacinia, enim vitae interdum imperdiet, quam lacus vehicula eros, eu feugiat ligula risus at justo. Morbi id varius diam. Nullam risus neque, porta eu nisl id, rhoncus malesuada justo. Sed a arcu hendrerit, fringilla nulla id, fringilla nisl. Suspendisse vehicula sollicitudin lacinia. Proin quis nibh efficitur, consectetur lectus at, eleifend purus. Nullam finibus libero eget ante venenatis finibus. Phasellus ultrices magna non maximus imperdiet. Vestibulum euismod rhoncus tortor, eu tincidunt leo placerat et. Vestibulum convallis dapibus turpis ut consequat.
</p>
<div class="boxtwo"></div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sodales quam quis dapibus congue. Praesent efficitur odio quis est sodales, id sagittis nisl euismod. Sed lacinia, enim vitae interdum imperdiet, quam lacus vehicula eros, eu feugiat ligula risus at justo. Morbi id varius diam. Nullam risus neque, porta eu nisl id, rhoncus malesuada justo. Sed a arcu hendrerit, fringilla nulla id, fringilla nisl. Suspendisse vehicula sollicitudin lacinia. Proin quis nibh efficitur, consectetur lectus at, eleifend purus. Nullam finibus libero eget ante venenatis finibus. Phasellus ultrices magna non maximus imperdiet. Vestibulum euismod rhoncus tortor, eu tincidunt leo placerat et. Vestibulum convallis dapibus turpis ut consequat.
</p>
</div>