前端知识篇——(七)

目录

CSS 题目:改变 placeholder 的字体颜色大小

JS 题目: Set & Map 数据结构

其他 题目: 认识动画效果

CSS

题目:改变 placeholder 的字体颜色大小

<style>
input::-webkit-input-placeholder {
        /* WebKit browsers */
        font-size: 14px;
        color: rgb(202, 73, 181);
    }

    input::-moz-placeholder {
        /* Mozilla Firefox 19+ */
        font-size: 14px;
        color: rgb(202, 73, 181);
    }

    input:-ms-input-placeholder {
        /* Internet Explorer 10+ */
        font-size: 14px;
        color: rgb(202, 73, 181);
    }
</style>

    <input type="text" placeholder="可以改变我的颜色" />

其他 : 认识动画效果

一、什么样的动效是好的动效?

1.满足用户的心理预期

我们生活在客观的物理世界,对虚拟界面上的元素难免会有些陌生感,而好的动效就要让我们觉得它不陌生。即可以让这个虚拟的世界与物理世界产生交集,用户会把自己对物理世界的认知映射到对产品的认知上。合理的动效可以满足用户的心理预期、越是符合人对物理世界认知的设计、就越容易帮助用户去预判或者理解产品的交互逻辑。

2.引导用户注意力 

一个界面上的所有元素、按照明显程度来排序,我们会得到这样一个顺序: 动态  > 色彩 >  明度
通过合理的动效,可以低成本的抓取人的注意力,让他们关注设计师想让他们关注的东西。

3.情感化设计

情感化设计的目标是在用户接触和使用产品的过程中,激发用户的正向情感,比如愉快,信任,满足;避免用户产生负向情感。

二、如何构建一个合理高效的动效

    1.通过动效暗示二维界面暗含的三维层级关系,及其暗含的操作逻辑

    2.引导用户的注意力向界面重点元素

    3.通过动态设计让情感化设计变得更生动

    4.动效的视觉效果统一,控制数量,不滥用

JS 题目: Set & Map 数据结构

Set

类似于数组,但是成员的值都是唯一的,Set 本身是一个构造函数,用来生成 Set 数据结构。

  • 初始化

Set 函数可以接受一个数组作为参数,用来初始化

        const s = new Set( [2, 3, 5, 4, 5, 2, 2]);
        console.log(s.size); //  4,重复的值会忽略

向 Set 添加值时,不会发生类型的转换

(1).5 和 “5” 是不相同的值

(2).NaN 和NaN 是相同的值(但是 我们知道!NaN ===NaN)

(3).两个对象总是不相等的

  • Set 实例的属性和方法

Set.prototype.constructor : 返回构造函数,默认就是Set 函数

Set.prototype.size: 返回Set 实例的成员总数

.add(value) : 添加某个值,返回Set 结构本身

.delete(value) : 删除某个值,返回一个布尔值,表示删除是否成功

.has(value) : 返回布尔值,表示该值是否为Set 成员

.clear() : 清楚所有成员,没有返回值

  • Set 的遍历操作

keys():返回键名的遍历器

values():返回键值的遍历器

entries():返回键值对的遍历器

forEach():使用回调函数遍历每个成员

注意:Set 结构的键名就是键值

let set = new Set(['red', 'green', 'blue']);

for (let item of set.keys()) {
  console.log(item);
}
// red
// green
// blue

for (let item of set.values()) {
  console.log(item);
}
// red
// green
// blue

for (let item of set.entries()) {
  console.log(item);
}
// ["red", "red"]
// ["green", "green"]
// ["blue", "blue"]

set.forEach((value, key) => console.log(key + ' : ' + value))
// red : red
// green : green
// blue : blue

Set 结构的实例默认可遍历,它的默认遍历器生成函数就是它的values方法

let set = new Set(['red', 'green', 'blue']);

for (let x of set) {
  console.log(x);
}
// red
// green
// blue

扩展运算符(…)内部使用for…of循环,所以也可以用于 Set 结构

let set = new Set(['red', 'green', 'blue']);
let arr = [...set];
// ['red', 'green', 'blue']
  • 数组去重

(1). 扩展运算符 (…)

将一个数组转为用逗号分隔的参数序列

let arr = [3, 5, 2, 2, 5, 5];
let unique = [...new Set(arr)];  // 先变成set结构,再变成数组
// [3, 5, 2]

(2).Array.from 方法将 Set 结构转为数组,可用此去重:

let arr = [3, 5, 2, 2, 5, 5];
let unique = Array.from(new Set(arr));
// [3, 5, 2]

Map

Map 数据结构,它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键,并且Map构造函数的参数 接受任何具有 Iterator 接口、且每个成员都是一个双元素的的数据结构。

  • 初始化
const m = new Map();
const o = {p: 'Hello World'};

m.set(o, 'content');
m.get(o); // "content"

m.set([
  ['name', '张三'],
  ['title', 'Author']
]);
m.get('name'); // "张三"

// 对同一个键多次赋值 下面两种相同吗???
m.set(1, 'bbb').set(1, 'aaa'); 
m.get(1); // aaa  最右边的有效

m.set(-0, 123);  
m.get(+0) // 123 0和-0就是一个键

m.set(true, 1);  
m.set('true', 2);
m.get(true) // 1  布尔值true和字符串true则是两个不同的键

m.set(undefined, 3);
m.set(null, 4);
m.get(undefined) // 3  undefined和null也是两个不同的键

m.set(NaN, 123);
m.get(NaN) // 123 NaN 与自身是同一个键
  • Map 实例的属性和操作方法

size:返回 Map 结构的成员总数。

set(key, value):设置键值,然后返回整个 Map 结构。如果key已经有值,则键值会被更新,否则就新生成该键。set方法返回的是当前的Map对象,因此可以采用链式写法。

get(key): 读取key对应的键值,如果找不到key,返回undefined。

has(key): 返回一个布尔值,表示某个键是否在当前 Map 对象之中。

delete(key): 删除某个键,返回true。如果删除失败,返回false。

clear(): 清除所有成员,没有返回值

  • 遍历方法

keys():返回键名的遍历器。

values():返回键值的遍历器。

entries():返回所有成员的遍历器。

forEach():遍历 Map 的所有成员。

扩展运算符(…),将Map 转化为数组结构

const map = new Map([
  [1, 'one'],
  [2, 'two'],
  [3, 'three'],
]);

[...map.keys()]
// [1, 2, 3]

[...map.values()]
// ['one', 'two', 'three']

[...map.entries()]
// [[1,'one'], [2, 'two'], [3, 'three']]

[...map]
// [[1,'one'], [2, 'two'], [3, 'three']]

http://es6.ruanyifeng.com/#docs/set-map

猜你喜欢

转载自blog.csdn.net/twfkxp/article/details/79582767
今日推荐