HTML+CSS+JS实现 ❤️canvas 3D云动画效果❤️

🍅 作者主页:Java李杨勇 

🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌  简历模板、学习资料、面试题库、技术互助【关注我,都给你】

🍅 欢迎点赞 👍 收藏 ⭐留言 📝   

效果演示: 文末获取源码 

代码目录:

主要代码实现:

CSS样式:

   body {background-color: #326696;margin: 0px;overflow: hidden;font-family: Monospace;font-size: 13px;text-align: center;font-weight: bold;text-align: center;}a {color: #0078ff;}

HTML代码 :

<body><script type="text/javascript" src="js/ThreeWebGL.js"></script><script type="text/javascript" src="js/ThreeExtras.js"></script><script type="text/javascript" src="js/Detector.js"></script><script type="text/javascript" src="js/RequestAnimationFrame.js"></script><script id="vs" type="x-shader/x-vertex">varying vec2 vUv; void main() { vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }</script><script id="fs" type="x-shader/x-fragment">uniform sampler2D map; uniform vec3 fogColor; uniform float fogNear; uniform float fogFar; varying vec2 vUv; void main() { float depth = gl_FragCoord.z / gl_FragCoord.w; float fogFactor = smoothstep( fogNear, fogFar, depth ); gl_FragColor = texture2D(map, vUv ); gl_FragColor.w *= pow( gl_FragCoord.z, 20.0 ); gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor ); }</script><script type="text/javascript">if (!Detector.webgl) Detector.addGetWebGLMessage();// Bg gradientvar canvas = document.createElement('canvas');canvas.width = 32;canvas.height = window.innerHeight;var context = canvas.getContext('2d');var gradient = context.createLinearGradient(0, 0, 0, canvas.height);gradient.addColorStop(0, "#1e4877");gradient.addColorStop(0.5, "#4584b4");context.fillStyle = gradient;context.fillRect(0, 0, canvas.width, canvas.height);document.body.style.background = 'url(' + canvas.toDataURL('image/png') + ')';// Cloudsvar container;var camera, scene, renderer, sky, mesh, geometry, material,i, h, color, colors = [],sprite, size, x, y, z;var mouseX = 0,mouseY = 0;var start_time = new Date().getTime();var windowHalfX = window.innerWidth / 2;var windowHalfY = window.innerHeight / 2;init();animate();function init() {container = document.createElement('div');document.body.appendChild(container);camera = new THREE.Camera(30, window.innerWidth / window.innerHeight, 1, 3000);camera.position.z = 6000;scene = new THREE.Scene();geometry = new THREE.Geometry();var texture = THREE.ImageUtils.loadTexture('cloud10.png');texture.magFilter = THREE.LinearMipMapLinearFilter;texture.minFilter = THREE.LinearMipMapLinearFilter;var fog = new THREE.Fog(0x4584b4, -100, 3000);material = new THREE.MeshShaderMaterial({uniforms: {"map": {type: "t",value: 2,texture: texture},"fogColor": {type: "c",value: fog.color},"fogNear": {type: "f",value: fog.near},"fogFar": {type: "f",value: fog.far},},vertexShader: document.getElementById('vs').textContent,fragmentShader: document.getElementById('fs').textContent,depthTest: false});var plane = new THREE.Mesh(new THREE.Plane(64, 64));for (i = 0; i < 8000; i++) {plane.position.x = Math.random() * 1000 - 500;plane.position.y = -Math.random() * Math.random() * 200 - 15;plane.position.z = i;plane.rotation.z = Math.random() * Math.PI;plane.scale.x = plane.scale.y = Math.random() * Math.random() * 1.5 + 0.5;GeometryUtils.merge(geometry, plane);}mesh = new THREE.Mesh(geometry, material);scene.addObject(mesh);mesh = new THREE.Mesh(geometry, material);mesh.position.z = -8000;scene.addObject(mesh);renderer = new THREE.WebGLRenderer({antialias: false});renderer.setSize(window.innerWidth, window.innerHeight);container.appendChild(renderer.domElement);document.addEventListener('mousemove', onDocumentMouseMove, false);window.addEventListener('resize', onWindowResize, false);}function onDocumentMouseMove(event) {mouseX = (event.clientX - windowHalfX) * 0.25;mouseY = (event.clientY - windowHalfY) * 0.15;}function onWindowResize(event) {camera.aspect = window.innerWidth / window.innerHeight;camera.updateProjectionMatrix();renderer.setSize(window.innerWidth, window.innerHeight);}function animate() {requestAnimationFrame(animate);render();}function render() {position = ((new Date().getTime() - start_time) * 0.03) % 8000;camera.position.x += (mouseX - camera.target.position.x) * 0.01;camera.position.y += (-mouseY - camera.target.position.y) * 0.01;camera.position.z = -position + 8000;camera.target.position.x = camera.position.x;camera.target.position.y = camera.position.y;camera.target.position.z = camera.position.z - 1000;renderer.render(scene, camera);}</script>
</body>

上面的js文件需要引入 

源码获取

大家可以点赞、收藏、关注、评论我啦 、查看博主主页或下方微信公众号获取~!

打卡 文章 更新 44  /  100天

精彩推荐更新中:

HTML5大作业实战案例《100套》

Java毕设项目精品实战案例《100套》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562012.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

numpy python 兼容_Python 2和3之间的numpy数组的不兼容性

我试图加载MNIST数据集链接here在Python 3.2使用此程序&#xff1a;import pickleimport gzipimport numpywith gzip.open(mnist.pkl.gz, rb) as f:l list(pickle.load(f))print(l)不幸的是&#xff0c;它给我的错误&#xff1a;Traceback (most recent call last):File "…

HTML+CSS+JS实现 ❤️canvas 3D立体图片相册幻灯片❤️

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

HTML+CSS+JS实现 ❤️3D立体魔方小游戏❤️

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

css 解析器 java_Java 的 CSS 解析器 jStyleParser

软件介绍jStyleParser 是一个开源 Java 的 CSS 解析器&#xff0c;可以在 Java 程序中解析 CSS 样式文件。Mavennet.sf.cssboxjstyleparser3.2示例代码&#xff1a;//get the element styleStyleMap map CSSFactory.assignDOM(doc, encoding, base, medium, true);NodeData st…

HTML+CSS+JS实现 ❤️slicebox酷炫3d图片轮播切换❤️

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

HTML+CSS+JS实现 ❤️动态散花背景❤️

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

java getdelay_java中DelayQueue的一个使用陷阱分析

最近工作中有接触到DelayQueue&#xff0c;网上搜索资料的时候发现一篇文章谈到DelayQueue的坑。点击打开链接文中已经总结了遇到坑的地方&#xff0c;还有解决方案。不过我第一眼看一下没弄明白为什么&#xff0c;所以翻了翻源码深究了一下&#xff0c;下面把这个坑的原因以及…

HTML+CSS+JS实现美女照片3D立方体旋转特效

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李阳勇 公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

JAVA回调函数的例子_javascript : 回调函数例子

数字时钟 digital_clock.htmlDigital Clock// Define a function to display the current timefunction displayTime() {var elt document.getElementById("clock"); // Find element with id"clock"var now new Date(); // Get current timeelt.innerHT…

HTML+CSS+JS实现 ❤️canvas酷炫表白爱心动画❤️

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

HTML+CSS+JS实现 ❤️酷炫HUD科幻数据屏幕动画界面❤️

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

java 条件 等待_java – 如何唤醒等待相同条件的所有线程?

我有以下情况.几个线程正在等待相同的条件.当得到通知时,所有应该停止等待,更改标志并返回对象&#xff1a;public Object getObject(){lock.lock();try {while (check)){condition.await();}return returnObjectAndSetCheckToFalse();} finally {lock.unlock();}}但是这段代码…

基于Springboot+Mybatis实现个人理财系统

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

java 递归遍历对象所有属性_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...

xml中加入了几条&#xff0c;为了方便查询时作为示例。话不多说见代码注释&#xff1a;DTD文件&#xff1a;SwordTypeDefinition.dtdXML文件&#xff1a;SwordLib.xmlSwordLibrary SYSTEM "SwordTypeDefinition.dtd">欢欣之刃100010夜叉205030魔棒2000java代码&am…

HTML+CSS+JS实现 ❤️酷炫3D瀑布流动画特效❤️

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

java 取dataset_Java LineDataSet.getYVals方法代码示例

import com.github.mikephil.charting.data.LineDataSet; //导入方法依赖的package包/类protected void drawCircles(Canvas c) {mRenderPaint.setStyle(Paint.Style.FILL);float phaseX mAnimator.getPhaseX();float phaseY mAnimator.getPhaseY();List dataSets mChart.ge…

HTML+CSS+JS实现 ❤️canvas圆形水波进度条动画特效❤️

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

HTML+CSS+JS实现 ❤️圆圈波纹动画特效❤️

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

java 二叉树迭代器_C,为二叉树实现自定义迭代器(长)

请你好 - 这是我的第一个问题 . P基本上作为夏季项目&#xff0c;我一直在浏览wikipedia page上的数据结构列表并尝试实现它们 . 我上学期参加了一门C课程并发现它非常有趣&#xff0c;作为我实施二项式堆的最后一个项目 - 这也非常有趣 . 也许我很讨厌&#xff0c;但我喜欢数…

java防止编码重复_java – 如何避免许多小类的代码重复?

我有不同的课程,分别是英语,西班牙语,法语等&#xff1a;Class English{String name "English";String alias "ENG";}Class French{String name "French";String alias "Fre";}与其他语言类似.还有一个叫做语言的课&#xff1a;Cl…