云顶娱乐-云顶娱乐游戏平台官网
做最好的网站
当前位置: 云顶娱乐 > 云顶娱乐 > 正文

pwa重构新加坡大巴线路图,深远之从原型到原型

时间:2019-10-04 15:21来源:云顶娱乐
二〇一一年最特出的拾伍个 HTML5嬉戏 2011/05/21 · HTML5 ·HTML5 在过去的一年内,Web 本领具备相当大的变革性的更新,获得火速的上扬,特别是HTML5 技巧更为 Web 带来独竖一帜的血液。那将

二〇一一年最特出的拾伍个 HTML5嬉戏

2011/05/21 · HTML5 · HTML5

在过去的一年内,Web 本领具备相当大的变革性的更新,获得火速的上扬,特别是 HTML5 技巧更为 Web 带来独竖一帜的血液。那将直接改造 Flash 调节着Web 游戏的框框。越多的开采职员起先采取 HTML5 来支付一些交互性极度强、效果格外优秀的运用和游乐。

  1. Chain Reaction

  2. Biolab Disaster

  3. Bubble Trouble

  4. Runfield

  5. Sand Trap

  6. Torus

  7. Space War

  8. Google Pacman

  9. Angry Birds (仅可运维于Chrome浏览器)

图片 1

  10. RGB Invaders

图片 2

  11. Canvas Rider

图片 3

  12. Blinkwang

图片 4

  13. CoverFire

图片 5

  14. HTML5 Helicopter

图片 6

  15. Blobby Volley

图片 7

  原文:True Logic    译文:oschina

 

赞 1 收藏 评论

图片 8

pwa重构法国巴黎地铁线路图

2018/03/28 · JavaScript · PWA

原稿出处: Neal   

前边平素有在体贴多个北京地铁线路图的 pwa,最入眼的表征就是 “offline first”。但是出于代码都是透过原生的 js 去贯彻,在此以前本人都不是很欣赏去用框架,不想有所任何框架的偏心。不过到后期随着代码量的扩大,代码的确变得混乱不堪,拓宽新作用也变得特别困难。由此,花了周边三个礼拜的时候对于利用进行了二次完整的重构。网址访谈地址:

JavaScript 深刻之从原型到原型链

2017/05/04 · JavaScript · 原型, 原型链

原稿出处: 冴羽   

JavaScript 深切之继续的种种办法和优短处

2017/05/28 · JavaScript · 继承

初稿出处: 冴羽   

清楚SVG坐标种类和转移: transform属性

2015/09/23 · HTML5 · SVG

原稿出处: SaraSoueidan   译文出处:Blueed@Ivan_z3   

SVG成分能够经过缩放,移动,倾斜和旋转来转换-类似HTML成分使用CSS transform来改变。不过,当提到到坐标系时这么些转变所产生的影响确定有早晚差异。在这篇小说中大家商量SVG的transform品质和CSS属性,富含哪些行使,以及你不可能不精通的有关SVG坐标系转换的学识。

那是自己写的SVG坐标连串和转移部分的第二篇。在首先篇中,包涵了别样要精晓SVG坐标体系基础的急需通晓的剧情;更具象的是, SVG viewport, viewBox 和 preserveAspectRatio 属性。

  • 接头SVG坐标系和转移(第一某些)-viewport,viewBox,和preserveAspectRatio
  • 略知一二SVG坐标系和转移(第二片段)-transform属性
  • 掌握SVG坐标系和更改(第二盘部)-建构新视窗

这一有的自个儿提议您先读书第一篇,若无,确定保证您在读书那篇从前曾经读了第一篇。

准备

预备专门的职业先做好,在 vue 和 react 之间,小编要么选取了后世。基于 create-react-app 来搭建遭遇,crp 为您企图了一个开箱即用的付出遇到,由此你无需本身亲手配置 webpack,因而你也无需形成一名 webpack 配置程序猿了。

其余一边,大家还索要部分多少,富含站点音信,线路渠道,文字表达等等。基于从前的运用,能够透过一小段的代码获取新闻。就此如要我们获得我们原先的站点在 svg 图中的相关属性,普通的站点使用 circle 成分,为了获取其性质:

const circles = document.querySelectorAll('circle'); let result = []; circles.forEach(circle => { let ele = { cx: circle.cx, cy: circle.cy, sroke: circle.stroke, id: circle.id }; result.push(ele); }) const str = JSON.stringify(result);

1
2
3
4
5
6
7
8
9
10
11
12
13
const circles = document.querySelectorAll('circle');
let result = [];
circles.forEach(circle => {
  let ele = {
    cx: circle.cx,
    cy: circle.cy,
    sroke: circle.stroke,
    id: circle.id
  };
  result.push(ele);
})
const str = JSON.stringify(result);
 

透过那样的代码大家就足以拿走 svg 普通站点音信,同理还可收获中间转播站消息,线路门路消息以及站点以及线路 label 新闻。还会有,大家还须要获得每种站点的时刻表消息,卫生间地方新闻,无障碍电梯新闻以及出入口新闻。这里是写了一部分爬虫去官方网址爬取并做了一部分数额管理,再度就不一一赘述。

构造函数创设对象

小编们先选拔构造函数创立二个对象:

function Person() { } var person = new Person(); person.name = 'name'; console.log(person.name) // name

1
2
3
4
5
6
function Person() {
 
}
var person = new Person();
person.name = 'name';
console.log(person.name) // name

在那几个例子中,Person正是贰个构造函数,大家使用new成立了五个实例对象person。

很简单吗,接下去踏入正题:

写在头里

正文讲明JavaScript各类承接格局和优劣点。

只是注意:

那篇小说更疑似笔记,哎,再让作者惊讶一句:《JavaScript高档程序设计》写得真是太好了!

transform属性值

tranform属性用来对一个因素声圣元(Beingmate)个或八个转移。它输入贰个带有顺序的调换定义列表的<transform-list>值。各种转变定义由空格或逗号隔开。给成分增多转变看起来如下:

有效地SVG变换有:旋转缩放移动, 和倾斜transform质量中应用的转换函数类似于CSS中transform属性使用的CSS转变函数,除了参数差异。

留心下列的函数语法定义只在transform质量中有效。查看section about transforming SVGs with CSS properties获取有关CSS转换属性中应用的语法音讯。

设计

数量筹算好现在,就是利用的规划了。首先,对组件举办三次拆分:

prototype

种种函数都有一个prototype属性,正是大家经常在各类例子中来看的极其prototype,比方:

function Person() { } // 即使写在疏解里,可是你要留神: // prototype是函数才会有个别属性 Person.prototype.name = 'name'; var person1 = new Person(); var person2 = new Person(); console.log(person1.name) // name console.log(person2.name) // name

1
2
3
4
5
6
7
8
9
10
function Person() {
 
}
// 虽然写在注释里,但是你要注意:
// prototype是函数才会有的属性
Person.prototype.name = 'name';
var person1 = new Person();
var person2 = new Person();
console.log(person1.name) // name
console.log(person2.name) // name

这那些函数的prototype属性到底指向的是怎么样吧?是以此函数的原型吗?

实则,函数的prototype属性指向了一个对象,这几个指标正是调用该构造函数而创办的实例的原型,也正是其一事例中的person1和person2的原型。

那么哪些是原型呢?你能够那样敞亮:每八个JavaScript对象(null除却)在创建的时候就能够与之提到另二个目标,那么些指标正是我们所说的原型,每二个对象都会从原型”承袭”属性。

让大家用一张图表示构造函数和实例原型之间的涉嫌:

图片 9

在那张图中大家用Object.prototype表示实例原型

那正是说大家该怎么表示实例与实例原型,也正是person和Person.prototype之间的关系吧,这时候大家将要讲到第叁个属性:

1.原型链承袭

function Parent () { this.name = 'kevin'; } Parent.prototype.getName = function () { console.log(this.name); } function Child () { } Child.prototype = new Parent(); var child1 = new Child(); console.log(child1.getName()) // kevin

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function Parent () {
    this.name = 'kevin';
}
 
Parent.prototype.getName = function () {
    console.log(this.name);
}
 
function Child () {
 
}
 
Child.prototype = new Parent();
 
var child1 = new Child();
 
console.log(child1.getName()) // kevin

问题:

1.援用类型的属性被全数实例分享,举个例证:

function Parent () { this.names = ['kevin', 'daisy']; } function Child () { } Child.prototype = new Parent(); var child1 = new Child(); child1.names.push('yayu'); console.log(child1.names); // ["kevin", "daisy", "yayu"] var child2 = new Child(); console.log(child2.names); // ["kevin", "daisy", "yayu"]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function Parent () {
    this.names = ['kevin', 'daisy'];
}
 
function Child () {
 
}
 
Child.prototype = new Parent();
 
var child1 = new Child();
 
child1.names.push('yayu');
 
console.log(child1.names); // ["kevin", "daisy", "yayu"]
 
var child2 = new Child();
 
console.log(child2.names); // ["kevin", "daisy", "yayu"]

2.在开创 Child 的实例时,不能够向Parent传参

Matrix

您能够行使matrix()函数在SVG元素上增添三个或三个转移。matrix转变语法如下:

matrix(<a> <b> <c> <d> <e> <f>)

1
matrix(<a> <b> <c> <d> <e> <f>)

pwa重构新加坡大巴线路图,深远之从原型到原型链。上述表明通过三个有6个值的调换矩阵声美赞臣(Meadjohnson)个转换。matrix(a,b,c,d,e,f)未有差距于加多转变matrix[a b c d e f]

设若你不精晓数学,最棒不用用这一个函数。对于那么些驾驭的人,你能够在这里开卷越多关于数学的原委。由此那些函数少之又少使用-小编将忽略来研商其余调换函数。

编辑:云顶娱乐 本文来源:pwa重构新加坡大巴线路图,深远之从原型到原型

关键词: