CSS3 如何实现穿梭星空动画功能
短信预约 -IT技能 免费直播动态提醒
本篇内容主要讲解“CSS3 如何实现穿梭星空动画功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS3 如何实现穿梭星空动画功能”吧!
实现效果:
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 如何实现穿梭星空动画功能”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341