功能整合(一):滾動條的變相隱藏、js控制div的漸變顯示、滾動條監聽


1、滾動條的變相隱藏

思路:

1.  把body的橫向,縱向的超出部分隱藏,寬設置100%;高設置100%。就沒有body的滾動條了,

2.  然后把最外層的div的寬設置的比body的寬寬一點,把div的滾動條擠出去,並把div的橫向超出部分隱藏掉,就可以實現沒有滾動條也可以滾動的效果

 1 <html>
 2 <style>
 3     *{
 4         //邊距清零
 5         margin: 0;
 6         padding: 0;
 7     }
 8     //隱藏body的滾動條(會沒有滾動效果)
 9     .scroll{
10         overflow-x: hidden;overflow-y: hidden;
11     } 
12       //將最外層div設置大於body的寬高,並且x軸超出部分隱藏,y方向滾動條在屏幕之外,可滾動
13     .scroll-son{
14         height:101%; 
15         width:102%;
16         overflow-x: hidden;
17     }
18 </style>
19 <body style="height:100%;  width: 100%;" class="scroll">
20 
21     <div style=" background: #ccc; margin: 0 auto;" class="scroll-son"> 
22      <div style="background: white;" > 
23         <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p> 
24     </div>
25     <div> 
26         <p>2</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>2</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p>
27     </div>
28    </div>
29 
30 </body>
31 </html>                  
變相隱藏滾動條--示例

2、js控制div的漸變顯示

思路:使用定時器調用方法,在方法中將透明度慢慢變小

 1 //頁面加載完成
 2 window.onload = function(){
 3 //    定時器,沒0.02秒執行一次,並有一個函數名
 4     setInterval(bb,20);
 5 //    一個值賦值給一個變量
 6     var val = 100;
 7 // 運行定時器的那個函數
 8     function bb(){
 9 //    判斷那個變量大於等於0的時候就運行下面的方法
10         if(val >= 0){
11 //  找到要漸變的那個div
12         var aa = document.getElementById('sj1_2');
13 //變量的值 /100 的透明度輸出到樣式(opacit是透明度)
14         aa.style.opacity = val/100;
15 //每次這個變量都減減
16         val--;
17         }
18     }
19 };
js控制div的漸變顯示

3、滾動條監聽

1.window.scrolltop;對網頁滾動條進行操作

2. var  divh = document.getElementById("da").scrollTop;  獲取指定div的滾動條高度 ;配合定時器每多少秒獲取一次;

 1 //每個頁面的滾動條高度
 2 var sz = ["0","139", "769", "1399", "2029", "2659", "2999"];
 3 var k = 1;
 4 var scrollFunc = function (e) {
 5                 //"da"為最外層有滾動條的div(body滾動條已隱藏)
 6         var aa = document.getElementById("da");
 7         //找到隱藏的div賦值給dh1
 8         var dh1 = document.getElementById("kjdh");
 9         //隱藏div的左邊文本文字的值
10         var ycdiv1 = document.getElementById("mc");
11         //    隱藏div的文本文字的class所有文本文字
12         var ycdiv2 = document.getElementsByClassName("dh3_1_1_1_1");
13         
14             var e = e || window.event;
15         if (e.detail > 0||e.keyCode==40) { //當滑輪向下滾動時     
16             aa.scrollTo(0, sz[k]);   //滾動后到達的位置 0-x,sz[k]-y;
17             if (k == 1) {
18                 //          改變被隱藏掉的導航的顏色
19                 dh1.style.background = "linear-gradient(#141414,#1A1A1A)";
20                 //改變前面文本文字的顏色
21                 ycdiv1.style.color = "#9D9D9D";
22                 //改變所有文本文字的顏色
23                 for (var i = 0; i < ycdiv2.length; i++) {
24                     ycdiv2[i].style.color = "#4C4C4C";
25                 }
26             } //2-4一樣
27                         else if (k == 5) {
28                 //         改變被隱藏掉的導航的顏色
29                 dh1.style.background = "linear-gradient(#141414,#1A1A1A)";
30                 //改變前面文本文字的顏色
31                 ycdiv1.style.color = "#9D9D9D";
32                 //改變所有文本文字的顏色
33                 for (var o = 0; o < ycdiv2.length; o++) {
34                     ycdiv2[o].style.color = "#B2B2B2";
35                 }
36             }
37             //                數值++
38             k++;
39             if (k >= 6) {
40                 k = 6;
41             }
42             console.log("向下:"+k);
43         }
44         if (e.detail < 0||e.keyCode==38) {            
45             //當滑輪向上滾動時 
46             aa.scrollTo(0, sz[k]);
47                         if (k == 1) {
48                 //          改變被隱藏掉的導航的顏色
49                 dh1.style.background = "linear-gradient(#141414,#1A1A1A)";
50                 //改變前面文本文字的顏色
51                 ycdiv1.style.color = "#9D9D9D";
52                 //改變所有文本文字的顏色
53                 for (var i = 0; i < ycdiv2.length; i++) {
54                     ycdiv2[i].style.color = "#4C4C4C";
55                 }
56             } //2-4一樣,手動刪除
57                         else if (k == 5) {
58                 //         改變被隱藏掉的導航的顏色
59                 dh1.style.background = "linear-gradient(#141414,#1A1A1A)";
60                 //改變前面文本文字的顏色
61                 ycdiv1.style.color = "#9D9D9D";
62                 //改變所有文本文字的顏色
63                 for (var o = 0; o < ycdiv2.length; o++) {
64                     ycdiv2[o].style.color = "#B2B2B2";
65                 }
66             } 
67             k--;
68             if (k < 0 ) {
69                 k = 0;
70             }
71             console.log("向上:"+k);
72         }
73     }
74     //firefox  
75 document.addEventListener('DOMMouseScroll', scrollFunc, false);
76 document.addEventListener('keydown', scrollFunc, false);                                                               
通過滾動條監聽和鍵盤監聽控制頁面的滑動定位(只顯示當前頁面)

 


免責聲明!

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



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