其他分享
首页 > 其他分享> > SASS实现3D骰子效果

SASS实现3D骰子效果

作者:互联网

1.什么是SASS?

  Sass是一个将脚本解析成CSS的脚本语言,即SassScript。Sass包括两套语法。最开始的语法叫做“缩进语法”,与Haml类似,使用缩进来区分代码块,并且用回车将不同规则分隔开。而较新的语法叫做“SCSS”,使用和CSS一样的块语法,即使用大括号将不同的规则分开,使用分号将具体的样式分开。通常情况下,这两套语法通过.sass和.scss两个文件扩展名区分开。 Sass 扩展了 CSS3,增加了规则、变量、混入、选择器、继承等等特性。Sass 生成良好格式化的 CSS 代码,易于组织和维护。 SASS是对CSS3(层叠样式表)的语法的一种扩充,它可以使用巢状、混入、选择子继承等功能,可以更有效有弹性的写出Stylesheet。Sass最后还是会编译出合法的CSS让浏览可以使用,也就是说它本身的语法并不太容易让浏览器识别(虽然它和CSS的语法非常的像,几乎一样),因为它不是标准的CSS格式,在它的语法内部可以使用动态变量等,所以它更像一种极简单的动态语言。

 

2.SASS与CSS有什么区别与联系?

  CSS样式是用来修饰网页页面结构的; SASS是由buby语言编写的一款css预处理语言,进行网页样式设计,之后再编译成正常的css文件,以供项目使用,和html一样有严格的缩进风格,和css编写规范有很大的出入,是不使用花括号和分号的,所以不被广为接受。

 

3.设计目的和要求

  目的:熟悉并了解SASS,利用CSS3样式表+JavaScript脚本语言,实现一个3D骰子效果。

  要求:在Vscode环境中实现,骰子具有旋转效果,点击“开始”按钮,骰子自动旋转;点击“停止”按钮,骰子停止旋转;点击相应数字按钮,骰子转到相应点数。

 

4.三大代码部分

  (1)HTML部分

      

  (2)CSS部分

               

  (3)JavaScript部分

          

 

5.成品样式

       

 

6.3D骰子如何实现?

  利用css将一个面的相对位置设为基准,其它面以此相对位置基准分别设置一个角度代替面,最终面与面折叠形成3D效果。

 

7.3D骰子如何实现点击某个数字,骰子就转到某个数字面的?

  每一个按钮都代表一个面,当点击按钮时,会将该面一开始设置的角度调出来,显示出来,就会实现点击跳转。

 

8.部分核心代码

 <div class="box">   <!--按钮盒子-->

        <input class="a" type="button" value="开始" onclick="Controller('start')"/>         <input class="b" type="button" value="停止" onclick="Controller('stop')" />         <br />           <input  class="c" type="button" value="1" onclick="Controller('1')"/>         <input  class="c" type="button" value="2" onclick="Controller('2')"/>         <input  class="c" type="button" value="3" onclick="Controller('3')"/>         <input  class="c" type="button" value="4" onclick="Controller('4')"/>         <input  class="c" type="button" value="5" onclick="Controller('5')"/>         <input  class="c" type="button" value="6" onclick="Controller('6')"/>     </div>  

 

 .group{         /*骰子属性*/     width: 200px;     height: 200px;     position: relative;  /*相对位置*/     transform-style:preserve-3d;/*使其子元素保持3D转换*/     -webkit-transform-style:preserve-3d;     -moz-transform-style:preserve-3d;     transform-origin:50% 50% -100px;/*设置骰子旋转的基点位置(骰子中心点)*/     -webkit-transform-origin:50% 50% -100px;     -moz-transform-origin:50% 50% -100px;     margin: 25px auto;     transform:scroll 3s linear 0s infinite;/*设置骰子动画效果*/     -webkit-animation:scroll 3s linear 0s infinite;     -moz-animation:scroll 3s linear 0s infinite;     animation: scroll 3s linear 0s infinite;     border-radius:20px;   /*边框圆弧度*/      animation-play-state: paused;  /*开始为静止动画*/ }  .page{        /*骰子表面样式*/     width: 200px;     height: 200px;     position: absolute;     border-radius: 20px;     text-align: center;     overflow: hidden;     text-align: center;     background-color:#E8E8E9;     border:1px solid #E0E0E0;  } /*开始设置每个面的角度,将6个面拼成一个正方体*/ #page2{     transform-origin:right;/*点数为2的面以右边为转轴转动*/     transform:rotateY(-90deg);/*绕Y轴逆时针转动90度*/     -webkit-transform-origin:right;     -webkit-transform:rotateY(-90deg);     -moz-transform-origin:right;     -moz-transform:rotateY(-90deg); } #page3{     transform-origin:left;/*点数为3的面以左边为转轴转动*/     transform:rotateY(90deg);/*绕Y轴顺时针转动90度*/     -webkit-transform-origin:left;     -webkit-transform:rotateY(90deg);     -moz-transform-origin:left;     -moz-transform:rotateY(90deg); } #page4{     transform-origin:top;/*点数为4的面以上边为转轴转动*/     transform:rotateX(-90deg);/*绕X轴逆时针转动90度*/     -webkit-transform-origin:top;     -webkit-transform:rotateX(-90deg);     -moz-transform-origin:top;     -moz-transform:rotateX(-90deg); } #page5{     transform-origin:bottom;/*点数为5的面以下边为转轴转动*/     transform:rotateX(90deg);/*绕X轴顺时针转动90度*/     -webkit-transform-origin:bottom;     -webkit-transform:rotateX(90deg);     -moz-transform-origin:bottom;     -moz-transform:rotateX(90deg); } #page6{     transform:translateZ(-200px);/*点数为6的面沿Z轴向后平移200px*/     -webkit-transform:translateZ(-200px);     -moz-transform:translateZ(-200px); } .page span {     display:inline-block;     width:50px;     height:50px;     border-radius:25px;     background-color:#050505;     box-shadow:inset 3px 3px 5px #000;/*骰子点数的阴影效果*/ } /*下面是对点数样式的控制*/ #page1 span{     position:absolute;     left:50%;     top:50%;     margin-top:-25px;     margin-left: -25px;     background-color:#f00; }   9.感悟与不足
  通过本次sass实验3d骰子效果,我们组全部成员熟练并理解了什么是sass,怎样在Vscode环境中实现一个网页3d骰子的旋转效果。点击相应的数字,骰子就转到相应的点数。不足之处在于很难实现骰子的下坠的3d效果,查阅资料也很难找到相应的核心代码,但是网页布局很美观,弥补了实验的缺陷,使实现的3d骰子更具现实性,方便别人的使用。

  

 

演示视频连接:

打开百度网盘复链接:https://pan.baidu.com/s/1ZcK9Idlnj7zbFhO9xM7bLA 

提取码:akan 

小组成员:赵文杰、 刘彤、 马传哲 、朱鹏程 、张德鲁

  

 

  

 

标签:origin,moz,骰子,SASS,90deg,transform,webkit,3D
来源: https://www.cnblogs.com/szmtjs10/p/14220944.html