首頁  >  文章  >  web前端  >  最新整理的JavaScript常見事件類型

最新整理的JavaScript常見事件類型

php是最好的语言
php是最好的语言原創
2018-08-10 17:21:112360瀏覽

UI (User Interface) 事件,當使用者與頁面上的元素互動時觸發

Load事件:當頁面完全載入後,就會觸發window上的load事件。

Unload事件:在文件被完全卸載後觸發。只要使用者從一個頁面切換到另一個頁面,就會觸發。

Resize事件:當瀏覽器調整到一個新的高度或寬度時,就會觸發resize事件。注意不要在這個事件中加入計算邏輯,避免效能問題。

        EventUtil.addHandler(window, "resize", function (event) {
                //防抖函数
                //每次调用函数都会清除之前的计数器,并重新计数,计数完成时,执行操作。
            var timer;
            return function () {
                if (timer) {
                    clearTimeout(timer);
                }
                timer = setTimeout(function () { //setTimeout返回唯一标识符,可以使用它来取消计数器
                    console.log("123");
                },500);
            }
        }());//此处的双括号表示,立即调用返回值

Scroll事件:當使用者捲動帶有流動條的元素中的內容時,在該元素上面觸發。

        EventUtil.addHandler(window, "scroll", function (event) {
            //函数节流
            var timer;
            return function () {
                if (timer) {
                    clearTimeout(timer);
                }
                timer = setTimeout(function () { //setTimeout返回唯一标识符,可以使用它来取消计数器
                    if (document.compatMode == "CSS1Compat") {
                        //标准模式
                        console.log("Left:" + document.documentElement.scrollLeft);
                        console.log("Top:" + document.documentElement.scrollTop);
                    }
                    else {
                        //混杂模式
                        console.log("Left:" + document.body.scrollLeft);
                        console.log("Top:" + document.body.scrollTop);
                    }
                }, 500);
            }     
        }());

 焦點事件,在頁面獲得或失去焦點時觸發

Blur事件:在元素失去焦點時觸發。這個事件不會冒泡;所有瀏覽器都支援它;

Focus事件:在元素獲得焦點時觸發。這個事件不會冒泡,所有瀏覽器都支援它;

Focusin事件:在元素獲得焦點時觸發。這個事件與HTML事件focus等價,但它冒泡,支援這個事件的瀏覽器有IE5 safari5.1 Opera11.5 和 Chrome;

Focusout事件: 在元素獲得失去時觸發。這個事件是HTML事件blur的通用版本,,支援這個事件的瀏覽器有IE5 safari5.1 Opera11.5 和Chrome;

滑鼠與滾輪事件

Click事件:在使用者單機滑鼠左鍵或按下回車鍵時觸發。

DbClick事件:使用者雙擊滑鼠左鍵時觸發。

MouseDown事件:在使用者按下滑鼠任意按鈕時觸發。

MouseEnter事件:滑鼠從外部首次移入到元素範圍內觸發。

MouseLeave事件:滑鼠移出元素範圍之外觸發。

MouseMove事件:當滑鼠指標在元素內部移動時重複觸發。

MouseOut事件:在滑鼠指標位於一個元素上方,然後使用者將其移入到另一個元素時觸發。

MouseOver事件:在滑鼠指標位於一個元素外部,然後使用者將其首次移入到另一個元素邊界之內時觸發。

MouseUp:在使用者釋放滑鼠指標時觸發。

幾個滑鼠座標位置:

1.客戶區座標位置

滑鼠事件都是在瀏覽器視窗中的特定位置上發生的。這個位置保存在事件物件的clientX和clientY屬性中。

2.頁面座標位置

pageX和pageY能告訴你事件是在頁面中什麼位置發生的。換句話說,這兩個屬性表示遊標在頁面中的位置,因此座標是從頁面本身而不是視口左邊或頂邊計算的。

在頁面沒有捲動的情況下,pageX和pageY和clientX和clientY是相等的。

IE8及更早的版本不支援頁面座標位置,不過可以使用客戶區座標位置和捲動資訊計算出來。

        EventUtil.addHandler(document.getElementById("p1"), "click", function (event) {
            //兼容IE8及之前版本
            event = EventUtil.getEvent(event);
            var pageX = event.pageX,
                pageY = event.pageY;
            if (pageX === undefined) {
                pageX = event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft);
            }
            if (pageY === undefined) {
                pageY = event.clientY + (document.body.scrollTop || document.documentElement.scrollTop);
            }
            //console.log("pageX:" + pageX);
            //console.log("pageY:" + pageY);
        });

3.螢幕座標位置

screenX和screenY屬性可以決定滑鼠事件發生時滑鼠指標相對於整個螢幕的座標資訊。

相關推薦:

常見的JavaScript易錯知識點整理

詳解讀JavaScript中的事件流與事件處理程序(圖文教學)

以上是最新整理的JavaScript常見事件類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn