JS高度融合入門筆記(二)

来源:https://www.cnblogs.com/tell-me-why-not/archive/2018/08/24/9529892.html
-Advertisement-
Play Games

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>JS2</title> <style type="text/css"> #d1{ height: 100px; width: 100px; background-color: red; ...


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS2</title>
<style type="text/css">
#d1{
height: 100px;
width: 100px;
background-color: red;
position: absolute;
top: 0;
left: 0;

transition-delay: 0s;
transition-duration: 6s;
transition-timing-function: linear;
transition-property:all;
}
</style>
</head>
<body>

<div style="border: solid 5px blue;">
<div style="height: 50px;"></div>
<div id="aa"></div>
</div>
<textarea id="t"></textarea>
<button id="btn">點一下</button>

<div id="dd"></div>
<div id="d1"></div>

<script type="text/javascript">
//距離問題
var a = document.getElementById('aa');
console.dir(a);

//clientHeight = 內邊距 + height(實際尺寸) 不含滾動軸的寬度
//offsetHeight = 內邊距 + height + 邊框寬度
//scrollHeight = 如果滾動條出現,則是可滾動的極限高度。如果沒有滾動條,高度和clientHeight一樣
a.clientHeight;
a.clientWidth;
a.offsetWidth;
a.offsetHeight;
a.offsetTop;
a.clientTop

a.scrollTop;

a.scrollWidth;
a.scrollHeight;

//滑鼠的距離
//滑鼠點擊事件發生的時候"點擊點"距離瀏覽器左上角的距離
//如果有滾動距離,該距離不含滾動距離,知識相對看到的區域左上角的位置
var i = document.getElementById('dd');
i.onclick = function (xxx) {
event.clientX;
event.clientY;

event.pageX;
event.pageY;

event.target;
event.toElement;
}

//按鍵事件及按鍵判斷
document.onkeydown = function(){
var d1 = document.getElementById('d1');

if (event.key == 'd') {
d1.style.left = d1.offsetLeft + 100 + 'px';
}

if (event.key == 'a') {
d1.style.left = d1.offsetLeft - 100 + 'px';
}

if (event.key == 's') {
d1.style.top = d1.offsetTop + 100 + 'px';
}

if (event.key == 'w') {
d1.style.top = d1.offsetTop - 100 + 'px';
}
}

//JS有兩種流:捕獲流和冒泡流
//捕獲流:最外層最先接收的事件,然後逐級向下傳播,知道傳到具體的元素對象上
//冒泡流:最內層(最具體的元素)最先接收到事件,然後逐級向上傳播,知道最外層

//HTML事件就是事件以及事件的處理程式和html混寫在一起
//DOM 0級事件
d1.onclick = f1;
//清楚DOM 0級事件
d1.onclick = null;

//DOM 2級事件
//可以為一個對象添加多個相同的事件處理程式,執行順序按照代碼先後順序執行
//參數1:事件類型(不帶on)
//參數2:事件的處理程式
//參數3:表示添加事件的時機,為true時表示在捕獲階段添加事件,false表示在冒泡階段添加事件
d1.addEventListener('click',f1,true);
d1.addEventListener('click',f2,true);
//移出DOM 2級事件處理程式(參數和綁定時的一致)
d1.removeEleventListener('click',f1,true);

//IE事件模型
//添加事件(只在冒泡階段添加),該方法也可以為一個對象添加多個相同事件
//參數1:事件類型(帶on)
//參數2:事件的處理程式

d1.attachEvent('onclick',f1);
d1.attachEvent('onclick',f2);
//移除事件
d1.detachEvent('onclick',f1);

//相容性處理
//思路:考慮多種瀏覽器的具體情況,然後統一封裝,方便後期維護

//event事件
var d1 = document.getElementById('d1');
d1.onclick = function(e){
//event對象只有在事件發生的時候才會產生
//事件對象其實會預設傳入到事件處理程式中
alert(e)

//獲取事件的時候,使用這樣的操作進行相容的獲取對象方法
}

//防止事件冒泡
e.stopPropagation();

//IE
window.event.cancelBubble = true;

//委托綁定
//利用事件的冒泡特性,將本來該綁定到具體的元素的事件委托給其上級對象進行綁定
var u = document.getElementById('u');
u.addEventListener('click',function(){
console.log(event.target.innerHTML);
console.log(this);
})

//Window對象
window.innerHeight;
window.innerWidth;
window.open();
window.print();
window.close();
window.confirm();
window.prompt();

window.scrollTo(100,500);

window.name;
window.self;
window.parent;
window.document.(...);
</script>
</body>
</html>


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在我用vue編寫程式的時候,在傳值的時候,經常會遇到些問題,像今天遇到了兩個問題,在用父傳子的方法去傳值,當父組件中的要傳的數據是for迴圈出來的或者是列表的時候,你想每次運行的事件,都去傳某一行,或者某部分數據的時候,在子組件中用mounted(){},去載入並顯示在頁面上,還有就是在父傳子中,把 ...
  • 此文是我的出版書籍[《React Native 精解與實戰》](http://rn.parryqiu.com/)連載分享,此書由機械工業出版社出版,書中詳解了 React Native 框架底層原理、React Native 組件佈局、組件與 API 的介紹與代碼實戰,以及 React Native... ...
  • 【要點】 1. HTTP協議的主要特點 2. HTTP報文的組成部分 3. HTTP方法 4. POST 和 GET的區別 5. HTTP狀態碼 【總結】 HTTP協議的主要特點 主要特點:簡單快速, 靈活, 無連接(非keep-alive),無狀態 每個資源URI是固定的,想訪問某個資源 ,瀏覽器 ...
  • 深度優先遍歷:對每一個可能的分支路徑深入到不能再深入為止,而且每個結點只能訪問一次。要特別註意的是,二叉樹的深度優先遍歷比較特殊,可以細分為先序遍歷、中序遍歷、後序遍歷。 二叉樹最大深度: 如果二叉樹為空,則深度為0 如果不為空,分別求左子樹的深度和右子樹的深度,取最大的再加1。 ...
  • 為什麼監控 用(上)戶(帝)說,這個頁面怎麼這麼慢,還有沒有人管了?! 簡單而言,有三點原因: 關註性能是工程師的本性 + 本分; 頁面性能對用戶體驗而言十分關鍵。每次重構對頁面性能的提升,僅靠工程師開發設備的測試數據是沒有說服力的,需要有大量的真實數據用於驗證; 資源掛了、載入出現異常,不能總靠用 ...
  • 表格展示神器之一:layui表格 前言:在寫後臺管理系統中使用最多的就是表格數據展示了,使用表格組件能提高大量的開發效率,目前主流的數據表格組件有bootstrap table、layui table、easyUI table等.... 博主個人比較傾向於layui,layui極簡,卻又不失飽滿的內 ...
  • 添加padding-right:1em; ...
  • jQuery.parents("選擇器") ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...