国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

JS前端知識點offset,scroll,client,冒泡,事件對象的應用整理總結

2024-05-06 16:52:51
字體:
來源:轉載
供稿:網友

本文實例講述了JS前端知識點offset,scroll,client,冒泡,事件對象的應用。分享給大家供大家參考,具體如下:

關于offset

多用于檢測盒子高度,寬度,位置等

- offsetWidth : 盒子的寬度, 包括(width, padding, border)
- offsetHeight: 盒子的高度, 包括(height, padding, border)
- offsetLeft: 返回自身距離帶有定位的上級盒子左邊的位置
- offsetTop: 返回自身距離帶有定位的上級盒子上邊的距離
- offsetParent: 返回自身帶有定位的父級對象

dom.style.left 與 dom.offsetLeft 的區別

  • offsetLeft 返回的值是數字,style.left 返回的帶'px'
  • offsetLeft 只讀, style.top 可讀寫
  • offsetLeft 本身可以無定位, style.left 本身必須有定位屬性

關于scroll

  • scrollTop : 盒子或頁面滾動距離頂部的距離
  • scrollLeft : 盒子或頁面滾動距離左側的距離
  • scrollTo : 盒子或頁面滾動到的位置,參數(x,y)
  • onscroll : 使用onscroll 事件檢測window或者dom的滾動

頁面scrollTop的兼容寫法

var scrolltop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;

關于client

  • clientWidth: width + padding
  • clientHeight
  • scrollWidth: width + padding + (如果有溢出,包括溢出部分)
  • scrollHeight: height + padding + (如果有溢出,包括溢出部分)

檢測屏幕可視區域寬度的兼容寫法

function getClientWidth() {  if(!window.innerWidth) {    return {      width: window.innerWidth,      height: window.innerHeight    }  } else if (document.compatMode === "CSS1Compat") {    // 標準模式下    return {      width: document.documentElement.clientWidth,      height: document.documentElement.clientHeight    }  }  // 怪異模式  return {    width:document.body.clientWidth,    height:document.body.clientHeight  }}

檢測電腦屏幕尺寸

  • window.screen.width
  • window.screen.height

事件的冒泡

冒泡順序演示

  • IE 6.0 : div > body > html > document
  • 其他瀏覽器:div > body > html > document > window
  • 不存在冒泡的事件: blur, focus, load, unload

阻止冒泡

借助事件對象 evt

  • 標準瀏覽器:evt.stopPropagation();
  • IE: evt.cancelBubble = true;

通過事件對象獲取事件源對象示例

btn.onclick = function(event) { var evt = window.event || event;  var target = evt.target ? evt.target : evt.srcElement; console.log(target);}

常用的 event 對象屬性

  • pageX : 光標相對于該網頁的水平位置 (非IE6,7,8屬性)
  • pageY : 光標相對于該網頁的垂直位置 (非IE6,7,8屬性)
  • screenX : 光標相對于該屏幕的水平位置
  • screenY : 光標相對于該屏幕的垂直位置
  • clientX : 光標相對于該網頁可見區域的水平位置
  • clientY : 光標相對于該網頁可見區域的垂直位置
  • target : 該事件被傳送到的對象
  • type : 事件的類型

event 對象兼容的寫法示例

document.onclick = function(event) { var evt = event || window.event;}

pageX 和 pageY的兼容性

pageX = evt.clientX + document.documentElement.scrollLeft;pageY = evt.clientY + document.documentElement.scrollTop;

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜川县| 醴陵市| 宜兰县| 神木县| 盐池县| 营口市| 肥乡县| 泸州市| 乌拉特前旗| 从江县| 绥中县| 旅游| 邯郸县| 巴中市| 印江| 渝北区| 福建省| 介休市| 中超| 黄平县| 尼勒克县| 布尔津县| 三明市| 邳州市| 华蓥市| 宁明县| 台北市| 兰溪市| 八宿县| 花垣县| 梁河县| 云龙县| 柳州市| 湘乡市| 平乡县| 新乡市| 桂林市| 禹州市| 锦屏县| 当阳市| 贺州市|