मैं पृष्ठ स्क्रॉल प्रभाव का उपयोग करना चाहता हूं ताकि लेआउट में केवल #right तत्व की सामग्री स्क्रॉल हो। एक समान प्रभाव फेसबुक पर देखा जा सकता है जब स्क्रॉल पोस्ट (पोस्ट स्क्रॉल किए जाते हैं जबकि बाएं पैनल और ऊपरी बार जगह में रहते हैं)। आप में से किसी के पास यह विचार है कि मैं कोड में अपने #right कंटेनर के लिए समान प्रभाव कैसे प्राप्त कर सकता हूं?
#header,#footer{
width:100%;
height:80px;
background:blue;
}
#content{
width:1000px;
margin:0 auto;
overflow:hidden;
}
#left{
width:200px;
float:left;
background:green;
margin:20px 0;
height:100vh;
}
#right{
float:right;
width:calc(100% - 220px);
}
.item{
height:80px;
margin:20px 0;
background:red;
}
<div id="header">
header
</div>
<div id="content">
<div id="left">
left
</div>
<div id="right">
<!-- this content is scrolling-->
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
</div>
</div>
<div id="footer">
footer
</div>
2
urbciech
25 अक्टूबर 2019, 10:26
3 जवाब
सबसे बढ़िया उत्तर
JQuery का उपयोग करके आप position:fixed
और top:0
की शैली के साथ एक वर्ग जोड़ सकते हैं और किनारे पर तत्व के बेहतर दृश्य/प्रभाव के लिए स्क्रॉल फ़ंक्शन का उपयोग करके ट्रिगर कर सकते हैं।
$(window).scroll(function(){
var header_height = $('#header').height();
if ($(this).scrollTop() > header_height) {
$('#left').addClass('fixed');
} else {
$('#left').removeClass('fixed');
}
});
#header,#footer{
width:100%;
height:80px;
background:blue;
}
#content{
width:1000px;
margin:0 auto;
overflow:hidden;
}
#left{
width:200px;
float:left;
background:green;
margin:20px 0;
height:100vh;
}
#right{
float:right;
width:calc(100% - 220px);
}
.item{
height:80px;
margin:20px 0;
background:red;
}
.fixed{
position:fixed;
top:0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="header">
header
</div>
<div id="content">
<div id="left">
left
</div>
<div id="right">
<!-- this content is scrolling-->
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
</div>
</div>
<div id="footer">
footer
</div>
4
little_coder
25 अक्टूबर 2019, 07:58
स्थिति का प्रयोग करें: निश्चित और "बाएं" वर्ग की ऊंचाई घटाएं।
0
Akshita Karetiya
31 अक्टूबर 2019, 12:00
CSS में position: fixed
प्रॉपर्टी का उपयोग करें
#header,#footer{
width:100%;
height:80px;
background:blue;
}
#content{
width:1000px;
margin:0 auto;
overflow:hidden;
}
#left{
width:200px;
float:left;
background:green;
/* Enter The Position Fixed Property Here! */
position:fixed;
margin:20px 0;
height:100vh;
}
#right{
float:right;
width:calc(100% - 220px);
}
.item{
height:80px;
margin:20px 0;
background:red;
}
<div id="header">
header
</div>
<div id="content">
<div id="left">
left
</div>
<div id="right">
<!-- this content is scrolling-->
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
</div>
</div>
<div id="footer">
footer
</div>
2
Ibnelaiq
25 अक्टूबर 2019, 07:32