JS函數動作分層結構詳解及Document.getElementById 釋義 事件 函數 變數 script標簽 var function

来源:http://www.cnblogs.com/billvvv/archive/2017/06/23/7071302.html
-Advertisement-
Play Games

html +css 靜態頁面 js 動態 交互 原理: js就是修改樣式, 比如彈出一個對話框. 彈出的過程就是這個框由disable 變成display:enable. 又或者當滑鼠指向的時候換一個顏色,就是一個修改樣式的工具. 編寫JS的流程 佈局:HTML+CSS 事件:確定用戶做哪些操作(產... ...


html +css 靜態頁面

js     動態 交互

 

原理: js就是修改樣式, 比如彈出一個對話框. 彈出的過程就是這個框由disable 變成display:enable. 又或者當滑鼠指向的時候換一個顏色,就是一個修改樣式的工具.

  • 編寫JS的流程
    • 佈局:HTML+CSS
    • 事件:確定用戶做哪些操作(產品設計)
    • 編寫JS:在事件中,用JS來修改頁面元素的樣式(外加屬性:確定要修改哪些屬性)

       

  • 什麼是事件

 

一個完整的事件= <在某個作用域 事件聲明='函數動作'> </>

作用域: 作用的標簽

事件聲明:一個用戶操作 例如: 滑鼠的進出onmouseover, onmouseout,

函數動作: 一個封裝好可以理解為比較複雜的動作.

事件聲明也是這個作用域的某個屬性, 函數就是這個屬性作出的一系列動作

 

 

  • 函數的規範位置與封裝

格式:

<script>

function+名稱+()

{動作1+動作2+動作3+……}

</script>

 

位置: <script>: Js 代碼標簽, 函數一般放在head裡面.

封裝:

函數: fuction+名稱+()

  1. 在標簽中放置未封裝的代碼會造成閱讀者視覺混亂, 把整段整段的代碼封裝成函數, 再在標簽中調用函數. 文擋會變得整潔.
  2. 當多個標簽重覆調用時同一個函數時,不用重覆把整段代碼再敲一遍, 只要調用函數的名字就可以了.

變數:var + 名字+()    

變數就是把一些結構複雜的對象賦值到一個簡單的名稱, 當調用的時候就會減少代碼量.

 

<script>

function toGreen()

{ 

    var oDiv=document.getElementById('div1'); 動作1:div1賦值2給oDiv

     

    oDiv.style.width='300px'; 動作2/3改變div1的寬度

    oDiv.style.height='300px'; …….高度

    oDiv.style.background='green'; 動作4, 背景變成綠色

} 

</script>

註, 如果在script內有暫不運行的語句可以//註釋掉

函數動作分層結構詳解及Document.getElementById 釋義: (重點)

對象屬性分為很多層, 用'.' 隔開每一層.後面的是前面的子屬性(屬性), 可以理解為漢語的'的'

實際上每個函數動作都是被分割開來的, 所以你們看到的是一節一節的,實際上舉例子

oDiv.style.width='300px'; 這個動作, 是屬於:

Document.getElementById('div1').style.width = '300px' 而這一整段又屬於:

Window.Document.getElementById('div1').style.width = '300px'

這一整條就是一條完整的事件動作,

window是上層對象

document是二層對象

<節點>節點<節點>節點<節點>節點<節點>節點

getElementById是三層對象(方法)

style四層對象 (一層屬性)

height 五層對象 (二層屬性)

 

window 省略是因為,我們在html內操作, 預設是屬於document

而因為我們定義了oDiv, 所以在最終的表達上變成了oDiv.style.width='300px';的形式.

至於Document是一個JS操作文檔層面的方法(動作的方法), <html>文檔的基本節點都要收它控制, 這些節點包括文本節點, 標簽(屬性)節點 . 所有尖括弧外的範圍都成為文本節點, 尖括弧裡面的腳屬性節點. 如果我們不說是什麼節點一般預設指的是尖括弧裡面的.

DOM(Document對象): http://www.w3school.com.cn/jsref/dom_obj_document.asp

(方法就是我們上面描述的動作)

 

<html>

<head>

<meta charset="utf-8">

<title>無標題文檔</title>

<style>

#div1 {

    width:200px;

    height:200px;

    background:red;

} 

</style>

<script>

function toGreen()

{ 

    var oDiv=document.getElementById('div1');

     

    oDiv.style.width='300px';

    oDiv.style.height='300px';

    oDiv.style.background='green';

} 

 

function toRed()

{ 

    var oDiv=document.getElementById('div1');

     

    oDiv.style.width='200px';

    oDiv.style.height='200px';

    oDiv.style.background='red';

} 

</script>

</head>

 

<body>

<div


									id="div1" onmouseover="toGreen()" onmouseout="toRed()">

</div>

</body>

</html>


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

-Advertisement-
Play Games
更多相關文章
  • 英文:Martin Heller 譯文:葡萄城控制項 學習過程中遇到什麼問題或者想獲取學習資源的話,歡迎加入學習交流群343599877,我們一起學前端! 對於JavaScript程式員來說,目前有很多很棒的工具可供選擇。本文將會討論10個優秀的支持JavaScript,HTML5和CSS開發,並且可 ...
  • HTML form標簽小結 最近研究 form標簽,有一些小心得寫下來與大家分享分享,共勉。在小結的最後有一個form表單的小例子,可以作為參考。 DanlV form是HTML的一個極為重要的功能標簽之一。 輸入域input input type屬性有如下屬性值: 1.button按鈕(具體接下來 ...
  • 相比於JavaScript開發人員的數量,目前JavaScript框架、類庫和工具的數量似乎更多一些。截至2017年5月,GitHub上的快速搜索顯示,有超過110萬個JavaScript項目。npmjs.org有50萬個可用的軟體包,每月下載量近100億次。 本文將會討論目前最為流行的客戶端Jav ...
  • 頁面佈局(layout) header 頭部/頁眉; index 首頁/索引; logo 標誌; nav/sub_nav 導航/子導航; banner 橫幅廣告; main/content 主體/內容; container/con 容器; wrapper/wrap 包裹(類似於container); ...
  • 如果滾動頁面也是DOM沒有解決的一個問題。為瞭解決這個問題,瀏覽器實現了一下方法,以方便開發人員如何更好的控制頁面的滾動。在各種專有方法中,HTML5選擇了scrollIntoView()作為標準方法。scrollIntoView()可以在所有的HTML元素上調用,通過滾動瀏覽器視窗或某個容器元素, ...
  • 這個對象,不是那個對象,第三哦! 對象之間會存在繼承,所以,來說一下他們之間存在的三種三種繼承方式: 1、冒用繼承 這就是第一種繼承方式。 【註意】冒用繼承缺點:不能使用原型上的方法和屬性 優點:可以傳遞參數; 2、原型繼承 這種繼承方式就是將新建的父類對象賦給子類構造函數的原型。 【註意】原型鏈繼 ...
  • 之前在寫頁面的時候用的都是單行文字溢出隱藏,今天遇到了多行文字溢出隱藏,溢出部分用省略號。我通過查閱一些資料整理了一下,拿出來與大家分享一下。 單行文本的溢出隱藏 對於單行文本溢出 隱藏,text-overflow: ellipsis 就能完美的解決,不過在使用他時,一定要結合 overflow: ...
  • 如何垂直居中一個浮動元素 // 方法一:已知元素的高寬 #div1{ width:200px; height:200px; position: absolute; /*父元素需要相對定位*/ top: 50%; left: 50%; margin-top:-100px ; /*二分之一的height ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...