用css動畫寫一個文字落下的背景動畫(密恐勿進)
效果:
這裡其實全是span 標籤 然後使用css3動畫讓他動起來就行了 比較簡單 直接上程式碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
html,
body {
margin: 0;
padding: 0;
height: 100%;
background-color: lightblue;
overflow: hidden;
}
span {
width: 100px;
color: gray;
display: block;
font-size: 20px;
font-family: FZXingKai-S04S, Cochin, Georgia, Times, 'Times New Roman', serif;
user-select: none;
position: absolute;
animation: move 15s linear infinite;
}
.bigbox {
position: absolute;
transform: rotate(20deg);
}
@keyframes move {
100% {
transform: rotate(10deg) translateX(2194px);
}
}
</style>
</head>
<body>
<div class="bigbox"></div>
<script>
for (var i = 0; i < 20; i++) {
for (var j = 0; j < 20; j++) {
var span = document.createElement('span')
span.innerText = "桃花朵朵開"
span.style.transform = `rotate(10deg)`
span.style.top = `${window.innerHeight/7*(-10+i)}px`
span.style.left = `${window.innerWidth/7*(-10+j)}px`
document.querySelector('.bigbox').appendChild(span)
}
console.log(window.innerWidth / 7)
}
</script>
</body>
</html>
這麼多標籤 我們可以用迴圈來建立 但是如果只有一整個螢幕的文字的話 很顯然不能做到全屏覆蓋 所以我總共建立了4個螢幕的span標籤 然後讓它旋轉後向下運動
for (var i = 0; i < 20; i++) {
for (var j = 0; j < 20; j++) {
var span = document.createElement('span')
//設定需要顯示的文字
span.innerText = "桃花朵朵開"
//讓他旋轉10度
span.style.transform = `rotate(10deg)`
//一個螢幕顯示49個 可以根據自己喜好調整密度
span.style.top = `${window.innerHeight/7*(-10+i)}px`
span.style.left = `${window.innerWidth/7*(-10+j)}px`
document.querySelector('.bigbox').appendChild(span)
}
}
定義動畫
這裡會有個小bug 因為是迴圈建立的span標籤所以寬度不好確定所以 會出現跳幀的bug
解決辦法:計算運動的距離+兩個標籤之間的距離
transform: rotate(10deg) translateX(計算運動的距離+兩個標籤之間的距離px);
@keyframes move {
100% {
transform: rotate(10deg) translateX(2194px);
}
}
使用動畫
span {
animation: move 15s linear infinite;
}
上面給父盒子加了定位和旋轉角度 (可加可不加) 不加改一改迴圈裡的角度即可
.bigbox {
position: absolute;
transform: rotate(20deg);
}
end!
相關文章
- CSS 怎樣寫一個動畫(從基礎動畫到3d動畫)CSS動畫3D
- 用css動畫寫一個下紅包雨的效果CSS動畫
- 奇思妙想 CSS 文字動畫CSS動畫
- 使用css寫一個紅綠燈交替的動畫效果CSS動畫
- CSS 炫酷文字過渡動畫CSS動畫
- 手寫一個 React 動畫元件React動畫元件
- Flutter動畫:用Flutter來實現一個拍手動畫Flutter動畫
- CSS動畫篇之404動畫CSS動畫
- css動畫CSS動畫
- 強大的CSS:文字下波浪線動畫效果CSS動畫
- 【動畫進階】神奇的背景,生化危機4日食 Loading 動畫還原動畫
- CSS中的“大白”——CSS 動畫CSS動畫
- CSS animation 動畫CSS動畫
- CSS3動畫之逐幀動畫CSSS3動畫
- css3 動畫(一) transitionCSSS3動畫
- Flare動畫進階——建立可互動的一拳超人動畫動畫
- Flutter抖動動畫、顫抖動畫、Flutter文字抖動效果Flutter動畫
- CSS hover改變背景圖片過渡動畫生硬CSS動畫
- CSS速刷 - CSS動畫CSS動畫
- CSS & SVG foreignObject 實現文字鏤空波浪動畫CSSSVGObject動畫
- jQuery+CSS3搞一個動畫簡歷jQueryCSSS3動畫
- 用html+css樣式,畫背景圖HTMLCSS
- 【譯】Flutter中的花式背景動畫Flutter動畫
- 【動畫進階】巧用 CSS/SVG 實現複雜線條光效動畫動畫CSSSVG
- Kotlin進階:動畫程式碼太醜,用DSL動畫庫拯救,像說話一樣寫程式碼喲!Kotlin動畫
- 寫一個高度從0到auto的transition動畫動畫
- 時鐘——CSS 動畫CSS動畫
- js 和 css動畫JSCSS動畫
- CSS變形動畫CSS動畫
- CSS動畫總結CSS動畫
- CSS 動畫專題CSS動畫
- 記一個頭像高光動畫的CSS實現動畫CSS
- Flutter 實現背景 Parallax 動畫Flutter動畫
- 【動畫進階】極具創意的滑鼠互動動畫動畫
- 【動畫消消樂 】HTML+CSS 吃豆豆動畫 073動畫HTMLCSS
- CSS實現文字打字動畫(+1白話講解)CSS動畫
- 【Android 動畫】動畫詳解之補間動畫(一)Android動畫
- SVG 文字路徑動畫SVG動畫