网页栏目左侧固定,当滚动到底部时自动调整位置

预览地址:

https://ovsexia.gitee.io/leftfixed/

 

html:

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <script src="js/jquery-1.10.1.min.js" type="text/javascript"></script>
 6 <link href="css/layout.css" type="text/css" rel="stylesheet" />
 7 <link href="css/style.css" type="text/css" rel="stylesheet" />
 8 </head>
 9 
10 <div class="top"></div>
11 
12 <div class="page">
13   <div class="left">
14     <div class="left_poi"></div>
15     <div class="left_in">
16       <p><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></p>
17     </div><!--left_in-->
18     
19     <script>
20     $(window).scroll(function()
21     {
22         saction();
23     });
24     function saction()
25     {
26         sj = 20; //底部间隔
27         st = $(window).scrollTop(); //滚动条高度
28         sd = $(".left_poi").offset().top;
29         sd_h = $(".left_in").height();
30         sb = $(".bottom").offset().top;
31         sb_h = $(".bottom").height();
32         rd_h = $(".right").height();
33         bh = window.innerHeight;
34         si = sb-sd_h;
35         
36         if(st>sd && rd_h>=sd_h){
37             $(".left_in").addClass("on");
38             if(st>si){
39                 sy = bh-(sb-st)+sj;
40                 $(".left_in").css({"top":"auto","bottom":sy+"px"});
41             }else{
42                 $(".left_in").css({"top":"","bottom":""});
43             }
44         }else{
45             $(".left_in").removeClass("on");
46         }
47     }
48     </script>
49   </div><!--left-->
50   
51   <div class="right"></div>
52   
53   <div class="clear"></div>
54 </div><!--page-->
55 
56 <div class="bottom"></div>
57 
58 </body>
59 </html>

 

css:

 1 @charset "utf-8";
 2 .clear {clear:both; height:0 !important; width:0 !important; overflow:hidden; font-size:0;}
 3 
 4 .top {width:100%; height:150px; background:#0CC;}
 5 .bottom {width:100%; height:400px; background:#39C;}
 6 .page {width:1200px; margin:20px auto; position:relative;}
 7 .left {width:200px; float:left;}
 8 .left_in {width:200px; background:#46bc67; border-top:3px solid #000; border-bottom:3px solid #000;}
 9 .left_in.on {position:fixed; top:0;}
10 .left_poi {width:100%; height:1px; overflow:hidden;}
11 .right {width:960px; height:2100px; float:right; overflow:hidden; background:#FC3;}

如果有想学习web前端的程序员,加VX:TZ07900, 免费送web前端视频教程噢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android导航栏的自动滚动到选中的栏目通常可以通过以下步骤实现: 1. 首先,确定导航栏的布局,可以使用LinearLayout或者RecyclerView等布局容器。 2. 在每个导航栏的项上设置点击事件监听器,监测用户点击了哪个栏目。 3. 在点击事件监听器中,获取被点击的栏目位置(例如索引),并保存到一个变量中。 4. 利用Android提供的scrollTo()或者smoothScrollTo()方法,将导航栏的容器滚动到被选中的栏目位置。 具体实现步骤如下: 1. 在XML布局文件中定义导航栏的容器,例如LinearLayout。 2. 在Java代码中获取该LinearLayout,并设置点击事件监听器。 ``` LinearLayout navContainer = findViewById(R.id.nav_container); for (int i = 0; i < navContainer.getChildCount(); i++) { final int position = i; View navItem = navContainer.getChildAt(i); navItem.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 在这里处理导航栏项的点击事件 // 获取点击的位置 int selectedPosition = position; // 滚动到被选中的栏目 navContainer.scrollTo(0, navItem.getTop()); } }); } ``` 在上述代码中,通过遍历导航栏容器中的子项,为每个子项设置点击事件监听器。当用户点击某个子项,获取其位置滚动到该栏目位置。 这样,当用户点击导航栏的某个栏目,该栏目自动滚动到可见区域,从而提供更好的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值