一、 WebGL与Three.js的关系WebGL(Web Graphics Library)是一种 JavaScript API,用于在任何兼容的 Web 浏览器中呈现交互式 3D 和 2D 图形,不需要插件...、相机和渲染器3个对象,透过然后通过摄像机渲染出场景。...widthSegments — (可选)宽度的分段数,默认值是1。heightSegments — (可选)高度的分段数,默认值是1。depthSegments — (可选)深度的分段数,默认值是1。...(renderer.domElement)(4)使用渲染器通过相机将场景渲染进来创建一个使渲染器能够在每次屏幕刷新时对场景进行绘制的循环。...(scene,camera)//创建轨道控制器const controls = new OrbitControls(camera,renderer.domElement);//创建一个使渲染器能够在每次屏幕刷新时对场景进行绘制的循环
对WebGL感兴趣,还不知道如何入门的大大们,看看本教程吧,我有信心看完本教程,特别是看完本教程的中级和高级篇,你应该对3D世界有一个自己的理解了。...下面介绍一下构造函数的参数:1、 left参数left:左平面距离相机中心点的垂直距离。从图中可以看出,左平面是屏幕里面的那个平面。2、 right参数right:右平面距离相机中心点的垂直距离。...2, 1, 1000 );scene.add( camera );这个例子将浏览器窗口的宽度和高度作为了视景体的高度和宽度,相机正好在窗口的中心点上。...即宽度除以高度。...这个值越大,说明你宽度越大,那么你可能看的是宽银幕电影了,如果这个值小于1,那么可能你看到的是如下的图中的LED屏幕了。
创建场景对象 借助Three.js引擎创建好一个虚拟的三维场景。 <!...camera.position.set(200, 300, 200);和camera.lookAt(scene.position)定义的是相机的位置和拍照方向,可以更改camera.position.set...(200,300,200)参数重新定义的相机位置,把第一个参数也就是x坐标从200更改为250, 你会发现立方的在屏幕上呈现的角度变了,这就像你生活中拍照人是同一个人,但是你拍照的位置角度不同,显示的效果肯定不同...) 6.创建渲染器对象 Three.js是基于原生WebGL封装运行的三维引擎。...可以设置渲染区域尺寸和背景颜色。 <!
==> 页面对象宽度(即BODY对象宽度加上Margin宽) document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)...==> 页面对象高度(即BODY对象高度加上Margin高) Opera为: document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin...网页被卷去的左: document.body.scrollLeft 网页正文部分上: window.screenTop 网页正文部分左: window.screenLeft 屏幕分辨率的高: window.screen.height...屏幕分辨率的宽: window.screen.width 屏幕可用工作区高度: window.screen.availHeight 屏幕可用工作区宽度: window.screen.availWidth...scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度
偏移量 offsetWidth 元素在水平方向上占用的空间大小 包括元素的宽度、可见的垂直滚动条宽度、左边框高度和右边框高度...offsetWidth=width+padding+border offsetHeight 元素在垂直方向上占用的空间大小 包括元素的高度、可见的水平滚动条宽度、上边框高度和下边框高度...对象距离左侧和顶部的距离 offsetLeft,offsetTop 对象可视区域的宽度和高度 clientWidth,clientHeight clientWidth=width...+padding 对象滚动宽度和高度 scrollWidth,scrollHeight (对象的实际内容的宽度,不包边线宽度) 对象左侧和顶部滚动的距离 scrollLeft...: window.screen.height; 屏幕分辨率的宽: window.screen.width; 屏幕可用工作区高度:window.screen.availHeight; 屏幕可用工作区宽度
周围的四条虚线分别代表子控件距离父控件上、下、左、右之间的距离关系/或者叫约束关系,周围的四条虚线所包围的小方块代表子视图,小方块内部的两条带双向箭头的线分别代表子控件的宽度和高度。...宽度、高度、左间距随父控件的缩放而缩放 ?...同理, 如果垂直方向同时固定了上边距和下边距,那么我们不能固定子控件的高度(反应在storyBoard中的设置,也就是必须使控制子控件高度的虚线变为实线)。...比如,给storyBoard中的某个子控件A设置了宽度和高度、距离父控件上下左右之间的间距,就相当于给这个控件添加了6个约束,也就产生了6个约束对象。...换句话说,在sizeClass为W Regular H Any(宽度正常 高度任意)下的布局的控件,不管高度如何,只要宽度正常就会显示出来。 未完待续...
Autoresizing简介 Autoresizing是苹果早期屏幕适配的解决办法,当时iOS设备机型很少、屏幕尺寸单一、APP界面相对简单,屏幕适配并没有现在这么复杂,所有的UI控件只要相对父控件布局就可以了...Autoresizing 举个例子: 当我们将左边和上面虚线变成实线时,代表子控件和父控件在这个方向上的间距被固定 当我们点击子视图内部的虚线时,同样也变为实线,代表子视图的宽度或者高度被固定了...宽度、高度、左间距随父控件的缩放而缩放 UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight.gif...,那么我们千万不能固定子控件的宽度(反应在storyBoard中的设置,也就是必须使控制子控件宽度的虚线变为实线)。...同理, 如果垂直方向同时固定了上边距和下边距,那么我们不能固定子控件的高度(反应在storyBoard中的设置,也就是必须使控制子控件高度的虚线变为实线) Autoresizing缺点 Autoresizing
标准坐标系我们之所以要进行上面的转换,这是因为在Three.js中Canvas画布具有一个标准设备坐标系,该坐标系的坐标原点在canvas画布的中间位置,x轴水平向右,y轴竖直向上。...2 page坐标系 坐标原点:整个页面的左上角(整个页面的意思就是你整个网页的全部,按照整个html文档的长度和宽度来计算)。...page坐标的最大范围是 (document.body.clientWidth + 垂直滚动条宽度, document.body.clientHeight + 水平滚动条高度)。...client坐标的最大范围是 (window.innerWidth - 垂直滚动条宽度, window.innerHeight - 水平滚动条高度)。...offsetX:鼠标点击位置相对于触发事件对象的水平距离。 offsetY:鼠标点击位置相对于触发事件对象的垂直距离。
” window.screenTop; s = ” 网页正文部分左:” window.screenLeft; s = ” 屏幕分辨率的高:” window.screen.height; s = ”...屏幕分辨率的宽:” window.screen.width; s = ” 屏幕可用工作区高度:” window.screen.availHeight; s = ” 屏幕可用工作区宽度:” window.screen.availWidth...; s = ” 你的屏幕设置是 ” window.screen.colorDepth ” 位彩色”; s = ” 你的屏幕设置 ” window.screen.deviceXDPI ” 像素/英寸...==> 页面对象宽度(即BODY对象宽度加上Margin宽) document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高...==> 页面对象高度(即BODY对象高度加上Margin高) Opera为: document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度...屏幕可用工作区宽度: window.screen.availWidth ------------------- 技术要点 本节代码主要使用了Document对象关于窗口的一些属性,这些属性的主要功能和用法如下...Window对象的innerWidth属性包含当前窗口的内部宽度。Window对象的innerHeight属性包含当前窗口的内部高度。 Document对象的body属性对应HTML文档的标签。...(2)在随后的JavaScript代码中,首先定义了两个变量winWidth和winHeight,用于保存窗口的高度值和宽度值。...(3)然后,在函数findDimensions ( )中,使用window.innerHeight和window.innerWidth得到窗口的高度和宽度,并将二者保存在前述两个变量中。
获取竖直滚动条到顶部的垂直高度 (即网页被卷上去的高度)(ie浏览器): document.documentElement.scrollTop; 获取水平滚动条到左边的水平宽度 (即网页被卷左去的宽度...+padding+border) 获取元素的高度:offsetHeight;(height+padding+border) 获取元素最左边距已定位的父级对象的长度(若无父级对象或父级对象没有定位,就是距离文档顶部...):offsetLeft 获取元素最上边距已定位的父级对象的长度(若无父级对象或父级对象没有定位,就是距离文档左端):offsetTop 屏幕分辨率的高: window.screen.height 屏幕分辨率的宽...: window.screen.width 屏幕可用工作区高度: window.screen.availHeight 屏幕可用工作区宽度: window.screen.availWidth jQuery...(即网页被卷左去的宽度):$(document).scrollLeft(); 获取或设置元素的宽度:$(obj).width();(width) 注意只是元素的宽度,不包括padding 获取或设置元素的高度
屏幕分辨率的高:window.screen.height 屏幕分辨率的宽:window.screen.width 屏幕可用工作区高度:window.screen.availHeight 屏幕可用工作区宽度...scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度...屏幕可用工作区宽度: window.screen.availWidth ------------------- 技术要点 本节代码主要使用了Document对象关于窗口的一些属性,这些属性的主要功能和用法如下...Window对象的innerWidth属性包含当前窗口的内部宽度。Window对象的innerHeight属性包含当前窗口的内部高度。 Document对象的body属性对应HTML文档的标签。...(2)在随后的JavaScript代码中,首先定义了两个变量winWidth和winHeight,用于保存窗口的高度值和宽度值。
浮动 + margin * inline-block布局 (用起来方便,但是小问题较多) * flexbox布局 盒模型 如下图所示: 宽度和高度 指的是content的宽度和高度 margin指的是...float+margin 实现两列布局 1. div1 左浮动:给出左侧的空间 2. div2 的margin-left留出 div1 的宽度. + overflow: hidden;也变为BFC块,和...留下自适应的空间:和两列布局类似,一列固定宽度 另一列随屏幕自适应。 (类似的思路,在屏幕顶部 给logo固定宽度 logo右侧的纯色背景 可以自适应)。...fixed相对于屏幕(viewport) 来进行定位 3. display: inline-block的间隙 如何处理?...如何视频移动端?
; 屏幕可用工作区宽度:window.screen.availWidth; scrollWidth 是对象的实际内容的宽,不包边线宽度,会随对象中内容的多少改变(内容多了可能会改变对象的实际宽度...==> 页面对象宽度(即BODY对象宽度加上Margin宽) document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)...==> 页面对象高度(即BODY对象高度加上Margin高) Opera为: document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上...scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度...; s += “/r/n屏幕可用工作区高度:”+ window.screen.availHeight; s += “/r/n屏幕可用工作区宽度:”+ window.screen.availWidth;
; s += " 网页正文部分上:"+ window.screenTop; s += " 网页正文部分左:"+ window.screenLeft; s += " 屏幕分辨率的高...; s += " 屏幕可用工作区宽度:"+ window.screen.availWidth; s += " 你的屏幕设置是 "+ window.screen.colorDepth...==> 页面对象宽度(即BODY对象宽度加上Margin宽) document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)...==> 页面对象高度(即BODY对象高度加上Margin高) Opera为: document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上...Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高) //获取滚动条的高度 function getPageScroll
:window.screenLeft 屏幕分辨率的高:window.screen.height 屏幕分辨率的宽:window.screen.width 屏幕可用工作区高度:window.screen.availHeight...: 获取对象的滚动高度。...scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度...offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度 offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置...: window.screenLeft 屏幕分辨率的高: window.screen.height 屏幕分辨率的宽: window.screen.width 屏幕可用工作区高度: window.screen.availHeight
==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.documentElement.clientWidth ==> 可见区域宽度...(即BODY对象宽度加上Margin宽) document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高) Opera为:...网页被卷去的左: document.body.scrollLeft 网页正文部分上: window.screenTop 网页正文部分左: window.screenLeft 屏幕分辨率的高...: window.screen.height 屏幕分辨率的宽: window.screen.width 屏幕可用工作区高度: window.screen.availHeight 屏幕可用工作区宽度...scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度
=> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.documentElement.clientWidth ==> 可见区域宽度...==> 页面对象高度(即BODY对象高度加上Margin高) Opera为: document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上...网页被卷去的左: document.body.scrollLeft 网页正文部分上: window.screenTop 网页正文部分左: window.screenLeft 屏幕分辨率的高:...window.screen.height 屏幕分辨率的宽: window.screen.width 屏幕可用工作区高度: window.screen.availHeight 屏幕可用工作区宽度:...scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度
footer 共同的宽度(不设置宽度时默认撑满整个屏幕),之后给 content 和 header 子元素(比如头部的导航条)、footer 子元素一个共同的宽度。...,且正是为了防止被盖住,右元素宽度才会由默认的撑满屏幕变为撑满剩余部分。...,旁边两侧固定宽度的布局方式,最典型的是圣杯布局和双飞翼布局。...对于 left 来说,它需要左移父元素的总宽度,对于 right 来说,它需要左移自身宽度。 设置父容器的左右 padding,使内部内容向中间挤压,从而使左右留白。...: 这种方法是使用边框和绝对定位来实现一个假的高度相等列的效果。
领取专属 10元无门槛券
手把手带您无忧上云