實現在某一指定位置的div在窗口滾動到指定位置的時候fixed定位


HTML:

1 <div class="top">
2     ·····內容
3 </div>
4 <div class="scroll"></div>
5 <div class="bottom">
6     ·······內容
7 </div>

CSS:

1 .sfixed{
2   position:fixed;
3   top:0px;
4   left:0px;
5   z-index:10;
6 }
7 .scroll{
8   ······樣式
9 }

Jq:

 1 <script>
 2 
 3     var top1=$(".scroll").offset().top;
 4 
 5     $(window).scroll(function(){
 6 
 7       var  win_top=$(this).scrollTop();
 8 
 9       var  top=$(".scroll").offset().top;
10 
11       if(win_top>=top){
12 
13         $(".scroll").addClass("sfixed");
14 
15       }//如果此處用else判斷來remove sfixed這個類的話是不行的,因為當加上這個類的時候,".scroll"這個元素fixed的top值是0,獲取到的offset.top就相當於是當前滾動條的滾動的距離,win_top與top值就一直相等了,這樣會導致抖動;只有與以前的距離做比較才能實現滑上去的時候能回到原來的位置。
16 
17       if(win_top<top1){
18 
19         $(".scroll").removeClass("sfixed");
20 
21       }
22 
23     })
24 
25   </script>

 效果:與最初的top值比較:

 

  不與最初的top值比較,直接else:

思路:滑下來的時候,如果此時滾動條到頂部的距離大於最初那個div到頂部的距離的時候就讓這個div固定定位;

   滑上去的時候,如果此時滾動條到頂部的距離比原來div到頂部的距離的時候就去掉固定定位的屬性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM