老师,请帮忙解答一下。问题写再备注里面了。谢谢

老师,请帮忙解答一下。问题写再备注里面了。谢谢

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<meta name="viewport" content="width=device-width, initial-scale=1">

<title></title>

<style type="text/css">

body {

   -webkit-perspective: 800px;

           perspective: 800px;

   -webkit-perspective-origin: 50%;

           perspective-origin: 50%;

}

.cube{

display:inline-block;

/* border:1px red solid; */

width:100px;

height:100px;

-webkit-transform-style:preserve-3d;

transform-style:preserve-3d;

margin:50px;

/* inline-block:margin:auto无效 */

position:relative;

}

.cube div{

position:absolute;

width:100%;

height:100%;

border:2px magenta solid;

text-align:center;

line-height:100px;

box-shadow: inset 0 0 15px 0 rgba(0, 0, 0, .2);

background-color: rgb(255, 255, 255,.1);

color: gray; 

font-size: 20px;

}

.cube .front{

-webkit-transform:translatez(50px);

transform:translatez(50px);

}

.cube .back{

-webkit-transform:rotatey(180deg) translateZ(50px);/* 为什么不是-50px */

transform:rotatey(180deg) translateZ(50px);

/* 前后两个面不是从坐标x=0,y=0,z=0开始的么

.back和.front坐标怎么都是向Z=50px移动(正方向),不是重叠了么。

*/

}

.cube .right{

-webkit-transform:rotatey(90deg) translatez(50px);/* 为什么不是移动 rotatey(90deg) translatex(50px)*/

transform:rotatey(90deg) translate(50px);

/*学生的思路是这样的: 绝对定位后,6个面重叠在一起,及6个面原始坐标X=0;Y=0;z=0;

frontZ坐标向上移动50px.back坐标向Z方向移动-50px;

让他们之间高度差为100px;

再移动.right,让这个面rotate(90deg),再向X轴移动50px;

*/

 /* ?难道坐标系是跟随着面在的移动或者转动?

 这个坐标系是我们的视角,还是固定再旋转的面上了?

 这样向就可以理解老师的代码,但是这个不符合前面rotate的定义。蒙圈了。

 

 */


</style>

</head>

<body>

<div class="cube c1">

   <div class="front">1</div>

  <div class="back">2</div>

  <div class="right">3</div>

   <!-- <div class="left">4</div>

   <div class="top">5</div>

   <div class="bottom">6</div> -->

</div>

<div class="cube c2">

   <div class="front">1</div>

   <div class="back">2</div>

  <div class="right">3</div>

   <!-- <div class="left">4</div>

   <div class="top">5</div>

   <div class="bottom">6</div> -->

</div>

</body>

</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕慕子 2019-07-23 20:19:21

同学你好, rotate坐标发生了移动哦。老师给你举个简单的帮助同学理解

  1. 直接平移。

    http://img1.sycdn.imooc.com//climg/5d36f9fa0001ccc606630879.jpg

    效果图:相当于沿着Z轴向

    http://img1.sycdn.imooc.com//climg/5d36fa3f0001238f05570242.jpg

  2. 先旋转在平移, 此时坐标轴发生了改变, 沿着Z轴平移与之前的效果不一样

    http://img1.sycdn.imooc.com//climg/5d36fb920001897c06480822.jpg

    http://img1.sycdn.imooc.com//climg/5d36fa8f000166bc04620250.jpg

由于这是比较立体抽象的, 用文字无法描述的很详细,建议: 同学可以有简单到难, 一点点测试, 结合代码实现的效果去理解哦

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

好帮手慕糖 2019-07-23 20:18:02

同学你好,是跟着移动的哦,旋转的话,也会跟着旋转。

每一面都有自己独立的坐标系,所以如果是两个元素分别旋转了180,与-180是不会有影响的哦。

祝学习愉快!

好帮手慕星星 2019-07-22 18:14:39

同学你好,

transform中的转换效果坐标轴都是跟着改变的,所以back面沿着y轴循环180度之后,z轴就会与front面的z轴方向相反,移动50后,两个面的距离就是100了。

左右两侧也是同样的道理,可以再测试理解下。

祝学习愉快!

  • 提问者 慕盖茨6251851 #1
    rotate()坐标好像没有跟着动,老师。 transform:rotatey(180deg)后再rotatey(0deg)是同一个位置。 如果坐标也跟着移动,transform:rotatey(180deg)后再rotatey(-180deg)才回到原位置才对。麻烦老师在讲解一下。谢谢
    2019-07-22 23:39:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师