js实现地球旋转动画(js3d旋转)

虚拟屋 2022-12-17 19:57 编辑:admin 295阅读

1. js3d旋转

使用下3D秀秀这款产品,到3D秀秀的官网,他们首页就有一些精品模型的案例,可以在线进行显示边线,分解,拖动,旋转,剖切,平移,缩放,全屏显示等等操作。

要实现自己的模型的3D展示也和简单,注册个账号,装一下相应的转化工具,支持SolidWorks,rhino,3Dmax,inventor,nx等,就能发布成功了。

而且在个人用户中心,可以进行模型的编辑和预览设置。模型编辑可以进行名称、分类、预览图和是否公开或加密的操作。预览设置界面,可以进行高级的模型编辑工作,比如:模型自转,材质调整,背景\音乐更换,光源条件,角度约束,视角标注等等。

设置完成后,每个模型都有它单独的URL,二维码和代码可以直接分享给别人,而且在你的手机,pad,电脑这些终端都能玩,相当便利。

2. Js3d旋转切换

1、首先在打开指南针前,要打开iPhone上的【定位服务】,找到手机主屏上的【设置】。

2、然后找到【隐私】,点击进入【隐私】。

3、找到【定位服务】,进入后开启【定位服务】。

4、接着找到屏幕上的【指南针】APP,打开【指南针】,选择允许访问当前的位置。

5、第一次打开可能需要进行校准,让红色的小球在圆圈里转几圈。

6、就可以看到指南针了,可以显示当前位置的经度和纬度。

7、在指示方向的时候,尽量让手机水平,对准中间的加号。

8、点击中间的白色竖线可以锁定当前的方向,再次点击可以取消。

9、另外指南针还可以显示平面是否,水平向右滑动,当为0°的时候就是水平。

3. 3d游戏旋转

不是,alt+鼠标中键,只能在少量面数的模型孤立时用或者给客户看模型场景时用。后者是因为界面清爽点。 要旋转视图,用max界面右下角的旋转命令,会比alt+中健更顺畅。因为鼠标是个硬件,要传达指令,比快捷键要慢多了。 要是卡,可以将模型孤立,在线框视图显示,取消背面消隐。

4. js3d旋转效果

推导用复数方法比较简单: 设在复平面中:原曲线上一点直角坐标(x,y),原曲线绕坐标原点旋转α角后该点对应直角坐标(x',y') 则:(x,yi)*(cosα,isinα)=(x',y'i) 即:(x',y'i)=(xcosα-ysinα,i(xsinα+ycosα)) 所以:x'= xcosα-ysinα;y'= xsinα+ycosα

5. 3dmax中旋转

(1)分别使用选择移动按钮、旋转物体按钮、缩放物体按钮,选择物体后,物体会分别显示出移动、旋转、缩放变换线框Gizmo。

(2)点击键盘中的“=”键,可以放大坐标轴Gizmo。点击键盘中的“-”键,能缩小坐标轴Gizmo。

(3)点击键盘中的X键,它是变换线框Gizmo显示/隐藏的键盘快捷键,此时Gizmo会隐藏起来,再次点击X键,显示变换线框Gizmo。

(4)当点击X键,隐藏Gizmo后,物体上还会有一个无法操作的坐标轴,此时红色显示的轴向为可操作的方向,灰色显示的轴是不可操作的。

6. js3d旋转相册

.

首先准备一个小程序目录,并且准备qrcode的js文件,

2.

接着用qrcode创建完图片以后直接写回调函数,

3.

然后将图片路径缓存下来,

4.

接着直接调用saveImageToPhotosAlbum进行保存

5

然后会弹出授权的界面,点击确定即可

7. 3dmax旋转

不是,alt+鼠标中键,只能在少量面数的模型孤立时用或者给客户看模型场景时用。后者是因为界面清爽点。 要旋转视图,用max界面右下角的旋转命令,会比alt+中健更顺畅。因为鼠标是个硬件,要传达指令,比快捷键要慢多了。 要是卡,可以将模型孤立,在线框视图显示,取消背面消隐。

8. js3d旋转图片

工具类

方便操作对象,数组等的工具库

underscore.js

lo-dash 与underscore.js的api基本一致。与underscore比其优势是,效率高;可自定义构建

Sugar 在原生对象上增加一些工具方法

functional.js 提够了一些Curry的支持

Watch.js 监视对象或属性的变化

bacon.js 函数式编程,cool

streamjs 用流的方式来对数组,对象进行系列操作

异步流程控制

eventproxy 朴灵出品

Arbiter.js 详细

发布订阅

q Promise风格的

Async.js

mock

Mock.js 生成随机数据和mock Ajax 请求

jquery-mockjax mock ajax请求

时间库

moment

datejs

浏览器探测

Bowser 探测具体浏览器和版本

ua-parser-js 探测具体浏览器和版本,操作系统,设备类型等

调试

console-polyfill 能放心的使用 console.log()之类的console方法

log 让控制台输出的log有样式

Konsole.js 在页面的一个元素里输出log信息 详细

uri.js uri操作

cookie 增删改cookie的工具库

director 前端路由库 详细

BigDecimal.js 提高精度的数字操作

JSDoc 根据javascript文件中注释的信息,生成API文档 详细

hotkeys 键盘事件的封装

MD5 用 MD5 的方式加密文件的库

浏览器增强类

让一些旧浏览器变牛逼的库

Selectivizr 让IE 6-8一些的css3选择器

ieBetter 让ie6-8有高级浏览器的特性

ExplorerCanvas 让IE8-的浏览器支持canvas

CSS3 Pie 让IE6-9支持border-radious,box-shadow,linear-gradient。 可以使用.htc文件(注意Mine type)或.js文件。在用Pie.js时,box-radious的元素有背景色时,不显示背景色。。。

formFive 让旧的浏览器支持HTML5表单的一些特性,如 placeholder,autofocus

https://github.com/anselmh/object-fit 让浏览器支持object-fit这css规则

HTML5 Cross Browser Polyfills 一堆Polyfills

flexibility 让旧的 IE 也支持 Flexbox

选择器增强

Lining.js 让浏览器实现类似::nth-line(), ::nth-last-line()的效果

未归类

prefixfree 用了它,写css时,就不需要加浏览器的前缀了

表单类

jquery-file-upload 上传文件组件 详细

zTree 文件树形视图控件

Treed 树编辑器。感觉展示的感觉很像思维导图

FileAPI 对文件选择框内的文件的一些处理

表单验证

.Validate 详细

jQuery-Validation-Engine

表单元素美化

uniform 提供对下拉框,单,复选框,按钮等表单元素的美化

select2 多选下拉框

selectivity 和unfirom比较类似

DropKick 下拉框,单,多选。外观比uniform好

switchery ios7风格的开关组件

nouislider 用滚动条来设置/控制(音量等)

range.css 美化input[type=range]元素的外观

图片类

holderjs 生成占位图片

lazyload

imagesLoaded 选取的图片都加载好后执行调回

CSSgram 用CSS3的Filter实现Instagram滤镜的库

图标类

Icon Font汇总

SVG做的图标

svgicons

iconic

HYBICON 带交互效果。如 hover, click

HTML字符实体图标

http://www.amp-what.com/

transformicons 图标点击时,会有一些变换效果。如,加号变成叉号

css3patterns css3 做的可平铺纹理。浏览器兼容性不好。

浏览图片

fancybox 弹出查看图片,视屏等等 demo

yoxview 弹出查看图片,图片尺寸缩放很自然

图片墙

wookmark

UI 框架

WeUI 由微信官方设计团队为微信 Web 开发量身设计。

Framework7

UI 组件类

拖拽

dragula 支持Draggable,Dropable和Sortable。感觉比jqueryUI的轻量级,好用的样子

angular-dragula dragular 官方的 angular 版本

数据可视化(图表)

Echarts 百度出品

highcharts 功能强大。是收费的。

Plottable.JS 基于D3的一个图表库

flot 文档不给力

chartJs 中文文档 demo很漂亮,很清晰。比较轻量级。

ichartJs 中国的一个家伙搞的,感觉还不错。

时间选取组件

foundation-datepicker

DatePicker 一个简单的日历 详细

full calendar 支持脱放的方式来改变待办事宜的时间

Simple Events Calendar 外观很喜欢。收费 5$

jQuery ui datepicker 经典,不是很好看

pickadate 轻量级,手机友好的,漂亮。但貌似只能在弹出层中显示,而没有下拉这种方式显示。

zebra-datepicker 可配置性很强。但貌似只能在弹出在右上方。。。

bootstrap-datepicker bootstrap风格。

dateRangePicker 选取时间段。bootstrap风格。该组件依赖Twitter Bootstrap, Moment.js和jQuery.

自定义滚动条

perfect scrollbar 轻量级的滚动条。外观与mac上chrome的滚动条一样。

iscroll 在移动设备上用不错

加载(Loding)效果

CSS Spinners CSS做的

Loaders.css CSS做的

表格组件

jsGrid Data Grid。 详细

backgrid 基于Backbone.js的DataGrid

excellentexport 把表格的内容生成excel。兼容 Firefox, Chrome, IE6+

datatables 表格可交互(对内容进行排序,删除等)

handsontable 生成Excel外观的数据

JSpreadsheets 表格数据的组件库

选取颜色

Spectrum

分享到SNS

JiaThis 生成分享代码。

编辑器

ace 代码编辑器,可以用来做demo演示

ckeditor

ueditor 百度做的

tinymce 对html内容进行实时的编辑

summernote 在移动设备上用不错

通知组件

notie.js

HTML5播放器

jwplayer 被大量网站使用

html5media 简单的h5player,轻量级

jplayer 功能强太,可换肤

展示

Impress.js 各种旋转,和奇特的体验

fullPage 全屏显示。用滚轮来翻页 详细

zepto.fullpage 专注于移动端的fullPage.js,依赖Zepto

pagePiling 和fullPage类似

turn.js 做一本书,带漂亮的翻页的效果

幻灯

slidesjs 挺好用的,只是那幻灯导航的CSS都要自己写,呵呵 详细

iSlider 无任何插件依赖的手机平台javascript滑动组件 详细

bgstretcher 全屏幻灯,会随着页面大小的变化而变化。

Swiper 开源、免费、强大的移动端触摸滑动插件 Swiper中文网

coin-slider 兼容IE6。蛮好的~。不过其切换方式是一块块的。不能配置切换方式。。。

wowslider 幻灯切换时各种很炫的效果。收费。

cycle2 普通的幻灯,竟然不支持垂直滚动。。。

jcarousel 普通的幻灯,不兼容IE6

reveal 3d滚动。做ppt相当不错

nodePPT 国人做的,做ppt也相当不错。有些方面比 reveal做的还好。但生成导出的html有些问题

roundabout 3d切换,看的后面图片的边

弹出框

Magnific-Popup 兼容PC,Mobile。还不错,有5k+的star

layer 国人开发的,兼容ie6+。不喜欢其调用方式。

动画效果

mixitup 用漂亮的动画效果来完成排序和筛选

jQuery.Marquee 跑马灯效果

quickflip 卡片翻转效果

卡片翻转效果2 兼容性可以。写的比较简单:1,只支持x方向翻转 2,类名都是规定好的 3,只能被调用一次。 需要改写一下。我的改进版见这里

TheaterJS 模拟两个人在屏幕上对话

midnight.js 文字颜色随着背景变,屌炸了

color-animation jquery的颜色渐变动画插件。jquery的动画不支持颜色值的变化。改库提供了这个支持。

transit 对元素进行css的变换

tagcanvas 3D标签云效果 详细

iconate 图片切换动画

Snap.js 左/右侧导航的出现效果

CSS shake 抖动动画

ClickSpark.js 点击后的一些酷炫的效果

视觉差插件

scrollorama 比较简单

superscrollorama 能做的效果更多,但要用第三方Tween的库,使用起来比较复杂。

scrolldeck

flash

swfobj 能够自动检测PC、Mac机器上各种主流浏览器对Flash插件的支持情况。它使得插入Flash媒体资源尽量简捷、安全。而且它是非常符合搜索引擎优化的原则的。此外,它能够避免您的HTML、XHTML中出现object、embed等非标准标签,从而符合更加标准。 详细

抽奖

wScratchPad 刮刮卡刮奖效果

jqueryrotate 旋转插件。可以用来做转盘抽奖效果

用户体验增强类

Intro.js 用来介绍网站的功能很不错。也可以做新手引导。

blockUI Lolding组件。

simple-hint 提示信息。用css做的。兼容性IE 9+。

dotdotdot 文字溢出时,添加在文字末尾加省略号

jQuery-menu-aim 二级菜单的切换如Amazon主页上一样迅速

AnythingZoomer 放大镜功能

美化/高亮语法代码

google-code-prettify

DlHighlight 仅支持JavaScript、CSS、XML、HTML 这4语法高亮

please 按要求随机舒服的颜色

Awesomplete 输入的智能提示,自动补全

proTip 提示。感觉比 Bootstrap 的 tip 好

Hammerjs 手势库。封装了 Swipe, Tap, Pinch, Pan等手势

动画

velocity 提高Jquery动画的性能。以及颜色动画之类的新特性。

SVG

Snap.svg 操作 SVG 的 JS 库。号称 SVG 的 jQuery。demo

walkway 以动画的方式,渐渐地画出 SVG 的路径。

测试

Mocha

Chai

Should

Snoion

DeviceMock.js mock 设备。

其他类

ZeroClipboard 将内容复制到剪切板兼容主流浏览器的解决方案 详细

html2canvas html转化成canvas,可以用来做截图。详细

Ink 响应式html邮件框架

性能测试

抓取,解析RSS内容(不能跨域,所以后台要做代理,所谓的解析Rss其实就是解析xml)

jFeed

jRss 简单版的jFeed

scriptcam 与摄像头交互

cylon.js 机器人框架,支持35个平台

Masonry 一个瀑布流框架

devices.css 移动设备边框的外观。做原型的时候用不错。

Bootstrap相关类

Bootbox.js 对bootstrap的弹出框做的一些封装

免费皮肤

AdminLTE

JS Plugins仓库

jQuery Cards 高质量的 jQuery 插件网站

jster

node modules

npmrank Sort npm packages by page rank

YOU MIGHT NOT NEED JQUERY PLUGINS 不依赖 jQuery 的 js 插件。

awesome-nodejs

Libraries.io 各种语言的库

OniUI 去哪儿网做的一套基于Avalon的框架

常用的移动端框架

zepto.js

语法与jquery几乎一样,会jquery基本会zepto~

最新版本已经更新到1.16

iscroll.js

解决页面不支持弹性滚动,不支持fixed引起的问题~

实现下拉刷新,滑屏,缩放等功能~

最新版本已经更新到5.0

underscore.js

笔者没用过,不过听说好用,推荐给大家~

该库提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象。

最新版本已经更新到1.8.2

滑屏框架

适合上下滑屏、左右滑屏等滑屏切换页面的效果

slip.js

iSlider.js

fullpage.js

swiper.js

flex布局

flex布局目前可使用在移动中,并非所有的语法都全兼容,效果良好~

9. js3d旋转动画

工具类

方便操作对象,数组等的工具库

underscore.js

lo-dash 与underscore.js的api基本一致。与underscore比其优势是,效率高;可自定义构建

Sugar 在原生对象上增加一些工具方法

functional.js 提够了一些Curry的支持

Watch.js 监视对象或属性的变化

bacon.js 函数式编程,cool

streamjs 用流的方式来对数组,对象进行系列操作

异步流程控制

eventproxy 朴灵出品

Arbiter.js 详细

发布订阅

q Promise风格的

Async.js

mock

Mock.js 生成随机数据和mock Ajax 请求

jquery-mockjax mock ajax请求

时间库

moment

datejs

浏览器探测

Bowser 探测具体浏览器和版本

ua-parser-js 探测具体浏览器和版本,操作系统,设备类型等

调试

console-polyfill 能放心的使用 console.log()之类的console方法

log 让控制台输出的log有样式

Konsole.js 在页面的一个元素里输出log信息 详细

uri.js uri操作

cookie 增删改cookie的工具库

director 前端路由库 详细

BigDecimal.js 提高精度的数字操作

JSDoc 根据javascript文件中注释的信息,生成API文档 详细

hotkeys 键盘事件的封装

MD5 用 MD5 的方式加密文件的库

浏览器增强类

让一些旧浏览器变牛逼的库

Selectivizr 让IE 6-8一些的css3选择器

ieBetter 让ie6-8有高级浏览器的特性

ExplorerCanvas 让IE8-的浏览器支持canvas

CSS3 Pie 让IE6-9支持border-radious,box-shadow,linear-gradient。 可以使用.htc文件(注意Mine type)或.js文件。在用Pie.js时,box-radious的元素有背景色时,不显示背景色。。。

formFive 让旧的浏览器支持HTML5表单的一些特性,如 placeholder,autofocus

https://github.com/anselmh/object-fit 让浏览器支持object-fit这css规则

HTML5 Cross Browser Polyfills 一堆Polyfills

flexibility 让旧的 IE 也支持 Flexbox

选择器增强

Lining.js 让浏览器实现类似::nth-line(), ::nth-last-line()的效果

未归类

prefixfree 用了它,写css时,就不需要加浏览器的前缀了

表单类

jquery-file-upload 上传文件组件 详细

zTree 文件树形视图控件

Treed 树编辑器。感觉展示的感觉很像思维导图

FileAPI 对文件选择框内的文件的一些处理

表单验证

.Validate 详细

jQuery-Validation-Engine

表单元素美化

uniform 提供对下拉框,单,复选框,按钮等表单元素的美化

select2 多选下拉框

selectivity 和unfirom比较类似

DropKick 下拉框,单,多选。外观比uniform好

switchery ios7风格的开关组件

nouislider 用滚动条来设置/控制(音量等)

range.css 美化input[type=range]元素的外观

图片类

holderjs 生成占位图片

lazyload

imagesLoaded 选取的图片都加载好后执行调回

CSSgram 用CSS3的Filter实现Instagram滤镜的库

图标类

Icon Font汇总

SVG做的图标

svgicons

iconic

HYBICON 带交互效果。如 hover, click

HTML字符实体图标

http://www.amp-what.com/

transformicons 图标点击时,会有一些变换效果。如,加号变成叉号

css3patterns css3 做的可平铺纹理。浏览器兼容性不好。

浏览图片

fancybox 弹出查看图片,视屏等等 demo

yoxview 弹出查看图片,图片尺寸缩放很自然

图片墙

wookmark

UI 框架

WeUI 由微信官方设计团队为微信 Web 开发量身设计。

Framework7

UI 组件类

拖拽

dragula 支持Draggable,Dropable和Sortable。感觉比jqueryUI的轻量级,好用的样子

angular-dragula dragular 官方的 angular 版本

数据可视化(图表)

Echarts 百度出品

highcharts 功能强大。是收费的。

Plottable.JS 基于D3的一个图表库

flot 文档不给力

chartJs 中文文档 demo很漂亮,很清晰。比较轻量级。

ichartJs 中国的一个家伙搞的,感觉还不错。

时间选取组件

foundation-datepicker

DatePicker 一个简单的日历 详细

full calendar 支持脱放的方式来改变待办事宜的时间

Simple Events Calendar 外观很喜欢。收费 5$

jQuery ui datepicker 经典,不是很好看

pickadate 轻量级,手机友好的,漂亮。但貌似只能在弹出层中显示,而没有下拉这种方式显示。

zebra-datepicker 可配置性很强。但貌似只能在弹出在右上方。。。

bootstrap-datepicker bootstrap风格。

dateRangePicker 选取时间段。bootstrap风格。该组件依赖Twitter Bootstrap, Moment.js和jQuery.

自定义滚动条

perfect scrollbar 轻量级的滚动条。外观与mac上chrome的滚动条一样。

iscroll 在移动设备上用不错

加载(Loding)效果

CSS Spinners CSS做的

Loaders.css CSS做的

表格组件

jsGrid Data Grid。 详细

backgrid 基于Backbone.js的DataGrid

excellentexport 把表格的内容生成excel。兼容 Firefox, Chrome, IE6+

datatables 表格可交互(对内容进行排序,删除等)

handsontable 生成Excel外观的数据

JSpreadsheets 表格数据的组件库

选取颜色

Spectrum

分享到SNS

JiaThis 生成分享代码。

编辑器

ace 代码编辑器,可以用来做demo演示

ckeditor

ueditor 百度做的

tinymce 对html内容进行实时的编辑

summernote 在移动设备上用不错

通知组件

notie.js

HTML5播放器

jwplayer 被大量网站使用

html5media 简单的h5player,轻量级

jplayer 功能强太,可换肤

展示

Impress.js 各种旋转,和奇特的体验

fullPage 全屏显示。用滚轮来翻页 详细

zepto.fullpage 专注于移动端的fullPage.js,依赖Zepto

pagePiling 和fullPage类似

turn.js 做一本书,带漂亮的翻页的效果

幻灯

slidesjs 挺好用的,只是那幻灯导航的CSS都要自己写,呵呵 详细

iSlider 无任何插件依赖的手机平台javascript滑动组件 详细

bgstretcher 全屏幻灯,会随着页面大小的变化而变化。

Swiper 开源、免费、强大的移动端触摸滑动插件 Swiper中文网

coin-slider 兼容IE6。蛮好的~。不过其切换方式是一块块的。不能配置切换方式。。。

wowslider 幻灯切换时各种很炫的效果。收费。

cycle2 普通的幻灯,竟然不支持垂直滚动。。。

jcarousel 普通的幻灯,不兼容IE6

reveal 3d滚动。做ppt相当不错

nodePPT 国人做的,做ppt也相当不错。有些方面比 reveal做的还好。但生成导出的html有些问题

roundabout 3d切换,看的后面图片的边

弹出框

Magnific-Popup 兼容PC,Mobile。还不错,有5k+的star

layer 国人开发的,兼容ie6+。不喜欢其调用方式。

动画效果

mixitup 用漂亮的动画效果来完成排序和筛选

jQuery.Marquee 跑马灯效果

quickflip 卡片翻转效果

卡片翻转效果2 兼容性可以。写的比较简单:1,只支持x方向翻转 2,类名都是规定好的 3,只能被调用一次。 需要改写一下。我的改进版见这里

TheaterJS 模拟两个人在屏幕上对话

midnight.js 文字颜色随着背景变,屌炸了

color-animation jquery的颜色渐变动画插件。jquery的动画不支持颜色值的变化。改库提供了这个支持。

transit 对元素进行css的变换

tagcanvas 3D标签云效果 详细

iconate 图片切换动画

Snap.js 左/右侧导航的出现效果

CSS shake 抖动动画

ClickSpark.js 点击后的一些酷炫的效果

视觉差插件

scrollorama 比较简单

superscrollorama 能做的效果更多,但要用第三方Tween的库,使用起来比较复杂。

scrolldeck

flash

swfobj 能够自动检测PC、Mac机器上各种主流浏览器对Flash插件的支持情况。它使得插入Flash媒体资源尽量简捷、安全。而且它是非常符合搜索引擎优化的原则的。此外,它能够避免您的HTML、XHTML中出现object、embed等非标准标签,从而符合更加标准。 详细

抽奖

wScratchPad 刮刮卡刮奖效果

jqueryrotate 旋转插件。可以用来做转盘抽奖效果

用户体验增强类

Intro.js 用来介绍网站的功能很不错。也可以做新手引导。

blockUI Lolding组件。

simple-hint 提示信息。用css做的。兼容性IE 9+。

dotdotdot 文字溢出时,添加在文字末尾加省略号

jQuery-menu-aim 二级菜单的切换如Amazon主页上一样迅速

AnythingZoomer 放大镜功能

美化/高亮语法代码

google-code-prettify

DlHighlight 仅支持JavaScript、CSS、XML、HTML 这4语法高亮

please 按要求随机舒服的颜色

Awesomplete 输入的智能提示,自动补全

proTip 提示。感觉比 Bootstrap 的 tip 好

Hammerjs 手势库。封装了 Swipe, Tap, Pinch, Pan等手势

动画

velocity 提高Jquery动画的性能。以及颜色动画之类的新特性。

SVG

Snap.svg 操作 SVG 的 JS 库。号称 SVG 的 jQuery。demo

walkway 以动画的方式,渐渐地画出 SVG 的路径。

测试

Mocha

Chai

Should

Snoion

DeviceMock.js mock 设备。

其他类

ZeroClipboard 将内容复制到剪切板兼容主流浏览器的解决方案 详细

html2canvas html转化成canvas,可以用来做截图。详细

Ink 响应式html邮件框架

性能测试

抓取,解析RSS内容(不能跨域,所以后台要做代理,所谓的解析Rss其实就是解析xml)

jFeed

jRss 简单版的jFeed

scriptcam 与摄像头交互

cylon.js 机器人框架,支持35个平台

Masonry 一个瀑布流框架

devices.css 移动设备边框的外观。做原型的时候用不错。

Bootstrap相关类

Bootbox.js 对bootstrap的弹出框做的一些封装

免费皮肤

AdminLTE

JS Plugins仓库

jQuery Cards 高质量的 jQuery 插件网站

jster

node modules

npmrank Sort npm packages by page rank

YOU MIGHT NOT NEED JQUERY PLUGINS 不依赖 jQuery 的 js 插件。

awesome-nodejs

Libraries.io 各种语言的库

OniUI 去哪儿网做的一套基于Avalon的框架

常用的移动端框架

zepto.js

语法与jquery几乎一样,会jquery基本会zepto~

最新版本已经更新到1.16

iscroll.js

解决页面不支持弹性滚动,不支持fixed引起的问题~

实现下拉刷新,滑屏,缩放等功能~

最新版本已经更新到5.0

underscore.js

笔者没用过,不过听说好用,推荐给大家~

该库提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象。

最新版本已经更新到1.8.2

滑屏框架

适合上下滑屏、左右滑屏等滑屏切换页面的效果

slip.js

iSlider.js

fullpage.js

swiper.js

flex布局

flex布局目前可使用在移动中,并非所有的语法都全兼容,效果良好~

10. js控制旋转

手动旋转相机

$(function(){

var container;

var camera,scene,renderer,light;

var mesh;

//这个mouseX和mouseY 记录的是鼠标相对于屏幕中心的位置,所以mouseX的范围是[-屏幕宽的一半,屏幕宽的一半],mouseY的范围是[-屏幕高的一半,屏幕高的一半]

var mouseX = 0,mouseY = 0;

var windowHalfX =

window.innerWidth/2;

var windowHalfY =

window.innerHeight/2;

init();

animate();

function init(){

scene = new THREE.Scene();

container = document.getElementById('container');

camera = new THREE.PerspectiveCamera(40,

window.innerWidth/window.innerHeight,1,1000);

camera.position.z

= 180;

camera.lookAt(scene.position);

light = new THREE.DirectionalLight(0xffffff,1);

light.position.set(0,0,10);

scene.add(light);

var cubeGeometry = new THREE.CubeGeometry(30,30,30);

var cubeMaterial = new THREE.MeshLambertMaterial({color:0xff0000 });

mesh = new THREE.Mesh(cubeGeometry,cubeMaterial);

scene.add(mesh);

renderer = new THREE.WebGLRenderer({antialias:true});

renderer.setSize(window.innerWidth,window.innerHeight);

container.appendChild(renderer.domElement);

document.addEventListener('mousemove',onDocumentMouseMove,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(){

//因为世界坐标系的原点在屏幕的中心,所以,将屏幕实际坐标减去屏幕宽高的一半,就将屏幕坐标的坐标原点移到世界坐标系的原点。

mouseX = (event.clientX-windowHalfX);

mouseY = (event.clientY-windowHalfY);

}

function animate(){

requestAnimationFrame(animate);

render();

}

function render(){

//根据mouseX和mouseY改变相机的坐标

camera.position.x

+= (mouseX - camera.position.x);

camera.position.y

+= (mouseY - camera.position.y);

camera.lookAt(scene.position);

renderer.render( scene, camera );

}

});

11. three.js 旋转

WEBGL基础知识介绍 1、场景(scene) 场景如其名,即显示3D空间内物体的容器,就好比一个箱子是一个3D场景。

2、坐标系: webgl使用笛卡尔坐标系(宽度、高度和深度),我们也可以指定使用其它坐标系统。 WEBGL与过去我所使用的flash3D坐标系有一些区别,在flash3d中,屏幕的左上角为坐标系原点,向下为Y轴正方向,向右为X轴正方向,而在webgl中,屏幕的中心点为原点。 但是在3D世界中还有第三个坐标轴即Z轴,它表示场景的深度。

在webgl的世界中我们可以使用左手法则来辅助记忆三个轴的正方向,伸出左手,食指伸直保持水平,中指垂直向下,拇指指向自己,其余手指收起,食指所指方向即x轴的正方向,中指所指方向即y轴正方向,拇指所指的方向即z轴的正方向。 3、投影的概念: 我们在屏幕上所看到的三维空间,并非是一个真实的3D空间,而是用数学算法将模拟的三维空间投射到屏幕上的二维图像而已。

投影就是将模拟的三维空间内的物体映射到屏幕上生成一个二维图像的过程。

投影分为正交投影和透视投影,这也就是摄像机的实现原理。

4、摄像机: 摄像机是场景内的一个观察者,人通过屏幕看到的画面实际上是3D空间内的物体映射到摄像机内的画面,这个画面很可能并不是完整的,仅仅是摄像机当前可见范围内的。

这与摄像机的种类有关。

在three.js中有两种,正交摄像机和透视摄像机。

正交摄像机的视野范围就像一个正方体,正方体内的物体沿着正方体的边缘投影到每个侧面的物体大小都与立方体内的物体大小相同,所以使用正交摄像机投影到屏幕的画面我们是无法分辨物体的远近的,这种摄像机多用于在3D空间绘制2D图形,如医用检查设备,我们不使用。

透视摄像机就如一个顶部被削平的金字塔,金字塔顶部被削平的面可以理解为我们的屏幕,在金字塔内的物体沿着金字塔纵方向进行投影,并投射到顶部,假设有两个大小形状完全相同的物体分别位于金子塔内的不同高度,他们投影到顶部的影子的大小就会不同,这就是透视相机的。使用透视摄像机我们可以在平面内很容易分辨出3D空间内物体的远近。

现在把金字塔放倒,将削平的顶端对这你的眼睛,这样就很容易理解在透视相机时计算机是如何渲染物体的了。 5、渲染: 渲染即执行代码在屏幕上绘制图形的过程。

渲染是实时执行的,就如一个播放的电影,由许多连续的帧组成,帧就好比一场电影中的一个瞬时的画面。

6、点与向量 点是由三个值组成,x、y和z,每个点可以表示3D空间的一个唯一位置,每个点也可表示一个向量,也叫做三维向量,向量可以理解为指向场景中心的一个线段,我们知道点有三个值,这样的向量叫做单位向量或标量,它仅仅表示向量的方向,不能表示向量的长度,现在我们给一个这个标量再增加一个值,第四个值表示向量的长度,这样我们就有了一个既有长度又有方向的向量了,这样的向量叫做四维向量。 7、面、顶点与三角形: 我们知道要确定一个唯一的平面我们至少需要三个点,将三个点用线连起来就形成了一个三角平面,我们称这三个点为顶点,顶点就是图形突起的部。 8、网格模型: 3D空间内任何形状的物体都称之为模型,无论是立体模型还是平面模型都由至少三个顶点组成,将这些顶点用线连接起来就组成了模型。还需要知道在现在计算机图形学中,所有的模型,无论复杂程度,都是由多个三角形拼接而成的。

我们常见的球体看起来很圆滑,其实是由很多个三角形绘制而成,由于密度很高肉眼很难察觉其边缘的顶点。

由于这些模型都是使用线条连接而成,看起来就像一张捕鱼的渔网被扭曲成各种形状,我们称这种没有材质的模型叫做网格模型(它看起来是镂空的)。 9、纹理贴图以及材质 纹理就是一个平面化的图形,它可以是纯色填充的也可以是使用位图填充的。 材质就是使用纹理构建的一种代码环境中的对象,我们将材质对象应用到模型网格上,使其更加逼真形象,达到预期设想的效果。 更加容易理解的方式:纹理好比一颗大树,材质好比是用这颗大树打造的一块木板,我们可以将木板钉在一个立方体网格对象上,这样我们就有了一个木箱。 10、矩阵和模型变换 如果向量是一个数组[x,y,z],那么矩阵就是一个二维数组即, 矩阵代码 | x x x x | | | | y y y y | | | | z z z z | | | | 0 0 0 1 | 每一列表示一个四维向量,上面我们创建了一个4X4的矩阵,在webgl中我们常用的矩阵为4X4和3X3。 模型变换就是利用矩阵使得模型的大小、位移、旋转等产生变化的过程,通常我们会使用模型的内置矩阵与变换矩阵相乘从而得到变换后的新矩阵并赋予模型。每个模型被创建后都会拥有自己的模型矩阵,我们无需关注模型矩阵是如何产生的,只需要知道对模型进行模型变换需要将模型矩阵与变换矩阵相乘。具体如何操作矩阵自行查询相关资料,这里不做赘述。 11、视图变换 视图变换就是不通过调整模型本身的参数,而是直接控制摄像机、场景的移动而产生的视觉变化,比如我们将摄像机像模型方向拉近,我们就会感觉模型在逐渐变大,我们将场景原点逐渐拉远我们就会感觉模型在渐渐远离我们。 13、着色器语言 1) 顶点着色器:顶点着色器是用来控制光照、颜色、位移等,假如我们要渲染一个三形,顶点着色器就将执行三次,它会为每个顶点都执行一次。注意在顶点着色器执行时我们还没有通过屏幕看到绘制的图形,顶点着色器是为后续的光栅化处理做铺垫,它将为光栅化操作提供必要的资源,顶点着色器是光栅化处理的仓库。 2) 片段着色器:了解片段着色器先要了解光栅化是什么意思,光栅化就是绘制每两个顶点之间的像素并形成线段的过程,就好比我们要画一个栅栏,我们要一根一根的画。 片段着色器就是告诉GPU如何光栅化的语言,就如其名字,将光照、纹理、位移等沿着顶点之间的线段逐个像素的渲染。 14、webgl中最流行的js库three.js介绍: 首先最外层为场景,场景中包含一个或多个摄像机,场景中还可以包含模型、粒子等。 模型、粒子等也可包含在Object3D对象中。 创建一个模型的过程是: 1) 创建模型所需要的顶点 2) 创建一个几何图形对象,并将顶点传递给几何图形对象。 3) 创建模型的纹理对象即材质。 4) 创建网格对象,并将几何图形对象以及纹理对象传递给网格对象。 5) 将网格添加到可容纳网格对象的容器内,如scene、Object3D等。 术语FAQ: 1、场景:Scene 2、位置:Position 3、投影:Projector 4、正交:Orthographic 5、透视:Perspective 6、摄像机:Camera 7、渲染:Render 8、向量:Vector 9、三维向量:Vector3 10、四维向量:Vector4 11、矩阵:Matrix 12、3行3列矩阵:Matrix3 13、4行4列矩阵:Matrix4 14、顶点:Vertex 15、顶点的复数形式:Vertices 16、几何对象:Geometry 17、纹理:Texture 18、材质:Material 19、网格:Mesh 20、变换:Transform 21、视图:View