
分享一個(gè)基于ThreeJS的3D海浪涌動(dòng)特效 , 效果如下:
常可用于頁面背景 , 3D效果 , 視覺觀感很好 , 海浪會(huì)隨機(jī)涌動(dòng) , 科幻感、技術(shù)感強(qiáng)烈 。
代碼說明代碼會(huì)引用ThreeJS庫 , 版本號(hào)為56 。 注:必須是此版本 。
頁面背景色可在Body的style中自行調(diào)節(jié) 。
完整源碼如下 , 直接保存為html文件即可使用 。
<body style=\"background:#000000\">
也可對(duì)源碼優(yōu)化修改 , 以實(shí)現(xiàn)更好效果 , 如果不想修改后的源碼泄露出去 , 可用JShaman對(duì)JS代碼進(jìn)行加密 。
源碼
<body style=\"background:#000000\">
<script src=https://mparticle.uc.cn/"three.js\" type=\"application/javascript\"></script>
<div></div>
<script>
var SEPARATION = 100
AMOUNTX = 100
AMOUNTY = 70;
var container;
var camera scene renderer;
var particles particle count = 0;
var mouseX = 85
mouseY = -342;
var windowHalfX = window.innerWidth / 2;
【納米|技術(shù)分享:用JS實(shí)現(xiàn)的3D海浪涌動(dòng)特效】var windowHalfY = window.innerHeight / 2;
init();
animate();
function init() {
container = document.createElement('div');
document.body.appendChild(container);
camera = new THREE.PerspectiveCamera(120 window.innerWidth / window.innerHeight 1 10000);
camera.position.z = 1000;
scene = new THREE.Scene();
particles = new Array();
var PI2 = Math.PI * 2;
var material = new THREE.ParticleCanvasMaterial({
color: 0xe1e1e1
program: function(context) {
context.beginPath();
context.arc(0 0 .6 0 PI2 true);
context.fill();
);
var i = 0;
for (var ix = 0; ix < AMOUNTX; ix++) {
for (var iy = 0; iy < AMOUNTY; iy++) {
particle = particles[i++
= new THREE.Particle(material);
particle.position.x = ix * SEPARATION - ((AMOUNTX * SEPARATION) / 2);
particle.position.z = iy * SEPARATION - ((AMOUNTY * SEPARATION) / 2);
scene.add(particle);
renderer = new THREE.CanvasRenderer();
renderer.setSize(window.innerWidth window.innerHeight);
container.appendChild(renderer.domElement);
document.addEventListener('mousemove' onDocumentMouseMove false);
document.addEventListener('touchstart' onDocumentTouchStart false);
document.addEventListener('touchmove' onDocumentTouchMove false);
window.addEventListener('resize' onWindowResize false);
function onWindowResize() {
windowHalfX = window.innerWidth / 2;
windowHalfY = window.innerHeight / 2;
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth window.innerHeight);
function onDocumentMouseMove(event) {
mouseX = event.clientX - windowHalfX;
mouseY = event.clientY - windowHalfY;
function onDocumentTouchStart(event) {
if (event.touches.length === 1) {
event.preventDefault();
mouseX = event.touches[0
.pageX - windowHalfX;
mouseY = event.touches[0
.pageY - windowHalfY;
function onDocumentTouchMove(event) {
if (event.touches.length === 1) {
event.preventDefault();
mouseX = event.touches[0
.pageX - windowHalfX;
mouseY = event.touches[0
.pageY - windowHalfY;
function animate() {
requestAnimationFrame(animate);
render();
function render() {
camera.position.x += (mouseX - camera.position.x) * .05;
camera.position.y += (-mouseY - camera.position.y) * .05;相關(guān)經(jīng)驗(yàn)推薦
- 吸塵器|VR+醫(yī)療:在手術(shù)中運(yùn)用VR技術(shù),打造沉浸式模擬培訓(xùn)體驗(yàn)
- 腦機(jī)接口|視覺感知技能的損害,會(huì)導(dǎo)致使用腦機(jī)接口技術(shù)的能力下降
- 腦機(jī)接口|盡管腦機(jī)接口只識(shí)別一兩個(gè)運(yùn)動(dòng)想象狀態(tài),但科學(xué)家提出了一種特定交互技術(shù)
- 聯(lián)想|研發(fā)是企業(yè)發(fā)展的核心,看看聯(lián)想沒有核心技術(shù),慢慢走下神壇
- 數(shù)據(jù)庫|信息技術(shù)應(yīng)用創(chuàng)新PostgreSQL管理員PG中級(jí)認(rèn)證(PGCP認(rèn)證)
- 信息技術(shù)|中國股市:“人工智能”行情火爆!這5只龍頭開啟新征程(收藏)
- |新技術(shù)促進(jìn)大容量CVB通信技術(shù)的發(fā)展
- 顯示器|如何讓你的桌面變得更完美:FS升降桌改造分享
- iPhone|粉絲買iPhone“置換機(jī)”翻車,網(wǎng)友:翻新技術(shù)太強(qiáng),中招的不止你一人!
- find x|安卓機(jī)視頻差iPhone幾代?Find X5影像核心技術(shù)曝光,或填平差距
