|
導讀網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立... 網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。 本篇文章給大家帶來的內容是關于如何使用CSS和D3和GSAP實現橫條 loader (附源碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。效果預覽
源代碼下載https://github.com/comehope/front-end-daily-challenges 代碼解讀定義 dom,容器中包含 1 個 <div class="loader">
<span></span>
</div>居中顯示: body {
margin: 0;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background-color: black;
}定義容器尺寸: .loader {
width: 40em;
height: 1em;
font-size: 10px;
}設置容器中 .loader {
position: relative;
}
.loader span {
position: absolute;
width: inherit;
height: inherit;
background-color: hsl(24, 100%, 65%);
}引入 d3.js: <script src="https://d3js.org/d3.v5.min.js"></script> 刪除掉 dom 中的 const COUNT = 1;
d3.select('.loader')
.selectAll('span')
.data(d3.range(COUNT).map(d => d + 1))
.enter()
.append('span')刪除掉 css 中設置 d3.select('.loader')
.selectAll('span')
.data(d3.range(COUNT).map(d => d + 1))
.enter()
.append('span')
.style('background-color', `hsl(24, 100%, 65%)`)把細長條的數量改為 2 個,顏色改為動態生成: const HUE_DEG = 12;
const COUNT = 2;
d3.select('.loader')
/* ...略 */
.style('background-color', (d) => `hsl(${d * HUE_DEG}, 100%, 65%)`)再進一步,把顏色改為彩色條和黑色條間隔出現,請注意雖然在表達式中 hue 的值是按 12 遞增,但實際看到的的效果是彩色長條間的 hue 相差 24,因為其中夾雜著黑色長條: d3.select('.loader')
/* ...略 */
.style('background-color', (d) => d % 2 !== 0
? `hsl(${d * HUE_DEG}, 100%, 65%)`
: 'black');此時,動態生成的 dom 結構為: <p class="container">
<span style="background-color: rgb(255, 77, 77);"></span>
<span style="background-color: black;">
</p>引入 gsap 庫: <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/2.0.2/TweenMax.min.js"></script> 增加長條由中心向兩側伸展的動畫效果: let animation = new TimelineMax({repeat: -1});
animation.staggerFrom('.loader span', 0.5, {scaleX: 0}, 0.4)最后,把長條的數量改為 30 個,它是用整圈色相環的 360 度除以 hue 間隔得到的: const COUNT = 360 / HUE_DEG; 大功告成! 相關推薦: 如何使用CSS和GSAP實現有多個關鍵幀的連續動畫(附源碼)以上就是如何使用CSS和D3和GSAP實現橫條 loader (附源碼)的詳細內容,更多請關注php中文網其它相關文章! 網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。 |
溫馨提示:喜歡本站的話,請收藏一下本站!