JavaScript 中的定时器执行机制大解密

前言 JavaScript 中的定时器你一定用了不少,比如 setTimeout、setInterval 等。但我们对他的了解又有多少呢?我承认我以前一直用它只是因为他能为我延迟几秒执行某些操作,它确确实实为我解决了不少问题,还有一些比较“奇葩”(由于技术水平有限,未能找出原来)的问题也是通过定时器来解决的。但我慢慢地发现,我对定时器的了解也只是表面上的,而它的运行机制我却不闻不问,也就是我只看到了它成功的一...

2018
01-28

对象(Object)的遍历方法整理

前言 对象的遍历与我们形影不离,不管是数组还是一个形如{ key:value} 的对象,很多时候我们都得遍历一个对象。为此有必要把遍历对象的方法整理成章,以备必时之需。 数组遍历 for 循环 for 循环可以说是最原始的遍历方法,常常被用来遍历数组。 let arr = [1,2,3,4,5,6,7]; for(var i=0;i<arr.length;i++){ console.log(i,arr[i]); } forEach() forEach() 方法是用来遍历数组的,它可以...

2017
12-20

数组(Array)的属性和方法

平时数组使用得比较多,但常常会有些方法没记住它的用法,比如:某些方法眼熟但具体的用法却不太清楚。这样的情况在我身体已经发生了很多次,所以我有必要把数组的一些属性和方法整理出来,即使自己忘记了也可以有更加直接的查阅入口。说走就走的旅程,数组可以大致分成两块属性和方法。 Array 属性 Array 的属性其实也不多,那那么两三个,具体如下: Array.length 返回数组成员个数。 Array.prototy...

2017
12-17

JavaScript 视频文字弹幕效果

前言 视频弹幕效果到处都是,这种交互大大地改变了网友之间的交流方式 ,让你看视频的时候,可以发评论,可以看到别人的评论,真是一石三鸟。用户体验没得说,所以本文就是将要分享这个效果。上码! 各种套路 套路一 简单的 CSS 样式如下 : 样式看这里 *{ padding: 0; margin: 0; } html,body{ width: 100%; height: 100%; overflow: hidden; } .stage{ posit...

2017
11-14

JavaScript 实现长按功能(满满的套路)

前言 在某种特定场景下,有时候我们需要用到长按功能,比如长按弹出操作界面,不过,在 PC 端的话就用得比较少,本文主要是针对移动端操作的,毕竟移动端手势操作是必不可少。 在开始之前我们先来看看基本的 HTML 代码: 简单得….. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JavaScript 实现长按效果 - 云库前端</ti...

2017
11-14

input 输入框在项目开发中的各种需求实现

前言 在前端开发中,当我们遇到 input 输入框的时候,需求总是会提出各种要求,让你做出来的东西更可靠,更人性化。所以在这里我们有必要把 input 输入框的一些常用的实现整理出来。 input 之旅 在这里我们尽可能的把所有涉及到的需要的实现方法都为大家整理出来,如果你觉得有些还没列出,那么可以留言,我会作进一步的完善。 首先把基础的 HTML 代码贴出来: DEMO HTML 代码 <!DOCTYPE html> ...

2017
11-13

JavaScript 实现浏览器全屏模式及退出全屏模式

这是一个不怎么常用的 JavaScript 交互效果,一旦用到了,你就知道书到用时方恨少的痛苦了。所以还是有备无患,自己先过一篇即使有个印象也未常不是一件好事。 HTML 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JavaScript 实现浏览器全屏及退出全屏 - 云库前端</title> <meta name="viewport" content="width...

2017
11-12

JavaScript 中的 this 关键字

前言 关于 JavaScript 中的 this 关键字相信你已经早已感受到它的存在了,或者对他也已经有一知半解了,但本文要分享的关于 this 的东西你确定全都知道吗?可能不一定! this 之旅 this 总是指向一个对象,这一点已经家喻户晓了,包括你也不例外。但在不同的情况下它的指向也是不一样的,得具体情况具体分析。我们通过几个例子来感受感受 this 的博大精深。 场景一 直接打印 console.log(this); //...

2017
10-26

JavaScript 关于元素滚动的多种场景

在这里文章虽然说是多种场景,其实说白也就是元素的内容滚动,只是对象不一样罢了(如:body 或者 div)。怎么实现元素滚动到其内容的指定位置?实现元素滚动到底部有什么应用场景?等这些问题一个个从脑中浮现。现在让我们来看看怎么实现。 首先我们最常用见或者最常用的就是浏览器默认的滚动元素 body,比如滚动到页面指定的位置,或者滚动到页面的底部,这太常见了。但是在本文中我们不用 body 来作为例...

2017
10-19

JavaScript 浅拷贝与深拷贝(对象合并)

在平时的开发中我们经常会用对对象进行合并,简单的合并,比如:用户参数也默认参数的合并。有时候需要更深层次的合并,如复杂对象的合并。而这些合并就会涉及到 JavaScript 中的浅拷贝和深拷贝。浅拷贝的思路和实现也非常的简单,深拷贝相对来说就复杂一些。 浅拷贝 方法一 看过来 // ES6 方法 浅拷贝 var a1 = { a: 1 }; var a2 = { b: 2 }; var a3 = { c: 3 }; var obj = Object.assign(a1, a2...

2017
10-16

Canvas 画圆

HTML 代码(index.html) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas 画圆 - 云库前端</title> <link rel="stylesheet" href="index.css"> <script src="index.js"></script> </head> <body> <canvas id="canvas"></canvas> <script> var ican...

2017
10-15

JavaScript HTML DOM Document 对象属性和方法

Document 对象属性 属性 描述 body 提供对 <body> 元素的直接访问。 对于定义了框架集的文档,该属性引用最外层的 <frameset>。 cookie 设置或返回与当前文档有关的所有 cookie。 domain 返回当前文档的域名。 lastModified 返回文档被最后修改的日期和时间。 referrer 返回载入当前文档的文档的 URL。 title 返回当前文档的标题。 URL 返回当前文档的 URL。 Docum...

2017
10-15

JavaScript HTML DOM Element 对象属性和方法

属性 / 方法 描述 套路 element.accessKey 设置或返回元素的快捷键。 element.attributes 返回元素属性的 NamedNodeMap。 element.childNodes 返回元素子节点的 NodeList。 element.className 设置或返回元素的 class 属性。 element.clientWidth 返回元素的可见宽度(包括padding)。 element.clientHeight 返回元素的可见高度(包括padding)。 element.offsetWidth 返回元素的宽度...

2017
10-14

ES6 let cost 基本命令

说明迟,那时快,ES6 说来就来,作为前端水军不得不默默地开始 ES6 的学习之旅,时不我待,该拥抱时就必需拥抱。那就让我们开始吧! 与之前的变量声明不同,到了ES6 分工就非常地明确了。不像之前的简单粗暴一个 var 走遍天下都不怕。如今 ES6 把 var 折成了两个一个是 let 一个是 cost。但是在程序中你依然可以同时使用这三个命令。那么它们之间有什么异同呢? 首先我们先来看看ES6 中的两个基本命令是如...

2017
10-12

JavaScipt 中函数声明与函数表达式的区别

在 JavaScript 中函数可以说是无处不在,没有了它,在 JavaScript 的世界里你就寸步难行,心有余而力不足。但在这篇文章里,我们不对函数作过多的分享,而是来看看 JavaScipt 中函数声明与函数表达式之间有什么区别。虽然这是一个很小的点,那是知道了有这么一回事,在以后的开发中你很有可能会快人一点。 要想知道它们之间的区别,我们只需要来看看两段代码就可以了: 函数声明 runDeclaration(); funct...

2017
10-11

本地存储 LocalStorage 封装

看完题目相信你应该知道这篇文章将会是什么样的内容了,对没错,直接贴出代码。下面就是把本地存储 LocalStorage 封装了下,在实践开发中不用第次都要重写一遍或者拷贝一份,要用本地存储时就直接引入 这个 localstorage.js 就可以了。这个文件代码真的不多: 看这里 /* * @Author: 朝夕熊 * @Date: 2017-10-10 21:44:14 * @Last Modified by: 朝夕熊 * @Last Modified time: 2017-10-10 22:32:42...

2017
10-10

JavaScript 判断对象是否为空

前言 在 JavaScript 的世界我们会遇到很多种意想不到的情况,更不用说如何判断对象是否为空这样的常用技巧了。本文不会长,几段代码就结束了,所以相信你应该可以在两分钟内看完。 怎么判断一个对象是否为空呢?套路也不多,就几种。我就把它们罗列出来,希望你喜欢: 空对象之旅 方法一:JSON.stringify() JSON.stringify(),用于把一个对象解析成字符串,返回值为JSON 文本的字符串。 看这里 var ...

2017
09-14

JavaScript 正则表达式用法及常用的正则表达式整理

前言 正则表达式功能之强大,不用多说,不敢想象没有正则表达式的程序世界里会是怎么样的。正则表达式是一种匹配的模式,用于匹配一个或者多个字符串。 字符串常用的一方法如: indexOf 查找下标(通过字符串) substring 获取子字符串(有两个参数,开始位置,结束位置,但不包含结束位置) charAt 获取某个字符(通过下标) split 分割字符获取数组 但在这里我们通过正则来完成字符串的一些操作。 判...

2017
08-26

JavaScript 实现照片墙效果

照片墙效果相信你也看到过不少,在这里我们也尝试去做了一个,没有炫丽的效果,没有多余的文字,一时按捺不住成就感,在此把在大神眼里不值一提的照片墙效果献上。请多多包含! HTML 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>照片墙效果-云库前端</title> <link rel="stylesheet" href="./css/style.css">...

2017
06-21

苹果系统菜单动感地缩放效果

苹果系统好用是公认的,虽然有很多限制,但还是无法阻止你去用它。这一次要分享的是一个苹果系统底部的菜单效果。 效果演示:http://yunkus.com/demo/apple-macos-menu/ CSS 代码 .menuBox{ position: absolute; bottom: 0; left: 0; width: 100%; text-align: center; } .menuBox img{ width: 64px; height: 64px; cursor: pointer; } HTML 代码 <div id="...

2017
06-15

JavaScript 实现图片放大效果

图片放大效果在商城类网站最为党见。这种效果不仅提升了网站的性能,切省了流量,还能带来更好的用户体验,何乐而不为。当你在网上商城看某个产品时,注重细节的你是不是会很自然地去把鼠标放到左边的小图片上查看产品的大图。这种效果可能会让人的购买欲倍增,毕业图片都是做得很高大尚的。好了现在回到正题上,这个效果要怎么做? 首先人们得理清下思路,想想这个功能都有会涉及到什么东西。不要觉得这个...

2017
06-10

JavaScript 组件封装的基本套路

这篇文章没有过多的言语来说明什么是组件封装,封装组件有什么好处,这里只会贴出一段代码以便自己日后查阅,如果你碰巧看到了这篇文章,那么我只能跟您说声抱歉了。因为没有过多的说明,可能会让你看完之后更加困惑。所以你用眼睛扫一下,觉得没意思的话,我建议你就不用再往下看了。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>...

2017
06-08

JavaScript 面向对象的继承

什么是面向对象的继承 继承:在不影响影响父类功能及完整性的情况下,子类可以继承父类的一些功能。一个子类(派生类)可以继承自另一个父类(基类),派生类可以覆盖来自基类的方法。在基类中调用派生类对象的方法时,如果这个方法被派生类覆盖,那么应调用派生类的方法(多态) JavaScript 会沿着原型链查找方法,一旦在派生类找到了同名方法,就不会使用基类的方法。 我们先来创建一个自定义对象(父...

2017
05-30

JavaScript 中面向对象的属性和方法

JavaScript 中面向对象的属性和方法比如 hasOwnProperty、constructor ,虽然不是很常用,但是了解它们对于学习 JavaScript 还是有帮助的。下面我们就来看看这些属性和方法 hasOwnProperty() hasOwnProperty:判断是否是对象自身下面的属性 var arr = []; arr.Site = "云库网"; Array.prototype.siteDomain = "yunkus.com"; console.log(arr.hasOwnProperty("site")); // true console.log(arr.hasOw...

2017
05-30

JavaScript 中的包装对象

请看下面这几行代码: var str = "yunkus"; str.length str.charAt(0); str.toUpperCase(); console.log( typeof str ); 相信像上面这样写,你肯定不会觉得奇怪,因为平时你也是这么使用的。但如果你仔细想一想,心里就会有一个疑惑:为什么基本类型也有属性和方法,这不是对象的专利吗?我们都知道 str 是一个字符串类型,也就是基本类型,为什么还会有属性和方法,它是通过什么方式实现的? 没错就是...

2017
05-28

JavaScript 面向对象编程详解

前言 JavaScript 面向对象编程估计你平时也看到了不少,只不过你可能不知道它就是 JavaScript 面向对象编程,这也就是为什么你会来到这里的原因。话不多说,我们马上开始面向对象之旅。 什么是面向对象编程 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)简单的说就是用对象的思想去编程,也就是创造一个对象,然后往这个对象身上添加若干属性和方法。 面向对象编程特点 1.封装...

2017
05-22

JavaScript 事件冒泡与事件捕获详解

在前端里,说到交互我们就不得不提提 JavaScript 中的事件,而事件又分为很多种,比如:点击事件。但这篇文章的主要内容不是分析有什么事件,而是在另一个角度来了解事件机制。正如标题所说的冒泡以及捕获。 一个事件被触发后,一般会有三个不同的阶段:捕获阶段、目标阶段和冒泡阶段。 捕获阶段:从文档的根节点开始流到目标节点。 目标阶段:当到达目标节点时,进入目标阶段。 冒泡阶段:冒泡正好跟捕获...

2017
04-30

按需加载图片(图片懒加载)

前言 按需要加载图片,这是一个非常实用的功能,不仅可以提高网站的性能,还可以为你节省流量。对于用虚拟主机的朋友来说,如果你的网站是一个图片网站或者图片比较多的网站,那么图片懒加载功能真不能少。 原理 实现图片懒加载的原理也非常地简单,默认情况下不给图片 scr 属性赋值。当满足一定的条件时才把图片地址取出来赋值给 src 属性。一般地,这上为了让网站页面有更好的用户体验,我们都会预先...

2017
04-18

RequireJS 教程详解

什么是 RequireJS RequireJS 用于代码模块化,RequireJS 以一个相对于 baseUrl 的地址来加载所有的模块代码,使用 RequireJS 来开发,可以很好的避免变量污染全局环境。它的模块管理遵守AMD (Asynchronous Module Definition)规范,通过 define 方法来完成模块的定义以及模块代码的加载。 RequireJS 使用 引入 require.js <script src="js/require.js" defer async="true" data-main="js/main"&...

2017
04-02

移动端列表索引效果

移动端列表索引效果非常实用,比如:手机通讯录。你可以根据字母来查找对应的内容。下面这个例子我是参考了 MUI 里的列表索引效果,写出来的代码,代码的结构基本一样,但功能会少一些,去掉了搜索框搜索,只有单纯的字母索引,不过这也基本够用了。这个效果是基于 jQuery 库的,所以在用的时候就记得引入 jQuery 库。 为了版面美观我专门用横屏截了个图,正如你所看到的,样板还是挺好看的,那功能怎么样...

2017
03-22