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

前面三个技术员面试题汇总4008.com:,聊聊响应式

时间:2019-10-05 16:40来源:云顶娱乐
雅淡的数组降维——Javascript中apply方法的妙用 2016/02/18 · JavaScript· apply,数组 原稿出处:ralph_zhu    将多维数组(越发是二维数组)转化为一维数组是专门的学业支出中的常用逻辑,除

雅淡的数组降维——Javascript中apply方法的妙用

2016/02/18 · JavaScript · apply, 数组

原稿出处: ralph_zhu   

将多维数组(越发是二维数组)转化为一维数组是专门的学业支出中的常用逻辑,除了行使节约财富的轮回调换以外,大家还足以应用Javascript的语言特征完成越发不难高贵的转移。本文将从节俭的巡回转变先河,逐条介绍三种常用的调换方法,并借此轻巧回看Array.prototype.concat方法和Function.prototype.apply方法。
以下代码将以把二维数组降维到一维数组为例。

  1. 朴素的退换

JavaScript

function reduceDimension(arr) { var reduced = []; for (var i = 0; i < arr.length; i++) { for (var j = 0; j < arr[i].length; j++) { reduced.push(arr[i][j]); } } return reduced; }

1
2
3
4
5
6
7
8
9
function reduceDimension(arr) {
    var reduced = [];
    for (var i = 0; i < arr.length; i++) {
        for (var j = 0; j < arr[i].length; j++) {
            reduced.push(arr[i][j]);
        }
    }
    return reduced;
}

此措施思路轻松,利用再度循环遍历二维数组中的各种成分并内置新数组中。

 

  1. 利用concat转换
    先来回想一下MDN上对此该情势的介绍:
    “concat creates a new array consisting of the elements in the object on which it is called, followed in order by, for each argument, the elements of that argument (if the argument is an array) or the argument itself (if the argument is not an array).”

即只要concat方法的参数是一个要素,该因素会被直接插入到新数组中;假诺参数是四个数组,该数组的顺序要素将被插入到新数组中;将该个性应用到代码中:

JavaScript

function reduceDimension(arr) { var reduced = []; for (var i = 0; i < arr.length; i++){ reduced = reduced.concat(arr[i]); } return reduced; }

1
2
3
4
5
6
7
function reduceDimension(arr) {
    var reduced = [];
    for (var i = 0; i < arr.length; i++){
        reduced = reduced.concat(arr[i]);
    }
    return reduced;
}

arr的每贰个成分都以多个数组,作为concat方法的参数,数组中的各样子成分又都会被单独插入进新数组。
运用concat方法,大家将再度循环简化为了单重循环。

 

  1. 利用apply和concat转换
    根据规矩,先来回看一下MDN上对于apply方法的牵线:
    “The apply() method calls a function with a given this value and arguments provided as an array.”

即apply方法会调用贰个函数,apply方法的第一个参数会作为被调用函数的this值,apply方法的第二个参数(二个数组,或类数组的目的)会作为被调用对象的arguments值,约等于说该数组的顺序要素将会相继成为被调用函数的相继参数;将该特性应用到代码中:

function reduceDimension(arr) { return Array.prototype.concat.apply([], arr); }

1
2
3
function reduceDimension(arr) {
    return Array.prototype.concat.apply([], arr);
}

arr作为apply方法的第一个参数,自己是三个数组,数组中的每一个因素(照旧数组,即二维数组的第二维)会被看作参数依次传入到concat中,效果等同[].concat([1,2], [3,4], [5,6])。
应用apply方法,大家将单重循环优化为了一行代码,很简短有型有木有啊~

读者也可参照本文思路,自身使用递归达成N维数组降维的逻辑。

3 赞 8 收藏 评论

云顶棋牌 1

聊聊 CSS3 中的 object-fit 和 object-position

2016/11/22 · CSS · CSS3

本文小编: 伯乐在线 - TGCode 。未经我许可,禁绝转发!
招待参与伯乐在线 专辑作者。

近些日子直接忙于将JavaScript学习的笔记整理成都电子通信工程高校子书,也没怎么空闲时间写新的稿子。趁着后天有一些空闲,决定再来折腾一下CSS3中的三个属性:object-fitobject-position

那多少个奇葩的质量是做什么样的啊?其实它们是为了处理替换元素(replaced elements)的自适应难题,一言以蔽之,正是拍卖替换到分的变形(这里指长度宽度比例变形)难题。

等等,好像多了三个名词,啥叫替换元素?替换到分其实是:

  • 其剧情不受CSS视觉格式化模型调整的要素,举例image,嵌入的文书档案(iframe之类)或然applet,叫做替换来分。比:img成分的内容常常会被其src属性钦定的图像替换掉。替换到分平时有其原本的尺码:叁个原来的涨幅,三个原有的可观和一个原始的比率。比如一幅位图有固有用相对单位钦定的小幅度和惊人,进而也许有固有的宽高比率。另一方面,其余文书档案也大概未有原本的尺寸,比如贰个单手的html文档。
  • CSS渲染模型不考虑替换来分内容的渲染。那些替换来分的展现独立于CSS。object,video,textarea,input也是替换元素,audio和canvas在一些特定情景下为替换元素。使用CSS的content属性插入的目的是无名氏替换元素。

本条本来不是本身脑子尘卷风来的,而是引用别人的批注:引用

常见的替换到分有<video>、<object>、<img>、<input type=”image”>、<svg>、<svg:image>和<svg:video>等。

如果看的稀里纷繁扬扬的也没提到,接着往下看,笔者相信您会清楚!

1、object-fit

语法:

object-fit: fill | contian | cover | none | scale-down;

1
object-fit: fill | contian | cover | none | scale-down;
  • fill : 私下认可值。填充,可替换元素填满全部内容区域,大概会改动长度宽度比,导致拉伸。
  • contain : 饱含,保持原有的尺寸比例,保障可替换到分完整呈现,宽度或可观最少有三个和剧情区域的肥瘦或中度一致,部分内容会空白。
  • cover : 覆盖,保持原有的尺寸比例,有限帮衬内容区域被填满。因而,可替换元素可能会被切掉一部分,进而无法完全浮现。
  • none : 保持可替换元素原尺寸和比例。
  • scale-down : 等比收缩。就恍如依次安装了none或contain, 最后表现的是尺寸异常的小的极度。

倒霉意思,我又要摆妹子来诱惑你们了,看效率图:

云顶棋牌 2

地方的八个例证的代码:

<style> .box{ position:relative; float:left; margin:0 10px 40px 10px; width:150px; height:150px; } .box>img{ width:100%; height:100%; background-color:#000; } .fill{ object-fit:fill; } .contain{ object-fit:contain; } .cover{ object-fit:cover; } .none{ object-fit:none; } .scale{ object-fit:scale-down; } </style> <div class="box"> <img src="example-girl.jpg" class="fill" alt=""> </div> <div class="box"> <img src="example-girl.jpg" class="contain" alt=""> </div> <div class="box"> <img src="example-girl.jpg" class="cover" alt=""> </div> <div class="box"> <img src="example-girl.jpg" class="none" alt=""> </div> <div class="box"> <img src="example-girl.jpg" class="scale" alt=""> </div>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<style>
.box{  
  position:relative;  
  float:left;  
  margin:0 10px 40px 10px;  
  width:150px;  
  height:150px;  
}  
.box>img{  
  width:100%;  
  height:100%;  
  background-color:#000;  
}  
.fill{  
  object-fit:fill;  
}  
.contain{  
  object-fit:contain;  
}  
.cover{    
  object-fit:cover;  
}  
.none{  
  object-fit:none;  
}  
.scale{  
  object-fit:scale-down;  
}  
</style>
 
<div class="box">  
  <img src="example-girl.jpg" class="fill" alt="">  
</div>  
<div class="box">  
  <img src="example-girl.jpg" class="contain" alt="">
</div>  
<div class="box">  
  <img src="example-girl.jpg" class="cover" alt="">
</div>  
<div class="box">  
  <img src="example-girl.jpg" class="none" alt="">
</div>  
<div class="box">  
  <img src="example-girl.jpg" class="scale" alt="">
</div>

看看这个职能,笔者想同志们最关注的的应有是包容性,点这里点这里

2、object-position

object-position4008.com,属性决定了它的盒子里面替换到分的对齐格局。

语法:

object-position: <position>

1
object-position: <position>

默许值是50% 50%,也正是居中作用,其取值和CSS中background-position品质取值同样。(如若不熟练background-position,能够瞄瞄这里《CSS3 Background》)

举个例子:替换到分位于内容区域的左上角

img{ object-fit: contain; object-position: 0 0; }

1
2
3
4
img{
  object-fit: contain;
  object-position: 0 0;
}

效果图:

云顶棋牌 3

诸如:替换成分相对于左下角10px 10px地点一定

img{   object-fit: contain;   object-position: bottom 10px left 10px; }

1
2
3
4
img{
  object-fit: contain;
  object-position: bottom 10px left 10px;
}

效果图:

云顶棋牌 4

当然,你也能够行使calc()来稳定:

img{   object-fit: contain;   object-position: calc(100% - 10px) calc(100% - 10px); }

1
2
3
4
img{
  object-fit: contain;
  object-position: calc(100% - 10px) calc(100% - 10px);
}

效果图:

云顶棋牌 5

它还协理负数:

img{   object-fit: contain;   object-position: -10px calc(100% - 10px); }

1
2
3
4
img{
  object-fit: contain;
  object-position: -10px calc(100% - 10px);
}

效果图:

云顶棋牌 6

总之,object-position前面三个技术员面试题汇总4008.com:,聊聊响应式图片。的性子表现与backgound-position一致一样的。

兼容性:点这里

到这边,这两脾性子算是讲罢了,就是如此轻松。

打赏协助作者写出越来越多好文章,感激!

打赏小编

闲谈响应式图片

2016/11/14 · HTML5 · 5 评论 · HTML5, 响应式图片

本文小编: 伯乐在线 - TGCode 。未经小编许可,禁绝转发!
应接参与伯乐在线 专辑小编。

“响应式(Responsive)”这么些词小编想大家未有听过1000遍,也可以有玖拾八遍了。响应式是指落成分歧荧屏分辨率的终端上浏览网页的分歧显示格局。英特网介绍响应式的文章也可以有过多了,比方:《自适应页面设计》。在那篇作品中,我们不讲页面布局的响应式,大家任重先生而道远来拜望“响应式图片云顶棋牌,”。
那篇作品首要内容:

  • 为什么要选拔响应式图片
  • <picture>元素
  • img的srcset、sizes属性

1、为啥要动用响应式图片

假如有一张图纸的显示升幅为200px,那么,它在 1x(即设备像素比为 1 的显示屏) 的显示屏上,是占了 200 个大体像素(即事实上所占的像素);它在2x 的显示屏上,实际上是占了 400 个概略像素;在 3x 的显示屏上,实际上是占了 600 个大要像素;在 4x 的荧屏上正是占了 800 个大要像素。

假使那一个图形只提供 200 像素的尺码,那么在 2x~4x 的显示屏上看起来就很模糊。如若只提供 800 像素的本子,那么在 1x~3x 的配备上会显得多余,因为加载时间会相较长,所以我们要选拔响应式图片。

笔者们有二种艺术来安装响应式图片:

  • 使用<picture>元素(HTML5新增)
  • 使用img的srcset、sizes

2、picture元素

在HTML 5中,扩充了三个新因素<picture>。用过<video>、<audio>的,会认为<picture>的用法很熟识:

<picture>   <source srcset="smaller.jpg" media="(max-width: 750px)">   <source srcset="default.jpg">   <img srcset="default.jpg" /> </picture>

1
2
3
4
5
6
7
8
9
<picture>
 
  <source srcset="smaller.jpg" media="(max-width: 750px)">
 
  <source srcset="default.jpg">
 
  <img srcset="default.jpg" />
 
</picture>

 

不驾驭您放在心上到未有,在 media 属性使用的语法与CSS媒体(media)天性中动用的语法同样。你能够采纳同样的性状,也便是说你能够查询 max-width , min-width , max-height , min-height , orientation 等品质。

来看<picture>这几个因素是还是不是很提神,可是不得不提醒您一句,近日以来,这么些成分依旧有包容性难点的。

兼容性:兼容性

理当如此,倘使您势供给动用<picture>那一个因素,又要在其它浏览器里匡助,那您就须求丰硕三个外加的插件:Picturefill2.0

<script src="picturefill.js"></script>

1
<script src="picturefill.js"></script>

就算<picture>很实惠,但倘使您思量到兼容性,依旧要小心使用,然则,大家也许有宽容性较好的别的一种管理响应式图片的情势,看上边。

3、img的srcset、sizes属性

自然,<img>成分自个儿也提供了响应式的习性:srcsetsizes

3.1 旧版本的srcset属性

在原先,我们是如此用的:

<img src="width-128px.jpg" srcset="width-128px.jpg 1x, width-256px.jpg 2x" />

1
<img src="width-128px.jpg" srcset="width-128px.jpg 1x, width-256px.jpg 2x" />

这段代码什么意思吧?

浏览器依据显示屏差别的像素密度(x)来显示对应尺寸的图样,也足以说是基于设备的像素比来展现不相同的图片。

看图:

云顶棋牌 7

云顶棋牌 8

别老是望着“外人的妹子”,请留意浅米灰箭头,DP路虎极光正是器材像素比,差异的像素比,会显示区别的图形。

眼前显示器密度有:1x、2x、3x、4x。

3.2 新规范的srcset、sizes属性,w描述符

旧版本的srcset使用多少有个别局限性,可是幸好的是到二〇一五年,大家早已有了斩新的srcset,况兼还多三个size是性质。

选取新的srcset,大家只供给提供图片能源以及断点,浏览器会去自动相称最好显示图片。

选取办法如下:

<img src="width-128.jpg" srcset="width-128.jpg 128w, width-512.jpg 512w" sizes="(max-width: 500px) 128px, 512px" />

1
<img src="width-128.jpg" srcset="width-128.jpg 128w, width-512.jpg 512w" sizes="(max-width: 500px) 128px, 512px" />

上边这段代码的意思表示:不匡助srcset属性时,使用src中的图片,不然浏览器会自动相配最棒展现图片;sizes属性的值表示当可视区宽度不高出500像素,则图片宽度展现为128px,其余景况下,图片宽度呈现为512px。。

云顶棋牌 9

云顶棋牌 10

在乎:若是您用pc浏览器测量试验这段代码,一定要先进入移动格局,因为一展开页面时可视区大于500px(除非你的管理器是Mini版),会先出示大图片,随后即便你降低荧屏,小图片即使会加载,你能够在调整台的“Network”里看看,可是来得的依旧会是大图片,因为前边大图片已经缓存了,而浏览器会自动相配最好展现的图样。

srcset用来提供图片能源,sizes属性的效劳类似媒体询问,用来设置图片尺寸的临界点。

sizes="[media query] [length], [media query] [length]..."

1
sizes="[media query] [length], [media query] [length]..."

要力保使用sizes 里总结出来的宽窄始终是图形所占显示屏宽度(length)。

为何说sizes属性的成效类似媒体询问呢?

因为它只是永葆部分传播媒介询问,比方:

(min-width: 400px) (not (orientation: landscape) ) ( (orientation: landscape) and (min-width:400px) ) ( (orientation: portrait) or (max-width: 500px) )

1
2
3
4
5
6
7
(min-width: 400px)
 
(not (orientation: landscape) )
 
( (orientation: landscape) and (min-width:400px) )
 
( (orientation: portrait) or (max-width: 500px) )

 

但它不扶助大家显明的定义媒体类型:比方screen大概print等等。

除此之外使用px外,我们仍可以行使em、px、cm、vw…,以致CSS3的calc,不可能采用比例。

sizes=”(max-width: 320px) calc(100vw – 20px), 128px”

表示当视区增长幅度不超越320像素时候,图片宽度为整个视区宽度减去20像素的高低。

包容性查看:兼容性

3.3 常见的使用处境

(1)如若图片的宽窄是任何视口的比重,那么sizes能够这么设置:

sizes="80vw"

1
sizes="80vw"

(2)假使图片两边的边距各为10px,大家得以如此设置:

sizes="calc( 100vw - 20px)"

1
sizes="calc( 100vw - 20px)"

(3)假使有贰个两边边距为10px的图纸,允许它的最小幅面为500px,大家得以这么设置:

sizes="( min-width:520px) 500px, calc(100vw - 20px)"

1
sizes="( min-width:520px) 500px, calc(100vw - 20px)"

上边包车型地铁代码表示当可视区大于520px时,图片宽度为500px,不然宽度为calc(100vw – 20px)计算的值。

打赏扶助本人写出越多好小说,感激!

打赏小编

JavaScript 中的 this 周详解析

2017/05/26 · JavaScript · this

初稿出处: Simon_ITer   

GitHub地址:

this的指向难题应有是让每贰个前端er都头痛的主题素材,小编也一律,曾经碰到以至都以一顿乱猜。前段时间在研读一些图书如《你不驾驭的JavaScript》和《JavaScript语言非凡与编制程序实施》,让笔者对this的主题材料茅塞顿开。故写下此篇文章,分享一下我的感受。

前端程序猿面试题汇总

2016/06/24 · 前端职场 · 3 评论 · CSS, HTML5, Javascript

原来的书文出处: @markyun   

打赏帮助自身写出越多好小说,感激!

任选一种支付格局

云顶棋牌 11 云顶棋牌 12

1 赞 收藏 评论

打赏协理笔者写出越多好文章,多谢!

任选一种支付办法

云顶棋牌 13 云顶棋牌 14

2 赞 14 收藏 5 评论

隐式绑定

有关this,日常的话,哪个人调用了法子,该措施的this就针对什么人,如:

function foo(){ console.log(this.a) } var a = 3; var obj = { a: 2, foo: foo }; obj.foo(); // 输出2,因为是obj调用的foo,所以foo的this指向了obj,而obj.a = 2

1
2
3
4
5
6
7
8
9
10
11
12
function foo(){
    console.log(this.a)
}
 
var a = 3;
 
var obj = {
    a: 2,
    foo: foo
};
 
obj.foo(); // 输出2,因为是obj调用的foo,所以foo的this指向了obj,而obj.a = 2

假诺存在数十次调用,对象属性引用链独有上一层可能说最终一层在调用地方中起作用,如:

function foo() { console.log( this.a ) } var obj2 = { a: 42, foo: foo } var obj1 = { a: 2, obj2: obj2 } obj1.obj2.foo(); // 42

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function foo() {
    console.log( this.a )
}
 
var obj2 = {
    a: 42,
    foo: foo
}
 
var obj1 = {
    a: 2,
    obj2: obj2
}
 
obj1.obj2.foo(); // 42

目录

  1. HTML部分
  2. CSS部分
  3. JavaScript部分
  4. 别的标题

编辑:云顶娱乐 本文来源:前面三个技术员面试题汇总4008.com:,聊聊响应式

关键词:

  • 上一篇:没有了
  • 下一篇:没有了