zoukankan      html  css  js  c++  java
  • 听指令的小方块(一)总结

    任务目的

    • 练习JavaScript在DOM、字符串处理相关知识
    • 练习对于复杂UI,如何进行数据机构建模

    任务描述

    • 如图,实现一个类似棋盘的格子空间,每个格子用两个数字可以定位,一个红正方形的DOM在这个空间内,正方形中的蓝色边表示这是他的正面,有一个input输入框
    • 在输入框中允许输入如下指令,按下按钮后,使得正方形做相应动作
      • GO:向蓝色边所面向的方向前进一格(一格等同于正方形的边长)
      • TUN LEF:向左转(逆时针旋转90度)
      • TUN RIG:向右转(顺时针旋转90度)
      • TUN BAC:向右转(旋转180度)
    • 移动不能超出格子空间

    任务注意事项

    • 实现功能的同时,请仔细学习JavaScript相关的知识
    • 请注意代码风格的整齐、优雅
    • 代码中含有必要的注释
    • 建议不使用任何第三方库、框架

    在线学习参考资料

    听指令的小方块(一)总结

    1、CSS3 transform Property

    transform属性向一个元素添加2d或3d变换,允许向元素添加旋转、缩放、移动、偏斜等。

    语法:

    transform: none|transform-functions|initial|inherit;

    none:默认值,没有变换。

    matrix(n,n,n,n,n,n):使用矩阵的六个值定义一个2D变换。

    matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n):使用4*4矩阵中的16个值定义一个3D变换。

    translate(x,y):定义一个2D移动。

    translate3d(x,y,z):定义一个3D移动。

    translateX(x):定义一个X轴方向的移动。

    translateY(y):定义一个Y轴方向的移动。

    translateZ(z):定义一个Z轴方向的3D移动。

    scale(x,y):定义一个2D缩放。

    scale3d(x,y,z):定义一个3D缩放。

    scaleX(x):定义一个X轴方向的缩放。

    scaleY(y):定义一个Y轴方向的缩放。

    scaleZ(z):定义一个Z轴方向的缩放。

    rotate(angle):定义一个参数angle大小的旋转。

    rotate3d(x,y,z,angle):定义一个3d旋转。

    rotateX(angle):定义一个X轴方向的3D旋转。

    rotateY(angle):定义一个Y轴方向的3D旋转。

    rotateZ(angle): 定义一个Z轴方向的3D旋转。

    skew(x-anlge,y-angle):定义一个沿X轴和Y轴方向的变换。

    skewX(angle):定义一个沿X轴方向的变换。

    skewY(angle):定义一个沿Y轴方向的变换。

    perspective(n):为3D变换元素增加透视。

    initial:将属性设为默认值。

    inherit:从父元素继承属性值。

    2、Style transform Property

    语法:

    object.style.transform = "none|transform-functions|initial|inherit"

    参数与CSS3 transform Property相同。

    3、Element offsetTop Property

    • offsetTop属性返回以像素为单位的元素相对于父元素的顶部位置。

    返回值包括:

    (1·)元素的top和外边距。

    (2)父元素的内边距,滚动条和边框。

    注意:此处的父元素指最近的position不是static的祖先元素。

    可使用offsetLeft属性返回元素的left位置。

    语法:

    object.offsetTop

    返回值为:top offset position

    4、Style top Property

    top属性设置或返回已定位元素的top位置。

    top位置包括内边距,滚动条,边框和外边距。

    注意:已定位元素指position属性设为:relative,absolute或fixed的元素。

    可使用bottom属性设置或返回已定位元素的bottom位置。

    语法:

    返回top property:

    object.style.top

    设置top property:

    oject.style.top = "auto|length|%|initial|inherit"

    auto:默认属性值,由浏览器设置top position。

    length:使用长度单位定义top position。允许使用负值。

    %:设置top position为父元素高度的百分之多少。

    initial:设置为默认属性值。

    inherit:从父元素集成属性值。

    5、JavaScript Window getComputedStyle() Method

    getComputedStyle()方法获取特定节点的所有实际使用(计算的)CSS属性和属性值。

    计算样式指元素展示时实际使用的很多来源的样式。

    样式来源包括:内部样式表、外部样式表、继承样式和浏览器默认样式。

    语法:

    window.getComputedStyle(element, pseudoElement)

    element:必填,获取计算样式的元素。

    PseudoElement:选填,获取一个伪元素。

    原生javaScript只能获取元素style的内联样式(行内样式),若想获取元素的完整样式信息,比如使用window对象的getComputedStyle方法。

    6、javaScript如何实现像素向加减

    直接用“3px”-“2px”会产生NaN。

    可使用parseInt()(将字符串转为int)进行转换

    var px = (parseInt('3px')-parseInt('2px'))+'px';

    3px,2px也可以为变量名。

    7、Element.getBoundingClientRect()

    Element.getBoundingClientRect()方法返回元素大小和它相对于视口的位置。

    语法:

    rectObject = object.getBoundingClientRect();

    返回值为一个DOMRect对象,包括以像素为计量单位的只读的left,top,right,bottom,x,y,width,height属性。除width和height外,其他属性均相对于视口的左上角。

    8、已提交作业

    代码地址:https://github.com/Nunawading2016/2017-IFE-Baidu/blob/master/task3-4

    Demo地址:http://htmlpreview.github.io/?https://github.com/Nunawading2016/2017-IFE-Baidu/blob/master/task3-4/index.html

  • 相关阅读:
    【 React
    vue : 无法加载文件 C:UsersXXXAppDataRoaming pmvue.ps1,因为在此系统上禁止运行脚本
    web前端工程化
    node.js读写文件
    gulp简单使用
    在window里面安装ubuntu子系统并安装图形化界面
    节点操作--JavaScript
    【jQuery中css(),attr()和prop区别】
    【animation和transtion】
    【网络状态反馈码】
  • 原文地址:https://www.cnblogs.com/melbourne1102/p/6552640.html
Copyright © 2011-2022 走看看