原文链接:https://tympanus.net/codrops/2016/04/26/the-aviator-animating-basic-3d-scene-threejs/ 源代码下载链接:https://files.cnblogs.com/files/jaycethanks/TheAviator.zip…
  前  言 JRedu 在之前的文章中,介绍了如何用JS制作一个实用的信息管理平台. 但是那样的平台功能过于简陋了,我们今天来继续完善一下. 首先我们回顾一下之前的内容.   1.JSON的基础知识 1.1  什么是JSON JSON是数据交互中,最常用的一种数据格式. 由于各种语言的语法都不相同,在传递数据时,可以将自己语言中的数组.对象等转换为JSON字符串. 传递之后,可以将JSON字符串,再解析为JSON对象. JSON对象的使用与JS中的对象基本相同,唯一需要区别的是,JSON中的键…
Seen.js 渲染3D场景为 SVG 或者 HTML5 画布.Seen.js 包含对于 SVG 和 HTML5 Canvas 元素的图形功能的最简单的抽象.所有这个库的其它组件都是不用关心将要渲染的上下文的类型. 您可能感兴趣的相关文章 你见过吗?9款超炫的复选框(Checkbox)效果 创意无限!一组网页边栏过渡动画[附源码下载] 真是好东西!13种非常动感的页面加载动画效果 Magic CSS3 – 帮助你实现神奇的交互动画效果 超赞!基于 Bootstrap 的响应式的后台管理模板 立即…
今天郭先生发现大家更喜欢看我发的three.js小作品,今天我就发一个3d版本推箱子的游戏,其实webGL有很多框架,three.js并不合适做游戏引擎,但是可以尝试一些小游戏.在线案例请点击博客原文. 要制作一个推箱子游戏,正常要有以下4个步骤 定义一些数组,要有开始箱子数组.结束箱子数组.地面数组还有墙面数组,有这四个数组就可以组成一个关卡. 根据数组初始化地面墙面箱子和目标地点标志物. 使用FirstPersonControls控制器,控制相机移动,根据地面箱子和墙面算出可移动区域. 根据…
通过js代码制作一个创意数字时钟 通过JS代码实现创意数字时钟效果如下:由数字化的卡通形象图片取代常规的数字显示当前实时北京时间.具体效果示例: 核心重点: (1)Date方法的初步了解 (2)构建模型,从特殊到一般. <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>cnblog头部轮播图</title&…
使用js制作计算器 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=""> <meta n…
背景 破防了 !突然发现 SegmentFault 平台的粉丝数量已经突破 1000 了,它是我的三个博客平台掘金.博客园.SegmentFault中首个粉丝突破 1000 的,于是设计开发这个页面,特此纪念一下.非常感谢大家的关注 ,后续我会更加专注前端知识的整理分享,写出更多高质量的文章.(希望其他平台也早日破千 ) 本文使用 React + Three.js 技术栈,实现粉丝突破 1000 的 3D 纪念页面,包含的主要知识点包括:Three.js 提供的光源.DirectionLight…
正在开发一个b2c的国外商城,昨天做了一个历史浏览记录发出来跟大家分享一下. JS: //cookie相关函数 function getCookieVal(offset) {    var endstr = document.cookie.indexOf(";", offset);    if (endstr == -1) endstr = document.cookie.length;    return unescape(document.cookie.substring(offs…
设计思路: 数码时钟即通过图片数字来显示当前时间,需要显示的图片的URL根据时间变化而变化. a.获取当前时间Date()并将当前时间信息转换为一个6位的字符串; b.根据时间字符串每个位置对应的数字来更改图片的src的值,从而实现更换显示图片; 构建HTML基础并添加样式. <div id="div1"> <img src='./数字时钟(1)_files/0.jpg'> <img src='./数字时钟(1)_files/0.jpg'> : &l…
原理与鼠标拖动 DIV 相同. 下面就先实现一个在DIV的右上角显示一个小正方形(类似). 当鼠标按下并拖动时,DIV会以要拖动的元素的左下角的坐标点定位,根据鼠标的拖动,按比例的扩大或缩小. 一.思路 1.鼠标按时事件. 这里要初始化数据. 同移动一样,给小正方形绑定鼠标按时事件. (1)获得并保存要移动的元素(parent)的宽(parentWidth)与高(parentHeight). 即:元素缩放前的宽与高. (2)由于是要按比例缩放,所以,要在这时计算出宽与高的比例(scale),得到…
这次是要对上一篇的内容进行扩展. 由于需要对可拖动的 DIV 进行一个区域范围的限制,所以要给于一个容器,让可拖动的 DIV 元素不能逃出该容器的大小范围. 一.思路 1.在外层增加一个 DIV 容器,并设置好容器的大小.(即:宽和高) 当容器存在边框的时候,由于这里还没找到获取的方法,所以,在容器边框大于 0 的时候,获得的容器的限制区域的坐标会有误差. 为了避免这情况,可以在多加一次容器,有边框样式的在外层,无边框样子的在内层. 例: <style> #mainContainer { bo…
使用 JS 来实现一个可拖动的DIV,主要是使用到以下几个事件: 1.鼠标按下:DIV元素的onmousedown. 2.鼠标按住拖动:document 的 onmousemove 元素. 3.鼠标放开:document 的 onmouseup 元素. 一.思路 1.当使用点击要拖动的 DIV 时,要首先计算出鼠标的位置与元素位置的差值: 1.1.X坐标的差值 = 鼠标当前位置的X坐标 - DIV元素的X坐标(即:左偏移量) 1.2.Y坐标的差值 = 鼠标当前位置的Y坐标 - DIV元素的Y坐标…
首先,介绍一些需要用到的基本知识. [JSON] JSON是数据交互中,最常用的一种数据格式. 由于各种语言的语法都不相同,在传递数据时,可以将自己语言中的数组.对象等转换为JSON字符串. 传递之后,可以将JSON字符串,再解析为JSON对象. JSON对象的使用与JS中的对象基本相同,唯一需要区别的是,JSON中的键,必须是字符串. 比如: var jsonObj = { "name":"zhangsan", "age":"12&q…
首先,介绍一些需要用到的基本知识. [JSON] JSON是数据交互中,最常用的一种数据格式. 由于各种语言的语法都不相同,在传递数据时,可以将自己语言中的数组.对象等转换为JSON字符串. 传递之后,可以将JSON字符串,再解析为JSON对象. JSON对象的使用与JS中的对象基本相同,唯一需要区别的是,JSON中的键,必须是字符串. 比如: var jsonObj = { "name":"zhangsan", "age":"12&q…
首先,这是一个HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Simple Canvas Game</title> </head> <body> </body> </html> <script src="../js/canvas.…
<!DOCTYPE html> <html lang="en"> <head> <title>three.js webgl - orbit controls</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scalable=no, mi…
当DIV元素里,存在图片元素的时候,会使拖动出现异常. 因为图片元素本身就支持拖动,所以,只要在图片标签加入:draggable='false'. 如下: <div onmousedown="moveBind(this, event)" style="width:50px;height:50px; left:285px;top:370px; position:absolute;"><img src="http://pic.cnitblog…
2020-07-09更新 修复倒计时归零后出现负数的bug 自动切换至下一年日期 ##效果展示 前言 在B站上找视频学习的,勉强搞出来了,写下此篇文章作为笔记,也希望有更多感兴趣的人能够有所收获. (萌新练习,大佬勿喷 (滑稽)) ##代码 ###HTML代码 index.html <!DOCTYP…
声明:本文涉及图文和模型素材仅用于个人学习.研究和欣赏,请勿二次修改.非法传播.转载.出版.商用.及进行其他获利行为. 背景 逛 sketchfab 网站的时候我看到有很多二维平面转 3D 的模型例子,于是仿照他们的例子,使用 Three.js + React 技术栈,将二维漫画图片转化为三维视觉效果.本文包含的内容主要包括:THREE.Group 层级模型.MeshPhongMaterial 高光网格材质.正弦余弦函数 创建模型移动轨迹等. 效果 实现效果如 下图所示:页面主要有背景图.漫画图…
使用js制作一个简单的产品放大图 购物网站的产品页经常会放有一个产品展示图区.该图区有一个功能就是产品图的放大功能,移动左侧的焦点区域,可以放大细节部分观看,详情如下图.实现该功能的方法也非常简单. 实验:制作产品焦点放大图. 所需技能:1.基本的获取页面元素的方法: 2.几个简单的事件: 3.会使用dom设置元素的属性: 案例原理:1.焦点框的跟随鼠标事件: 2.焦点框的移动区域规定: 3.大盒子内容的显示: 适合对象:js初学者 -------------------------------…
使用vue.js 制作一个用户表添加页面,实际上是把原来需要使用js写的部分,改写成vue.js的格式 首先,想象一下,先做思考,我们要添加用户表,设涉及到哪些数据,一个是用户id,一个是用户名,一个是年龄....还有很多,为了数据的简单明了,只举例部分数据即可 在vue中,el是作用的范围,这个直接获取html 中的id即可,再一个是data,这个是vue中存储数据的部分,刚才说到,这里有一个用户名,一个年龄.而没一个用户名对用一个年龄,这个是固定的,对于固定的东西,我们喜欢绑定在一起,这样在…
第一章 用three.js创建你的第一个3D场景 到官网下载three.js的源码和示例. 创建HTML框架界面 第一个示例的代码如下: 01-basic-skeleton.html 位于 Learning Three.js- The JavaScript 3D Library for WebGL\chapter-01 <!DOCTYPE html> <html> <head> <title>Example 01.01 - Basic skeleton<…
今天我们来讨论一下如何使用当前流行的WebGL技术搭建一个库房并且实现实时有效交互 第一步.搭建一个3D库房首先你得知道库房长啥样,我们先来瞅瞅库房长啥样(这是我在网上找的一个库房图片,百度了“库房”一下,找不到合适的全景,我们也只能窥一斑思全豹了,就它了,特此声明:此图片归原作者所有 非被人所拍,拿来只是给读者做个案例) 下面是我用webgl做出来的3D效果图(当前展示没有货物时的整体模拟): 第二部.开干 1. 首先我们创建一个页面,引入各种需要的库文件 <script src="/j…
闲话少叙,我们接着第一课继续讲(http://www.cnblogs.com/yeyunfei/p/7899613.html),很久没有做技术分享了.很多人问第二课有没有,我也是抽空写一下第二课. 第一课程提到了在库房的基础上添加上下架 消防 温湿度等等控制 刚好 最近有接到一个客户的需求 是和库房差不多的项目 只是不是库房了 是档案室 但是基本操控还是差不多的 也有文件上下架什么的 那么第二课  我们就按照客户的需求 先做一个概述性的展现 特此说明:为了减少网络传输带宽 我特意用ScreenT…
序:这段时间忙于奔波,好久没有更新了,今天更新一下,继续上节课的完善讲解,算是对前段时间的一个总结吧.披星戴月的时光也算有点应用效果了. 对于webgl(three.js)性能这一块我在上节课<使用webgl(three.js)搭建一个3D建筑,3D消防模拟——第三课>已经给了详细的说明比较与解决方案 技术交流邮箱1203193731@qq.com 本节概要: 继上节课我们说的消防相关的操控模拟,本节课我们继续讲解用three.js创建大场景模拟与实现 本节课我们主要实现一个园区的消防三维模拟…
闲话少叙,我们接着第一课继续讲(http://www.cnblogs.com/yeyunfei/p/7899613.html),很久没有做技术分享了.很多人问第二课有没有,我也是抽空写一下第二课. 第一课程提到了在库房的基础上添加上下架 消防 温湿度等等控制 刚好 最近有接到一个客户的需求 是和库房差不多的项目 只是不是库房了 是档案室 但是基本操控还是差不多的 也有文件上下架什么的 那么第二课  我们就按照客户的需求 先做一个概述性的展现 特此说明:为了减少网络传输带宽 我特意用ScreenT…
很长一段时间没有写3D库房,3D密集架相关的效果文章了,刚好最近有相关项目落地,索性总结一下 与之前我写的3D库房密集架文章<如何用webgl(three.js)搭建一个3D库房,3D密集架,3D档案室,-第二课>相比,本次做了一些效果上的升级,以及更加贴合用户应用实际. 密集架库房再档案管理,土壤监测,标本存储等各个行业应用的比较多,从早期的货架到后来的手摇式密集架再到现在的全自动密集架,硬件上都做了升级改进. 在环境.安防监控这一块,密集架方案提供商也配套的加上了八方感知,视频监控,温湿度…
序 又是快两个月没写随笔了,长时间不总结项目,不锻炼文笔,一开篇,多少都会有些生疏,不知道如何开篇,如何写下去.有点江郎才尽,黔驴技穷的感觉. 写随笔,通常三步走,第一步,搭建框架,先把你要写的内容框架搭建出来:第二步,添砖,在框架基础上,填写各部分内容:第三步,加瓦,再写好的内容上进行修改,润湿.然后文章的质量,就因人而异了.但不管怎么说,得写,得练,得经受的起各路能人志士的批评指教,至于改不改,那也是写文章的人的事了(通常我是认真接受批评指教的). 你看,写道这里,我又不知道再序些啥了,索性…
序 又是快两个月没写随笔了,长时间不总结项目,不锻炼文笔,一开篇,多少都会有些生疏,不知道如何开篇,如何写下去.有点江郎才尽,黔驴技穷的感觉. 写随笔,通常三步走,第一步,搭建框架,先把你要写的内容框架搭建出来:第二步,添砖,在框架基础上,填写各部分内容:第三步,加瓦,再写好的内容上进行修改,润湿.然后文章的质量,就因人而异了.但不管怎么说,得写,得练,得经受的起各路能人志士的批评指教,至于改不改,那也是写文章的人的事了(通常我是认真接受批评指教的). 你看,写道这里,我又不知道再序些啥了,索性…
最近有three网友,问我要不要学习blender,其实我感觉学习一下也无妨,不过花大量时间精通,尚可不必,术业有专攻给别人留一条路吧,哈哈.那我我们就是用ThreeBSP和uv贴图的知识来制作一个定制化的快递柜,先上图,在线案例请点击博客原文. 下面我们来讲解一下这样一个柜子的制作. 1. 主角是一个JSON 这样一个快递柜的核心是JSON数据的创建,有了jSON数据,我们就可以通过循环遍历出柜子,柜门和uv映射关系.那面下面来看看我们的JSON数据(部分代码). var doorArray…