頁面滾動的監聽

https://liyaoli.com/2015-08-17/about-scroll.html

這篇文章涉及到“滾動條”的相關東東。

需求(兼容性IE9 +)是類似於stickUp.js一樣的效果,根據頁面的滾動(滾動),對導航條的位置進行不同的調整。除此之外,點擊首屏的按鈕,頁面會滾動到指定的次屏。

這個需求看起來很簡單,但在完成的過程中遇到了幾個問題:

頁面滾動的監聽(滾動事件監聽器)應該綁定在哪個元素上?窗口,doucment,body,html?
通過哪個元素的何種屬性來控制頁面,使其滾動到指定的位置?



取得 body 捲動後的高度:http://www.eion.com.tw/Blogger/?Pid=1154
參考資料講解了 JavaScript 和 jQuery 兩種方式,並有範例可以線上測試效果。


指定符合網頁的文件型別宣告 <!DOCTYPE html> 正確取得 document.documentElement.scrollTop 滾動元素捲動後的高度,使用判斷方式以符合不同之 IEFirefoxChromeSafariOpera 瀏覽器。

判斷瀏覽器

document.compatMode = CSS1Compat 標準模式
window.opera Opera 顯示為 [object Opera] 其他瀏覽器則顯示為 undefined

JavaScript

function getScrollTop(){
  var bodyTop = 0;
  if (typeof window.pageYOffset != "undefined") {
    bodyTop = window.pageYOffset;

  } else if (typeof document.compatMode != "undefined"
             && document.compatMode != "BackCompat") {
    bodyTop = document.documentElement.scrollTop;

  } else if (typeof document.body != "undefined") {
    bodyTop = document.body.scrollTop;
  }
  /*顯示出捲動後的高度值*/
  document.getElementById("jsScrollTop").innerHTML = bodyTop;
}
0



jQuery .scroll()

jQuery .scroll() 事件可用於滾動的元素和瀏覽器視窗物件 window
只需將函數綁定到指定元素的 scroll 事件,當瀏覽者滾動指定的元素時則會觸發捲動 scroll 事件運行指定的 function 函數。
$(function () {
  $(window).scroll(function () {
    var scrollVal = $(this).scrollTop();
    $("span.qScrollTop").text(scrollVal);
  });
});
1070

if(scrollVal > 500){
  /* 如果滾動的物件捲動 > 500 則觸發指定的動作。*/
}




程式語言編年史

程式語言編年史原文 下面這張圖片描繪了整個程式語言的歷史。包括各種程式語言的發明人、程式語言的特點和適用領域、被什麼網站或公司使用等 (檢視 完整高清圖 )。 之所以會有那麼多不同的程式語言是因為設計程式語言的初衷不同、對語言學習曲線的追求不同、不同程式之間的執行成本差異...