CSS3 實(shí)現(xiàn)穿梭星空動(dòng)畫(huà)
發(fā)布時(shí)間:2020-11-13 17:23:51 作者:Nick Mkrtchyan
我要評(píng)論
這篇文章主要介紹了CSS3 實(shí)現(xiàn)穿梭星空動(dòng)畫(huà)的示例,幫助大家更好的理解和制作CSS3特效,用來(lái)美化網(wǎng)頁(yè),感興趣的朋友可以了解下
實(shí)現(xiàn)效果:

html
<canvas id="starfield"></canvas>
css
* {
background:black;
padding:0;
margin:0;
}
canvas {
padding:0;
margin:0;
width:100%;
height:100%;
}
js
function $i(t) {
return document.getElementById(t)
}
function $r(t, r) {
document.getElementById(t).removeChild(document.getElementById(r))
}
function $t(t) {
return document.getElementsByTagName(t)
}
function $c(t) {
return String.fromCharCode(t)
}
function $h(t) {
return ("0" + Math.max(0, Math.min(255, Math.round(t))).toString(16)).slice(-2)
}
function _i(t, r) {
$t("div")[t].innerHTML += r
}
function _h(t) {
return hires ? Math.round(t / 2) : t
}
function get_screen_size() {
var t = document.documentElement.clientWidth,
r = document.documentElement.clientHeight;
return Array(t, r)
}
function init() {
for (var t = 0; n > t; t++) star[t] = new Array(5), star[t][0] = Math.random() * w * 2 - 2 * x, star[t][1] = Math.random() * h * 2 - 2 * y, star[t][2] = Math.round(Math.random() * z), star[t][3] = 0, star[t][4] = 0;
var r = $i("starfield");
r.style.position = "absolute", r.width = w, r.height = h, context = r.getContext("2d"), context.fillStyle = "rgb(0,0,0)", context.strokeStyle = "rgb(255,255,255)"
}
function anim() {
mouse_x = cursor_x - x, mouse_y = cursor_y - y, context.fillRect(0, 0, w, h);
for (var t = 0; n > t; t++) test = !0, star_x_save = star[t][3], star_y_save = star[t][4], star[t][0] += mouse_x >> 4, star[t][0] > x << 1 && (star[t][0] -= w << 1, test = !1), star[t][0] < -x << 1 && (star[t][0] += w << 1, test = !1), star[t][1] += mouse_y >> 4, star[t][1] > y << 1 && (star[t][1] -= h << 1, test = !1), star[t][1] < -y << 1 && (star[t][1] += h << 1, test = !1), star[t][2] -= star_speed, star[t][2] > z && (star[t][2] -= z, test = !1), star[t][2] < 0 && (star[t][2] += z, test = !1), star[t][3] = x + star[t][0] / star[t][2] * star_ratio, star[t][4] = y + star[t][1] / star[t][2] * star_ratio, star_x_save > 0 && w > star_x_save && star_y_save > 0 && h > star_y_save && test && (context.lineWidth = 2 * (1 - star_color_ratio * star[t][2]), context.beginPath(), context.moveTo(star_x_save, star_y_save), context.lineTo(star[t][3], star[t][4]), context.stroke(), context.closePath());
timeout = setTimeout("anim()", fps)
}
function start() {
resize(), anim()
}
function resize() {
w = parseInt(-1 != url.indexOf("w=") ? url.substring(url.indexOf("w=") + 2, -1 != url.substring(url.indexOf("w=") + 2, url.length).indexOf("&") ? url.indexOf("w=") + 2 + url.substring(url.indexOf("w=") + 2, url.length).indexOf("&") : url.length) : get_screen_size()[0]), h = parseInt(-1 != url.indexOf("h=") ? url.substring(url.indexOf("h=") + 2, -1 != url.substring(url.indexOf("h=") + 2, url.length).indexOf("&") ? url.indexOf("h=") + 2 + url.substring(url.indexOf("h=") + 2, url.length).indexOf("&") : url.length) : get_screen_size()[1]), x = Math.round(w / 2), y = Math.round(h / 2), z = (w + h) / 2, star_color_ratio = 1 / z, cursor_x = x, cursor_y = y, init()
}
var url = document.location.href,
flag = !0,
test = !0,
n = parseInt(-1 != url.indexOf("n=") ? url.substring(url.indexOf("n=") + 2, -1 != url.substring(url.indexOf("n=") + 2, url.length).indexOf("&") ? url.indexOf("n=") + 2 + url.substring(url.indexOf("n=") + 2, url.length).indexOf("&") : url.length) : 812),
w = 0,
h = 0,
x = 0,
y = 0,
z = 0,
star_color_ratio = 0,
star_x_save, star_y_save, star_ratio = 115,
star_speed = 5,
star_speed_save = 0,
star = new Array(n),
color, opacity = .1,
cursor_x = 0,
cursor_y = 0,
mouse_x = 0,
mouse_y = 0,
canvas_x = 0,
canvas_y = 0,
canvas_w = 0,
canvas_h = 0,
context, key, ctrl, timeout, fps = 0;
start();
以上就是CSS3 實(shí)現(xiàn)穿梭星空動(dòng)畫(huà)的詳細(xì)內(nèi)容,更多關(guān)于CSS3 星空動(dòng)畫(huà)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章

css3實(shí)現(xiàn)平移效果(transfrom:translate)的示例
這篇文章主要介紹了css3實(shí)現(xiàn)平移效果(transfrom:translate)的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著2020-11-13
CSS3新擬態(tài)圖標(biāo)懸停動(dòng)畫(huà)特效代碼
CSS3新擬態(tài)圖標(biāo)懸停動(dòng)畫(huà)特效代碼是一款扁平簡(jiǎn)潔的新擬態(tài)快捷圖標(biāo)導(dǎo)航,鼠標(biāo)懸停圖標(biāo)按鈕動(dòng)畫(huà)特效。2020-11-13
CSS3全屏圖文幻燈片自動(dòng)輪播特效代碼是一款全屏大氣的響應(yīng)式圖文幻燈片自動(dòng)輪播切換特效代碼帶文字說(shuō)明。2020-11-13
這篇文章主要介紹了CSS3 文字動(dòng)畫(huà)效果如何實(shí)現(xiàn),幫助大家更好的使用和制作CSS3特效,感興趣的朋友可以了解下2020-11-12
css3彈性盒子flex實(shí)現(xiàn)三欄布局的實(shí)現(xiàn)
這篇文章主要介紹了css3彈性盒子flex實(shí)現(xiàn)三欄布局的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起2020-11-12
CSS3 按鈕邊框動(dòng)畫(huà)的實(shí)現(xiàn)
這篇文章主要介紹了CSS3 按鈕邊框動(dòng)畫(huà)的實(shí)現(xiàn),幫助大家更好的理解和使用CSS3,美化自身網(wǎng)頁(yè),感興趣的朋友可以了解下2020-11-12
純css3巫師法術(shù)加載特效代碼是一款創(chuàng)意的漫畫(huà)人物loading加載圖標(biāo)動(dòng)畫(huà)特效代碼。2020-11-12
css3復(fù)選框選中灰色變彩色圖片特效是一款純css3實(shí)現(xiàn)的鼠標(biāo)點(diǎn)擊圖片選中打鉤,圖片由灰色變成彩色的特效。2020-11-12
這篇文章主要介紹了CSS3 實(shí)現(xiàn)發(fā)光邊框特效,幫助大家更好的理解和制作CSS3特效,美化自身網(wǎng)頁(yè),感興趣的朋友可以了解下2020-11-11
CSS3 實(shí)現(xiàn)圖形下落動(dòng)畫(huà)效果
這篇文章主要介紹了CSS3 實(shí)現(xiàn)圖形下落動(dòng)畫(huà)效果,幫助大家更好的理解和制作CSS3特效,美化自身網(wǎng)頁(yè),感興趣的朋友可以了解下2020-11-13





