坐标系统
要使用元素变形 *** 作需要掌握坐标轴,然后通过改变不同坐标来控制元素的变形。
使用 transform 规则控制元素的变形 *** 作,包括控制移动、旋转、倾斜、3D转换等,下面会详细介绍每一个知识点。
下面是CSS提供的变形动作。
重要:
选项 说明
当 translate设置为百分比时,其参照是当前div的宽高
重复设置变形 *** 作时只在原形态上 *** 作。
下面设置了两次移动,并不会移动 550px 而是只移动50px。
行级元素不产生变形效果,将其转为 inline-block 或 block 以及d性元素时都可以产生变化效果。
鼠标移动上后发生改变。
image-20190902133840698
article div:nth-child(2):hover {
transform: rotate(180deg);
}
以下 *** 作变化时间为零秒,通过掌握后面的过渡动画可以控制变化时间。
沿X轴移动时正值向右移动、负值向左移动
沿Y轴移动时正值向下移动、负值向上移动
如果使用百分数将控制元素的原尺寸计算百分比然后移动
可同时设置多个值,解析器会从左向右依次执行
变形是在原基础上更改,即第二次设置值时不是在第一次值上变化
正值向右移动、负值向左移动。
正值向下移动、负值向上移动。
article div:nth-child(2) {
transform: translateY(100px);
}
使用 translate 可以控制按X、Y同时移动 *** 作,第一个值控制X移动,第二个值控制Y移动。
元素宽度为100px设置50%时将移动50px,即百分比是指元素的尺寸的百分比。
居中可以使用多种方式,如d性布局、定位 *** 作,下面来看使用移动 *** 作居中。
控制Z轴移动,正数向外、负数向里移动。因为Z轴是透视轴没有像X/Y一样的固定尺寸,所以不能使用百分数。
用于同时控制X/Y/Z轴的移动,三个值必须输入如果某个轴不需要移动时设置为零。
下面是使用移动效果制作的页面切换效果。
场景中的三要素
camera 相机
spotLight 光源
object (plane、cube)物体
一个只有一个平面的简单场景中已经包含了几个对象
其中包括使用 Sceneadd(object) 加载进场景的几个对象
场景渲染的时候camera对象会自动添加进来
从几个函数来理解THREEScene()对象
1、在场景中添加物体 SceneAdd()
2、移除物体 SceneRemove()
3、获取场景中所有子对象列表 Scenechildren
4、利用name 属性,获取场景中某个特定的物体 ScenegetChildByName()
5、这是一个回调函数返回所有子对象列表 scenetraverse()
在这里的效果同使用for 循环遍历children这个属性
6、雾化属性 在添加完场景后即可添加,可以使整个场景有一种雾化的效果
scenefog = new THREEFog(0xffffff,0015,100);
7、使场景中的所有物体都使用相同的材质
sceneoverrideMaterial = new THREEMeshLambertMaterial({color:0xffffff});
var geom = new THREEGeometry()
geomvertices = vertices vertices数组定义了构成几何体的点;
geomfaces = faces 将vertices里面的点连接起来,创建成三角面片,就形成了faces数组;
geomverticesNeedUpdate = true 告诉geom对象 上面的属性需要更新;
geomcomputeCentroids() 计算geom中face数组里每一个面的重心;
geomcomputeFaceNormals() 该函数用来重新计算侧面,从而完成整个模型的更新
geommergeVertices() 从字面上的意思可以理解为将几何体的面融成一个立体;
geomclone() 创建出一个geom对象的副本,赋予不同的材质后,就可以使用这个副本创建不同的网格对象。
meshposition
meshrotation
meshscale
meshtranslateX
meshtranslateY
meshtranslateZ
cubepositionset(10,3,1)
cubeposition = new THREEVector3(10,3,1)
1、在controls 中添加方法变量
属性变量是这样的: thispositionX = 1;
方法变量:
2、把对象传递给gui (无取值范围)
guiadd(controls,'translate')
这样在gui中点击的时候就可以调用 translate 方法
var mesh = THREESceneUtilscreateMultiMaterialObject(geom,materials)//其中materials是设置材料的对象数组
这个方法创建出来的不是一个THREEMesh实例,而是materials数组里面的每一个材质都会创建一个实例 所以要像使用Scene对象一样使用这个(THREEMesh)
以上就是关于JS代码问题,“+x+”,"+y+"的理解。全部的内容,包括:JS代码问题,“+x+”,"+y+"的理解。、js写一个将图片向上淡出第二张图片从下往上淡入、移动端用translate替换left/top制作动画效果等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)