來了金秋 9 月,在這收獲的季節,Tutorialzine 又為我們帶來了哪些新鮮、有趣的前端資源呢?前端開發者們,一起來看看有木有你需要的前端庫。
DisplayJS 是一個幫助你渲染 DOM 的簡易框架。使用它,你可以更容易地將 JS 變量遍歷到特定的 HTML 元素中,類似于 React 或 Vue.js 處理模版的方式。
項目地址:https://display.js.org/
這是由 Atlassian 開源的用于制作拖拽組件的 React 庫。它提供了強大、易用的 API,以及豐富的定制選項和控件。它所生成的組件,也具備了平滑的 GPU 動畫效果。當元素被拾取或重新排序時,其效果將會展示出來。
項目地址:
https://github.com/atlassian/react-beautiful-dnd
這是一個全新版的 Node.js Request 庫,它提供了一個更輕量的 HTTP 客戶端解決方案。與 Request 庫不同的是,它建立在原生瀏覽器 Fetch API 之上,可被應用于 Node.js. 并且,R2 在壓縮后僅有 16KB 大小。
項目地址:https://github.com/mikeal/r2
Primer CSS 是由 GitHub 的前端設計師研發的 CSS 框架。為了便于安裝,它的 23 個包被劃分為 3 個核心的元包,每個包都可以通過 NPM 進行獨立版本的發布。
項目地址:
https://github.com/primer/primer-css
Puppeteer 是一個用于操縱 Headless Chrome 的封裝庫,它由 Chrome DevTools 官方團隊進行維護。你也可以在我們的文章《使用 Node.js 自動化Google Chrome》中,了解更多我們嘗試的一些功能。
項目地址:
https://github.com/GoogleChrome/puppeteer
這是一款與 React 和 Vue.js 類似的新型 JS 框架。它可以幫助你將應用程序分解為獨立的組件,并可隨時間的推移,以及響應用戶操作的變化顯示程序視圖的變化。同時,Marko 可以在應用中自動更新 DOM 來反饋數據。
項目地址:
https://github.com/marko-js/marko
Redocx 是一個用于生成 Word 文檔的 React 庫。你可以使用 React 組件對文檔進行定義,并通過命令行將其渲染為 Word 文檔。同時,此庫也包含了表格、圖像、頁眉、頁腳等豐富的組件供你選擇。
項目地址:
https://github.com/nitin42/redocx
這是一個用于構建模糊搜索界面的 JS 庫,類似 Sublime Text 中的界面樣式。該庫會根據搜索查詢的匹配度,計算出搜索匹配數與時長。
項目地址:
https://github.com/farzher/fuzzysort
Trowel 是一個 SASS 工具包,它提供了一種寫入 SASS 變量的新方法,允許你將多個變量分組到單個對象中,讓你的 SASS 代碼更易編寫,更易閱讀。
項目地址:
https://github.com/Trowel/Trowel
Vivify 是由純 CSS 寫的動畫庫,該庫提供了超過 50 種動畫效果供你選擇。你只需要將 Vivify 的類添加到相應的元素,即可使其產生動畫效果,并且添加 infinite 類后,動畫就可以循環播放了。
項目地址:
https://github.com/Martz90/vivify
這是一個 CSS 復選框組件合集,它由大小不一、樣式各異的復選框組成。同時,所有的復選框都具備 4 種不同的尺寸,并且兼容 IE9+ 和所有現代瀏覽器。
項目地址:
https://github.com/hunzaboy/CSS-Checkbox-Library
Push 是一個通用的桌面通知框架。它基于強大的 Notification API ,可作為可靠的跨瀏覽器解決方案,如果用戶的瀏覽器不支持最新的 API,則會沿用老版 API 實現。
項目地址:https://pushjs.org/
react-imgpro 是一個用于圖像處理的 React 組件。它可以利用 filters 進行圖像處理,并生成 base64 格式的圖像。它簡單易用,你只需要指定一個圖像的 URL,選擇相應的 filters,并填寫輸出圖像的大小與格式即可。
項目地址:
https://github.com/nitin42/react-imgpro
Lozad.js 是一個高性能、可配置的純 JS 實現的懶加載器。它基于 Intersection Observer API,沒有任何依賴,支持動態懶加載添加元素。 同時,它也是輕量級庫,在 Gzip 壓縮后只有 535 字節大小。
項目地址:
https://github.com/ApoorvSaxena/lozad.js
這是一個結合了 React 和 D3 的數據可視化框架。它提供了 3 種類型的框架(XYFrame,ORFrame,NetworkFrame),可幫助你生成一些酷炫圖表。而顯示數據的方式,也可以通過調整框架中設置或者添加 CSS 樣式進行定制。
項目地址:
https://github.com/emeeks/semiotic
感謝你的閱讀。若你有所收獲,歡迎點贊與分享。
注:
本文版權歸原作者所有,僅用于學習與交流;
如需轉載譯文,煩請按下方注明出處信息,謝謝!
英文原文:15 Interesting JavaScript and CSS Libraries for September 2017
作者:Danny Markov
譯者:IT程序獅
譯文地址:
http://www.jianshu.com/p/ec9ff744eb20
2017 年 8 月:15 個有趣的 JS 和 CSS 庫
2017 年 6 月:15 個有趣的 JS 和 CSS 庫
2017 年 5 月:15 個有趣的 JS 和 CSS 庫
2017 年 4 月:15 個有趣的 JS 和 CSS 庫
熱的 7 月已經過去,秋天的腳步更近了。在本月,Tutorialzine 依舊為大家帶來了一些有趣、實用的前端庫,看看有哪些適合你的項目呢?
這是一組自帶懸停動畫的精致 SVG 圖標。但與大多數 Web 圖標不同之處在于 - 它的動畫是基于 JS 的,需要你使用 bodymovin 庫將動畫效果導出為 SVG 格式。
項目地址:
https://icons8.com/c/animated-icons
Rebass 是一個用于構建響應式 Web APP 的 React UI Kit。它由超過 60 種樣式組件構成,可通過樣式體系中的屬性進行自由定制。這樣可以保證樣式的隔離,便可減少在應用程序中編寫自定義 CSS 的需求。
項目地址:http://jxnblk.com/rebass/
Bootstrap 4 的官方 Beta 版已經正式發布了!新版本的框架也發生了許多重大的改變,包括支持了基于 Flexbox 的網格體系,新增并重寫了相關組件,更快的 ES6 JavaScript 插件,改進了文檔等等。
項目地址:https://getbootstrap.com/
這是一組帶有懸停動畫效果的 HTML 按鈕,這些按鈕不僅擁有不同的形狀與大小,而且具備了豐富的動畫效果供你選擇。Hover Buttons 是由 SCSS 制作的,所以你可以輕松的刪除不想要的按鈕,或根據個人喜好自由的定制其樣式。
項目地址:https://varin6.github.io/Hover-Buttons/
React Simple Maps 是一個用于創建 SVG 地圖的組件庫,它具備添加地圖細節的各類組件,它們可為地圖的各個區域添加文字注釋、標記以及自定義顏色。
項目地址:https://www.react-simple-maps.io/
Gpu.js 是一個用于在瀏覽器中運行 GPGPU 的 JS 庫,它將 JavaScript 編譯成能夠通過 WebGL API 在 GPU 上運行的著色語言,以便更快地執行復雜的計算。如果 WebGL 不可用,則這些函數仍將以常規的 JavaScript 運行。
項目地址:http://gpu.rocks/
Pell 是一款超輕量的 WYSIWYG 文本編輯器。它由僅 200 行的 ES6 代碼所構成,只有 1kB 的大小,并且沒有任何的依賴關系。同時,它還支持 Markdown 文本格式所需的所有操作,包括插入圖像和鏈接。
項目地址: https://jaredreich.com/pell
Chromeless 是一個基于 Chrome 平臺 Headless 模式的 Web 自動化框架。它的 API 和功能與其他流行工具(如 PhantomJS 和 NightmareJS)非常相似,主要區別是它在 Chrome 的 Headless 模式下可以運行所有的測試。同時,它還可以在本地或借助 AWS Lambda 工作。
項目地址:
https://github.com/graphcool/chromeless
Fitty 是一個 Vanilla JavaScript 庫,它可以更改文本的字體大小,使其適應固定寬度的容器。它適用于所有標準的 Web 字體,并且可以“向上”或“向下”縮放其大小,以便讓它們更好的占據可用空間,而無須換行。
項目地址:
https://rikschennink.github.io/fitty/
這是一個用于發送通知的 Node.js 庫,旨在成為一個處理電子郵件、短信和推送通知的一體化解決方案。另外,每個服務都有多個提供商可供你選擇。
項目地址:
https://notifme.github.io/notifme-sdk/
Shoelace 是一個炒雞輕量的 CSS 入門套件,旨在為 Bootstrap 提供一個更簡單的替代方案。它由 CSS reset 與一些實用的 UI 組件構成,沒有過多的樣式和功能。由于這個庫的代碼是基于 CSS 變量的,所以也易于定制。
項目地址:https://shoelace.style/
TensorFire 是一個能夠在瀏覽器中運行神經網絡的框架。由于 TensorFire 可通過 WebGL 進行 GPU 加速,所以運行較大的機器學習模型也不是事兒。雖然,該項目還處于早期階段,但也有了一些十分有前景的演示。例如剪刀包袱錘手勢檢測 Demo
項目地址: https://tenso.rs/
這是利用 Bootstrap、PugJS、Sass 構建的后臺信息管理模板。由于該項目是基于易于定制的理念而設計,所以,所有的樣式都是由獨立的 SASS 模塊進行組織。同時,該模版還提供了豐富的組件與小部件,你可以在 Demo 中查看它們。
項目地址:
http://pratikborsadiya.in/blog/vali-admin/
BotUI 是用于建立聊天機器人會話界面的 JavaScript 框架。它有一個超簡單的 API,你可以通過添加消息、問題,甚至形成供用戶填寫的輸入字段來配置對話流。
如果你想了解有關交互式會話 UI 的更多信息,請參閱我們的文章《聊天機器人之開發者簡介》。
項目地址:
https://github.com/botui/botui
這是一個用于生成唯一 ID 的小型 JavaScript 庫。它僅使用對 URL 友好的符號來生成字符串,但它也有一個讓你提供相應字母表的選項。在 GitHub 的項目頁上,你可以找到關于此庫的工作方式,以及使用算法的一些有趣信息。
項目地址: https://github.com/ai/nanoid
感謝你的閱讀。若你有所收獲,歡迎點贊與分享。
注:
本文版權歸原作者所有,僅用于學習與交流;
如需轉載譯文,煩請按下方注明出處信息,謝謝!
英文原文:15 Interesting JavaScript and CSS Libraries for August 2017
作者:Danny Markov
譯者:IT程序獅
譯文地址:
http://www.jianshu.com/p/677b3d30b342
2017 年 6 月:15 個有趣的 JS 和 CSS 庫
2017 年 5 月:15 個有趣的 JS 和 CSS 庫
2017 年 4 月:15 個有趣的 JS 和 CSS 庫
2017 年 3 月:15 個有趣的 JS 和 CSS 庫
速總結 ? 在這篇文章中,Louis Lazaris 描述并演示了一些有趣的 HTML 屬性,您可能沒有聽說過也可能沒有聽說過,并且可能會發現它們非常有用,可以在您的項目中親自使用。
一月份,麥迪遜卡納[問她的推特粉絲
今年你想要學習或更深入地學習哪些語言/技術?
typescript、next.js、react、graphql、solidity、node,這幾個是哪個呢
- 麥迪遜卡納 (@Madisonkanna)
2022 年 1 月 3 日
但是我的答案很簡單:HTML。而且我一點也沒有諷刺或嘲弄。當然,我非常清楚在哪些情況下使用哪些標簽,以及如何使用我的 HTML 大部分具有語義性和可訪問性。
但是我確信我已經忘記了一大堆較少使用的屬性,并且可能有一大堆我甚至不知道存在的屬性。這篇文章是我研究的結果,我希望你會發現其中的一些對你有用,因為你在接下來的幾個月里構建 HTML 頁面。
該enterkeyhint屬性是一個全局屬性,可應用于已contenteditable設置為的表單控件或元素true。此屬性可幫助使用虛擬屏幕鍵盤的移動設備上的用戶。
<input type="text" enterkeyhint="done">
復制
enterkeyhint接受七個可能值之一,這些值將確定用戶在他的“輸入”鍵上看到的內容:
您可以看到這些“提示”如何對用戶有用。用戶是否正在執行一系列操作?他們在提交信息嗎?他們在保存設置嗎?根據他們正在做什么,您可以自定義提示以匹配您的應用程序的需求。
您可以通過在移動設備上訪問下面的信息 CodePen 演示來嘗試這個。
<main>
<h2>Using the <code>enterkeyhint</code> Attribute</h2>
<p>View this demo on a mobile device. Note the text in the "enter" key on your mobile device's virtual keyboard.</p>
<input type="text" enterkeyhint="Next">
</main>
body {
font-family: Arial, sans-serif;
font-size: 20px;
padding: 0 20px;
}
main {
text-align: center;
margin: 0 auto;
max-width: 800px;
}
p {
text-align: left;
padding: 0 20px;
}
code {
color: firebrick;
}
在我的 iOS 設備上,回車鍵的文本會隨著鍵的顏色而變化,具體取決于值,如下面的屏幕截圖所示。這可能會有所不同,具體取決于用戶的設備。
只是強調一下,這個屬性不接受自定義值;該值需要是上面顯示的七個之一。無法識別的值將默認為輸入鍵的設備默認為文本。
在為本文進行研究時,這對我來說是全新的,可能是此列表中最有趣的一個。作為一些背景知識,如果您不知道,Firefox 有一個選項可讓您選擇查看頁面時要使用的樣式表。通常,此功能顯示兩個選項:“基本頁面樣式”和“無樣式”,如下圖所示在我的 Windows 機器上。
這使您可以快速測試禁用樣式時頁面的外觀,還允許您使用任何備用樣式表查看頁面。
備用樣式表功能通過兩個屬性啟用:title屬性和rel=alternate應用于<link>元素,如下面的代碼所示:
<link href="main.css" rel="stylesheet" title="Default">
<link href="contrast.css" rel="alternate stylesheet" title="High Contrast">
<link href="readable.css" rel="alternate stylesheet" title="Readable">
在這種情況下,我的“默認”樣式將自動應用,但僅限于我使用 Firefox 的“頁面樣式”選項選擇它們時,備用樣式表才會應用。您可以通過使用 Firefox 或其他兼容瀏覽器訪問以下 CodePen 來嘗試上述示例:
下面的屏幕截圖顯示了 Firefox 中的樣式表選項:
如前所述,此功能在 Firefox 中有效,但我無法讓它在任何時候基于 Chromium 瀏覽器中工作。MDN關于備用樣式表的文章說它可以在其他瀏覽器中使用擴展啟用,但我找不到可以執行此操作的活動擴展。
我敢肯定你<blockquote>經常使用這個元素。您可以在沒有屬性的情況下直接使用它,但您也可以選擇使用該cite屬性。這是一個引用描述使用citeon的 MDN 文章的示例<blockquote>:
<blockquote cite="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote#attr-cite">
A URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote.
</blockquote>
由于我上面的地塊引用來解釋了什么是 MDN 文章cite,因此我將指向頁面的 URL 設置為cite值。
您可以看到這是多么有用,因為它將引用和引用的來源包裝在一個元素中。但請注意HTML 規范中的進一步解釋:
用戶代理可能允許用戶關注此類引用鏈接,但它們主要用于私人用途(例如,通過服務器端腳本收集有關站點使用引用的統計信息),而不是供讀者使用。
當然,相同的概念也適用于用于內聯引用cite的元素上。<q>
<ol>經常使用使用該元素的有序列表。一些鮮為人知的功能允許您自定義出現在此類列表中的編號行為:
如您所見,使用純 HTML 的有序列表比您通常習慣的要靈活得多。
該reversed屬性是一個有趣的屬性,因為它實際上并沒有反轉列表本身的內容;它只會反轉每個列表項旁邊的數字。
<ol reversed>
<li>List item...</li>
<li>List item...</li>
<li>List item...</li>
</ol>
下面的 CodePen 演示添加了一些 JavaScript,因此您可以交互地切換reversed屬性。
請注意,列表本身保持不變,但數字會發生變化。如果您正在尋找一種反轉內容的方法,請記住這一點。這是您可以使用 JavaScript、CSS 或直接在 HTML 源代碼中執行的操作。
上面,我還提到了其他三個屬性。讓我們將它們合并到列表中,看看如何使用它們:
<ol reversed start="20" type="1">
<li>Typee: A Peep at Polynesian Life (1846)</li>
<li>Omoo: A Narrative of Adventures in the South Seas (1847)</li>
<li>Mardi: and a Voyage Thither (1849)</li>
<li>Redburn: His First Voyage (1849)</li>
<li value="100">White-Jacket; or, The World in a Man-of-War (1850)</li>
<li>Moby-Dick; or, The Whale (1851)</li>
<li>Pierre; or, The Ambiguities (1852)</li>
<li>Isle of the Cross (1853 unpublished, and now lost)</li>
</ol>
請注意,已添加的type和屬性以及單個列表項上的屬性。該屬性接受表示編號類型的五個單字符值(、、、、 )之一。start``value``type``a``A``i``I``1
使用以下交互式演示進行嘗試:
使用單選按鈕選擇該type屬性的五個值之一。然后嘗試使用Toggle Reversed按鈕反轉列表。如您所見,除了有序列表的默認行為之外,還有很多可能性!
就像網絡上無處不在的鏈接一樣,擁有一個使鏈接更加強大的屬性總是很好的。該download屬性是幾年前添加到規范中的,它允許您指定單擊鏈接時應該下載而不是訪問該鏈接。
<a href="/example.pdf" download>Download File</a>
如果沒有值,該download屬性會強制下載鏈接頁面。或者,您可以提供一個值,瀏覽器將其用作下載資源的建議文件名。
<a href="/example.pdf" download="my-download.pdf">Download File</a>
作為涉及此屬性的額外技巧,您可以將此功能與一些 JavaScript 結合起來,為用戶創建一種下載他們自己創建的內容的方式。
在研究這篇文章時,這對我來說是另一篇全新的文章——而且在規范中似乎相當新。將decoding屬性添加到圖像元素可為瀏覽器提供圖像解碼提示。
<img src="/images/example.png" alt="Example" decoding="async">
此屬性類似于async在腳本上使用該屬性。加載圖像所需的時間不會改變,但其“解碼”的方式(因此其內容在視口中變得可見)由decoding屬性決定。
值為:
如果您對解碼圖像的概念感到好奇,該規范有[一個很好的解釋],并不難理解。
您可能已經知道,圖像元素現在可以包含一個loading屬性,將延遲加載作為一項功能放入瀏覽器中,這是我們多年來使用 JavaScript 解決方案所做的事情。但不要忘記該loading屬性也可以用于<iframe>元素:
<iframe src="/page.html" width="300" height="250" loading="lazy">
復制
與圖像一樣,該loading屬性接受eager(默認瀏覽器行為)或 的值lazy,這會延遲 iframe 內容的加載,直到 iframe 即將進入視口。此屬性的唯一缺點是 Firefox 不支持在 iframe 上使用它(盡管 Firefox 確實支持loading圖像)。
在大多數情況下,您會將表單輸入和控件嵌套在<form>元素中。但是,如果您的應用程序或布局需要一些不同的東西,您可以選擇將表單輸入放在您想要的任何位置,并將其與任何<form>元素相關聯——即使不是元素的父元素。
<form id="myForm" action="/form.php">
<input id="name">
<button type="submit">
</form>
<input type="email" form="myForm">
正如您在上面看到<input>的,表單外部的電子郵件的form屬性設置為myForm,該屬性設置為與表單的 相同的值id。submit您可以使用此屬性和表單的 id將表單控件(包括按鈕)與文檔中的任何表單相關聯。
您可以使用此演示頁面進行嘗試。表單使用 GET 請求提交,因此您可以在 URL 的查詢字符串中看到提交的值。在該頁面上,“評論”框位于<form>元素之外。
我對這個屬性的唯一抱怨是它可能應該被賦予一個更獨特的名稱,也許像“formowner”之類的東西。盡管如此,如果您的設計或布局需要無父表單字段,請記住它是有用的。
我在處理塊引用時已經提到cite過,但是這個屬性也可以用于用<del>and<ins>元素標記的刪除和插入。此外,兩個元素都可以包含一個datetime屬性。
<del
cite="https://bugzilla.mozilla.org/show_bug.cgi?id=1620467"
datetime="2020-07-23"
>Firefox doesn't support CSS's standard <code>appearance</code> property, so you can only use it prefixed.</del>
<ins
cite="https://bugzilla.mozilla.org/show_bug.cgi?id=1620467"
datetime="2020-07-23"
>The <code>appearance</code> property, previously only available prefixed in Firefox, can now be used in all modern browers unprefixed.</ins>
對于每個元素,這兩個屬性代表的內容如下:
在我的例子中,我使用了一些文本的例子,描述了一個在 Firefox 中需要供應商前綴的 CSS 屬性。這可能是一篇舊博客文章。刪除前綴后,我可以使用and元素來delete獲取舊文本和insert新文本。然后我可以使用該屬性來引用解決問題的錯誤報告。<del>``<ins>``cite
最后,這最后一個有點像老歌,但因為它不經常被使用,也許你甚至不知道它的存在。這是一個元素和一個屬性的組合。
<select>如果下拉選項中包含一長串項目,則可以使用<optgroup>元素及其關聯label屬性將選項分組為可見類別:
<select>
<option>--Your Favourite Animal--</option>
<optgroup label="Birds">
<option>Blue Jay</option>
<option>Cardinal</option>
<option>Hummingbird</option>
</optgroup>
<optgroup label="Sea Creatures">
<option>Shark</option>
<option>Clownfish</option>
<option>Whale</option>
</optgroup>
<optgroup label="Mammals">
<option>Lion</option>
<option>Squirrel</option>
<option>Quokka</option>
</optgroup>
</select>
您可以使用以下 CodePen 來試用一個示例:
請注意,每個<optgroup>都有一個label為每個組定義標題的屬性——但不能選擇標題。作為額外提示,您還可以使用disabledan 上的屬性來禁用下拉菜單<optgroup>該部分中的所有選項。<select>
這是我在研究本文時的另一對新屬性,它們在規范中也是相對較新的。
這兩個屬性都可以與元素一起定義rel=preload,as如下<link>所示:
<link rel="preload"
as="image"
imagesrcset="images/example-480.png 480w,
images/example-800.png 800w,
images/example.png 2000w"
imagesizes="(max-width: 600px) 480px,
(max-width: 1000px) 800px,
1000px"
src="images/example.png"
alt="Example Image">
這里的使用rel=preload通知瀏覽器我們希望指定的資源優先加載,因此它們不會被腳本和樣式表之類的東西阻塞。該as屬性指定所請求內容的類型。
您可以使用href屬性以及preload和預加載常規圖像as。但最重要的是,您可以使用imagesrcsetandimagesizes屬性,就像我在上面的代碼中所做的那樣。
這允許您預加載正確的圖像,具體取決于視口的大小或您在imagesizes屬性中指定的其他媒體功能。
除了我已經詳細描述和演示的屬性之外,您可能還想了解其他一些屬性,我將在這里簡要提及:
如果您使用過本文中提到的任何屬性,或者如果您知道在您的項目中使用過的另一個 HTML 功能,請隨時在評論中告訴我。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。