html5 筆記02

目錄

01 svg的基本使用

02 svg繪圖

03 進程和線程


?

01 svg的基本使用

? ? ? ? svg和canvas的區別:

? ? ? ? canvas: 1.canvas作為一個容器只有一個dom元素 ,內部元素無法使用dom操作

? ? ? ? ? ? ? ? ? ?(canvas不能展開然后選擇不到 svg查看元素能選中因為是通過標簽控制的)

? ? ? ? ? ? ? ? 2.canvas 是配合js完成各種繪制效果

? ? ? ? ? ? ? ? 3.canvas 是位圖 依賴像素 放大會變得模糊

? ? ? ? svg: 1.svg雖然也是一個容器, 到那時內部有各種各樣的dom元素操作

? ? ? ? ? ? ? ? 2.svg是通過各種標簽進行繪制的內容(rect circle)

? ? ? ? ? ? ? ? 3.svg是矢量圖,不依賴像素 (放大縮小不會失真)

02 svg繪圖

? ? ? ? 1.繪制矩形

? ? ? ? ? ? ? ?<svg width="400" height="400" style="border:1px solid #000">

? ? ? ? ????????????????<rect x="50" y="50" width="200" height="200" fill="red"></rect>

????????????????</svg>

? ? ? ? ? ? ? ? 默認是fill填充效果?? 可以通過fill屬性 修改填充顏色?

? ? ? ? ? ? ? ? 如果只想描邊 那么fill='none' ; stroke-width=" " 描邊寬度; stroke=" " 描邊顏色

? ? ? ? 2.繪制圓

????????????????<svg width="400" height="400" style="border:1px solid #000">

? ? ? ? ????????????????<circle cx="200" cy="200" r="100" fill="orange"></circle>

????????????????</svg>

????????3.繪制橢圓

???????????????<svg width="400" height="400" style="border:1px solid #000">

? ? ? ????????????????? <ellipse cx="200" cy="200" rx="200" ry="20" ></ellipse>

????????????????</svg>

? ? ? ? 4.繪制多點線

????????????????<svg width="400" height="400" style="border:1px solid #000">

????????????????????????<polyline points="50,50 275,147 235,399 127,25"

? ? ????????????????????????fill="none" stroke-width="3" stroke="hotpink"></polyline>

????????????????</svg>

? ? ? ? 5.繪制多點形狀

????????????????<svg width="400" height="400" style="border:1px solid #000">

????????????????????????<polygon points="100,100 200,100 200,300 150,400 100,300"></polygon>

????????????????</svg>

? ? ? ? 6.svg漸變的使用

? ? ? ? ? ? ? ? 線性漸變:

????????????????????????語法:<linearGradient></linearGradient>

????????????????????????屬性:

????????????????????????id,定義了漸變的唯一名稱

????????????????????????x1,漸變的起始x位置,百分比

????????????????????????y1,漸變的起始y位置,百分比

????????????????????????x2,漸變的結束x位置,百分比

????????????????????????y2,漸變的結束y位置,百分比

????????????????????????顏色用單標簽stop設置,如:

????????????????????????offset:定義漸變顏色的開始和結束位置,其值是相對位置的百分比

????????????????????????stop-color:用于定義漸變的顏色

????????????????例:? ?

?????????????????????????

? ? ? ? ? ? ? ? 徑向漸變:

????????????????????????語法:<radialGradient></radialGradient>雙標簽

????????????????????????屬性有:

????????????????????????id,定義了漸變的唯一名稱

????????????????????????cx,定義最外面圓x

????????????????????????cy,定義最外面圓x

????????????????????????r,定義最外面圓半徑

????????????????????????fx,定義了最里面的圓

????????????????????????fy,定義了最里面的圓

????????????????????????顏色也是使用stop實現

? ? ? ? ? ? ? ? ? ? ? ? 例:

????????????????????????

? ? ? ? 7. svg的預定義標簽

? ? ? ? ? ? ? ? 標簽分組: <g id='id值'></g>

? ? ? ? ? ? ? ? 分組標簽的使用:<use xlink:href='#id值'></use>

????????????????

? ? ? ? 8.svg 高斯模糊

????????????????<defs>

????????????????????????<filter id=“a”>

? ? ? ? ? ? ? ? ? ? ? ?????????<feGaussianBlur stdDeviation=“8”></feGaussianBlur>

????????????????????????</filter>

????????????????</defs>

????????????????<rect x="100" y="100" width="200" height="200" filter="url(#a)"></rect>

? ? ? ?????????stdDeviation 表示模糊度 值越大越模糊

? ? ? ? ????????此處引入高斯模糊用的是filter不能是fill填充效果

? ? ? ? 9.svg動態創建

????????????????通過JS動態創建SVG圖形

? ? ? ? ? ? ? ? 1.獲取svg對象

? ? ? ? ? ? ? ? 2.動態創建一個子元素(并且設置子元素的屬性)

? ? ? ? ? ? ? ? 3.添加到父元素里面去

????????????????????????創建的方法:

????????????????????????Document.createElementNS(“http://www.w3.org/2000/svg”,”標簽名”)

????????????????????????通過返回值的對象.setAttribute()方法設置屬性

????????????????????????然后通過appendChild()把新創建的元素放到父元素里面

????????????????????????可以通過點擊事件創建元素

? ? ? ? ? ? ? ? Tips:event.offsetX可以獲取鼠標在盒子中的位置

????????例:

????????????????

? ? ? ? 10.拖拽

????????????????拖放(Drag 和 Drop)是很常見的特性。它指的是您抓取某物并拖入不同的位置。

????????????????拖放是 HTML5 標準的組成部分:任何元素都是可拖放的。

? ? ? ? ? ? ? ? ?為了把一個元素設置為可拖放,請把 draggable 屬性設置為 true:

????????<img draggable="true">
03 進程和線程

? ? ? ? 1.進程和線程的概述

? ? ? ? ????????進程: 正在運行的程序

? ? ? ? ????????線程: 進程中具體的執行任務

? ? ? ? ????????cpu在進程間高速切換實際上就是在每一個進程里面的線程上面切換,

????????????????所以線程是cpu執行的最基本的單元.

? ? ? ? ????????js 是單線程程序:

????????????????????????因為js運行環境硬件不夠強大

? ? ? ? ????????js這個單線程負責的內容:

????????????????????????頁面更新 js代碼執行 加載頁面 請求數據...

? ? ? ? 2.worker線程的使用

? ? ? ? ? ? ? ? 一般情況下用不到開子線程?

? ? ? ? ? ? ? ? 有耗時操作或者長輪詢操作時會開啟子線程

? ? ? ? ? ? ? ? 開啟線程的語法:

? ? ? ? ? ? ? ? ? ? ? ? var worker = new Worker('js文件路徑')

? ? ? ? ? ? ? ? 如何通信:

? ? ? ? ? ? ? ? 子線程給主線程通信:

? ? ? ? ? ? ? ? ? ? ? ? this(子線程對象).postmessage({

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 自定義鍵值對

????????????????????????})

? ? ? ? ? ? ? ? ????????在主線程里面通過new出來的worker對象

? ? ? ? ? ? ? ????????? worker.onmessage=function(e){

? ? ? ? ? ? ? ? ? ? ? ? ????????通過形參接收子線程傳過來的數據

????????????????????????}

? ? ? ? ? ? ? ? 主線程給子線程通信:

????????????????????????1. 在主線程中創建兩個Handler對象 handler 和 handler2,

? ? ? ? ? ? ? ? ? ? ? ? ????(圖中是threadHandler),并直接初始化 handler,而handler2 不初始化。

???????????????????????? 2. 使用 HandlerThread 創建一個子線程 thread ,并啟動 thread 。

???????????????????????? 3. 初始化 handler2(使用 thread 的 getLooper()作為參數),

??????????????????????????????這樣一來handler2就是子線程的 Handler 對象。

????????????????????????4. 重寫 handler 和 handler2 的 handleMessage()方法,

? ? ? ? ? ? ? ? ? ? ? ? ? ? 在里面創建Message對象,并使用對方的

? ? ? ? ? ? ? ? ? ? ? ?sendMessageDelayed(message,1000);方法發送消息。

???????????????????????? 5. 定義一個Button,定義點擊事件,由點擊事件觸發如上交互的操作。

? ? ? ? ? ? ? ? ? ? ? ? ? ?如上操作中,第4點是核心,也就是兩個 Handler 各自重寫 handleMessage(),

???????????????????????????方法里面卻是使用對方的 sendMessage() 方法。

? ? ? ? ? ? ? ? ? ? ? ? ? ?這樣就實現了主線程和子線程的相互發送信息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15791.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15791.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15791.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue-route的路由配置中父組件沒有component怎么處理

概述 為了方便開發和維護&#xff0c;所以web前端的路由配置路徑和前端代碼文件路徑一般是一致的。但在實際開發中&#xff0c;項目可能會分很多級的菜單&#xff0c;由于很多菜單只有葉子菜單是真正的頁面。而中間菜單項只是一個路由配置。 為了正確路由到底層的功能頁面&…

指紋識別概念解析

目錄 1. 指紋是物證之首 1.1 起源于中國 1.2 發展于歐洲 1.3 流行于全世界 2. 指紋圖像 3. 指紋特征 4. 指紋注冊 5. 指紋驗證 6. 指紋辨識 1. 指紋是物證之首 指紋識別技術起源于中國、發展于歐洲、流行于全世界。自20世紀以來&#xff0c;指紋在偵破刑事案件、解決訴…

水泥超低排平臺哪家好?

隨著環保政策的加強和綠色發展理念的深入人心&#xff0c;水泥行業的超低排放改造已成為行業發展的新趨勢。選擇一個合適的水泥超低排平臺對于確保改造效果和實現企業的可持續發展至關重要。朗觀視覺小編將從多個角度出發&#xff0c;為您提供一份綜合評估與選擇攻略&#xff0…

Spring Boot 3.x 與 Spring Boot 2.x 的對比

Spring Boot 是 Java 開發領域的一個重要框架&#xff0c;它簡化了基于 Spring 的應用開發。隨著版本的不斷更新&#xff0c;Spring Boot 提供了更多功能、更好的性能以及更簡潔的配置。本文將詳細對比 Spring Boot 3.x 和 Spring Boot 2.x&#xff0c;探討它們之間的主要區別和…

[C語言]自定義類型詳解:結構體、聯合體、枚舉

目錄 &#x1f680;結構體 &#x1f525;結構體類型的聲明 &#x1f525;結構的自引用 &#x1f525;結構體變量的定義和初始化 &#x1f525;結構體內存對齊 &#x1f525;結構體傳參 &#x1f525;結構體實現位段&#xff08;位段的填充&可移植性&#xff09; &a…

安裝 Ubuntu桌面版,詳細步驟(附引導 U盤制作工具)

下載鏡像 安裝Ubuntu首先要下載鏡像包&#xff0c;訪問下面網址下載鏡像包 https://releases.ubuntu.com/ 選擇你要安裝的Ubuntu版本 將 .iso 文件保存到所需位置&#xff0c;下面會使用此文件創建可引導 U盤。 制作 Ubuntu 引導 U 盤 首先要找到一個大于4G的U盤&#xff…

貓頭虎 解析:為什么AIGC在國內適合做TOB,在國外適合做TOC?

貓頭虎 解析&#xff1a;為什么AIGC在國內適合做TOB&#xff0c;在國外適合做TOC&#xff1f; 博主 貓頭虎 的技術世界 &#x1f31f; 歡迎來到貓頭虎的博客 — 探索技術的無限可能&#xff01; 專欄鏈接&#xff1a; &#x1f517; 精選專欄&#xff1a; 《面試題大全》 — 面…

ps進程查看命令詳解

1、PS 命令是什么 查看它的man手冊可以看到&#xff0c;ps命令能夠給出當前系統中進程的快照。它能捕獲系統在某一事件的進程狀態。如果你想不斷更新查看的這個狀態&#xff0c;可以使用top命令。 2、ps命令支持三種使用的語法格式 UNIX 風格&#xff0c;選項可以組合在一起…

鴻蒙ArkUI-X平臺差異化:【運行態差異化(@ohos.deviceInfo)】

平臺差異化 簡介 跨平臺使用場景是一套ArkTS代碼運行在多個終端設備上&#xff0c;如Android、iOS、OpenHarmony&#xff08;含基于OpenHarmony發行的商業版&#xff0c;如HarmonyOS Next&#xff09;。當不同平臺業務邏輯不同&#xff0c;或使用了不支持跨平臺的API&#xf…

c++中靜態函數

在Qt中&#xff0c;可以通過在類中定義靜態方法來添加靜態方法。靜態方法是類的一部分&#xff0c;但不需要實例化類對象就可以直接調用。 下面是一個示例&#xff0c;演示了如何在類中添加靜態方法&#xff1a; cpp class MyClass { public: static void myStaticMethod…

Postman快捷功能-批量斷言與快速查詢替換

大家好&#xff0c;在我們日常的接口測試工作中&#xff0c;經常需要對接口返回的數據進行斷言&#xff0c;以確保接口的正確性。當接口數量較多時&#xff0c;逐個編寫斷言語句會變得非常繁瑣。此外&#xff0c;在接口測試過程中&#xff0c;我們還可能需要頻繁地查找和替換某…

Python自動化工具(桌面自動化、Web自動化、游戲輔助)

工具介紹 連點工具是一款可以模擬鍵鼠后臺操作的連點器工具。支持鼠標連點、鍵鼠腳本錄制&#xff0c;支持輔助您實現辦公自動化以及輔助游戲操作。功能簡潔易用&#xff0c;非常方便操作。連點工具讓您在在玩游戲、網購搶購的時候全自動點擊鼠標&#xff01;主要功能有&#…

MySQL數據庫的數據文件保存在哪?MySQL數據存在哪里

在安裝好MySQL數據庫使用一段時間后&#xff0c;會產生許多的數據庫和數據。那這些數據庫的數據文件存放在本地文件夾的什么位置呢 一、默認位置 一般來說MySQL數據庫的數據文件都是存放在data文件夾之中&#xff0c;但是根據使用的存儲引擎不同&#xff0c;產生的一些文件也…

牛客前端面試高頻八股總結(2)(附文檔)

1.fetch請求方式 fetch是什么&#xff1f; fetch是一種http 數據請求的方式&#xff0c;是xml的一種替代方式。 怎么請求&#xff1f; fetch方法返回一個promise解析response顯示狀態&#xff08;成功與否&#xff09;的方法。 優點&#xff1a; 使用Promise&#xff0c;支持鏈…

24李林跌落神壇,880還刷嗎?還是換1000、900、660?

“李林今年跌落神壇了&#xff01;” “全是固定題型沒新題&#xff0c;結果今年考的全是新題。” 880是“老真題的神”&#xff0c; 遇到24年&#xff0c;冷門考點多&#xff0c;計算量又大&#xff0c;就不靈了。 但“老真題”&#xff0c;還是得刷。就像往年真題是要刷的…

(十一)統計學基礎練習題五(50道選擇題)

本文整理了統計學基礎知識相關的練習題&#xff0c;共50道&#xff0c;適用于想鞏固統計學基礎或備考的同學。來源&#xff1a;如荷學數據科學題庫&#xff08;技術專項-統計學二&#xff09;。序號之前的題請看往期文章。 201&#xff09; 202&#xff09; 203&#xff09; 2…

得帆信息PMO總監李健達受邀為第十三屆中國PMO大會演講嘉賓

全國PMO專業人士年度盛會 上海得帆信息技術有限公司aPaaS業務線副總裁、PMO總監李健達先生受邀為PMO評論主辦的2024第十三屆中國PMO大會演講嘉賓&#xff0c;演講議題為“AI時代的PMO工作法”。大會將于6月29-30日在北京舉辦&#xff0c;敬請關注&#xff01; 議題簡要&#x…

39. 組合總和 - 力扣(LeetCode)

基礎知識要求&#xff1a; Java&#xff1a; 方法、集合、泛型、Arrays工具類、for循環、if判斷 Python&#xff1a; 方法、列表、for循環、if判斷 題目&#xff1a; 給你一個 無重復元素 的整數數組 candidates 和一個目標整數 target &#xff0c;找出 candidates 中可以使…

Spring框架學習筆記(五):JdbcTemplate 和 聲明式事務

基本介紹&#xff1a;通過 Spring 框架可以配置數據源&#xff0c;從而完成對數據表的操作。JdbcTemplate 是 Spring 提供的訪問數據庫的技術。將 JDBC 的常用操作封裝為模板方法 1 JdbcTemplate 使用前需進行如下配置 1.1 在maven項目的pom文件加入以下依賴 <dependencies…

Java面試進階指南:高級知識點問答精粹(二)

Java 面試問題及答案 1. 什么是Java內存模型&#xff08;JMM&#xff09;&#xff1f;它在并發編程中扮演什么角色&#xff1f; 答案&#xff1a; Java內存模型&#xff08;JMM&#xff09;是一個抽象的模型&#xff0c;它定義了Java程序中各種變量&#xff08;線程共享變量&…