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

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

2017
08-26

WAMP SERVER 环境下,手机端访问电脑本地站点(localhost)

前言 移动开发盛行,移动端页面调度就显示极其重要。很多东西只有在真机下才能看到最终效果。于是我们就需要通过手机端来访问电脑中的站点来进行调试,包括但不限于样式调整。下面就分享一个移动端套装。不能说是最好的,但至少是够用。本文主要分享的东西是通过手机端访问页面,从而达到提高开发效率的目的。 准备 要想使用这个功能来提高工具效率的,我们必需先安装两个软件:Wamp Server 和 360 手...

2017
08-08

腾讯地图 API 使用指南

前言 地图功能对于我们的日常生活来说非常地重要,不管你去到哪里都需要地图为你保驾护航,这次整理了下调用腾讯地图 API 时的一些有用的东西,不为别的只为让看到的人节省点时间,时间无价,但我愿意把浪费了自己时间的一些东西分享出来,让“前人种树后人乘凉”的美好品质传承下去。 资料整理 在项目中如果我们是通过 requirejs 来管理 js 。那么你肯定会遇到这样的问题。 看这里 require.config({ ...

2017
08-05

angularjs 自定义指令(directive)

前言 一个指令(directive)就相当一个模块,可以把它当作一个功能的模块。把一个功能做成指令后,你就可以反复重用它,而不需要写多份代码。 基本用法 基本用法就直接上码了: HTML 代码 <!DOCTYPE html> <html lang="en" ng-app="yunkus"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> ...

2017
08-02

AngularJS 事件传播($broadcast() || $emit())

前言 由于某种原因我们需要在不同的 controller 之间进行通信,以达到一些特别的需要。那么我们就可以用AngularJS 给我们提供的两个方法配合使用来达到预期效果。这两个方法就是$broadcast() 和 $emit()。 费话少说 $broadcast() $broadcast() 翻译成中文就是广播。也就是上级向下级推送信息。类似于原生 JavaScript 中的事件捕获。 $emit() $emit() 与$broadcast() 正好相反。$emit() 方法向上推...

2017
07-30

Angularjs ngRoute 用法

前言 Angularjs (即Angular 1),虽然 Angular 2 及以上版本已经放出,但 Angular 1 想全身而退,似乎又有点早,所以对于前辈我们需要送上足够的尊重。所以本文只要分享的是 Angularjs 中的ngRout 插件。 ngRoute 初识 ngRoute 中包含的东西也不是很多,主要有以下一些: 1、$routeProvider(when、otherwise) 2、$routeParams (参数) 3、事件($on、$routeChangeStart、$routeChangeSuccess、rout...

2017
07-29

Angular 4.x NgPlural 指令用法

基本用法 下面是官方给出的用法样例: 官方套路 <some-element [ngPlural]="value"> <ng-template ngPluralCase="=0">there is nothing</ng-template> <ng-template ngPluralCase="=1">there is one</ng-template> <ng-template ngPluralCase="few">there are a few</ng-template> </some-element> 示例 其实 NgPlural 的用法跟 NgSwitch...

2017
07-23

Angular 4.x NgSwitch 指令用法

基本用法 下面是官方给出的基本套路,看完估计该懂的都应该懂了,不懂的联想一下也应该懂得差不多了。 用法 <container-element [ngSwitch]="switch_expression"> <some-element *ngSwitchCase="match_expression_1">...</some-element> <some-element *ngSwitchCase="match_expression_2">...</some-element> <some-other-element *ngSwitchCase="match_exp...

2017
07-18

Angular 4.x NgStyle 指令用法

基本用法 官方给出的用法就只有两种不同的形式,行内添加及或者通过一个对象添加。下面就是 NgStyle 的全部内容。 语法 <some-element [ngStyle]="{'font-style': styleExp}">...</some-element> <some-element [ngStyle]="{'max-width.px': widthExp}">...</some-element> <some-element [ngStyle]="objExp">...</some-element> 示例 套路一 行间添加...

2017
07-18

Angular 4.x NgClass 指令用法

用法 语法 <some-element [ngClass]="'first second'">...</some-element> <some-element [ngClass]="['first', 'second']">...</some-element> <some-element [ngClass]="{'first': true, 'second': true, 'third': false}">...</some-element> <some-element [ngClass]="stringExp|arrayExp|objExp">...</some-element> <some-elemen...

2017
07-16

Angular 4.x HTTP 示例

启动服务 ng serve --open 上面的命令行就是启动服务并运行 应用。这个命令行有几个作用:1.启动应用服务;2.监听文件变化。3.重建APP。 提供 HTTP Services HttpModule 并不是核心的 NgModule。HttpModule 是一个可选项。你可以引入这个包@angular/http。 您可以从@ angular / http导入,因为systemjs.config配置了SystemJS,以便在需要时加载该库。 注册 HTTP services 应用将依赖于Angular 的 htt...

2017
07-14

Angular 4.x 路由示例(Routing)

现在应用有了新的需求: 1、添加一个 Dashboard 页面 2、添加导航功能 3、用户不管在任意一个页面中点击都能进入详情 4、当用户点击一个深度链接可以打开指定英雄详情 当你完成了以上这些,用户就可以像下面这样进行导航(页面跳转): 为了能达到上面的这些需求你得给应用添加一个路由。 准备 请确保你的项目结构目录如下: 启动服务 ng serve --open 上面的命令行就是启动服务并运行 应用。这个命...

2017
07-08

Angular 4.x 服务示例(Services)

随着应用的不断完善,更多的组件需要用到 hero 数据。 你无需一遍又一遍地复制、拷贝代码,因为在这遍文章里我们要通过服务来提供数据,创建一个数据服务,然后在需要英雄数据的组件中注入这个数据服务。 通过把数据独立出来做成一个服务,可以让你的组件更轻、更爽、更专注。还可以更容易的去做单元测试。 因为数据服务总是异步,所以你需要通过 Promise-based version 的数据服务来完成数据交互。 准备 ...

2017
07-05

Angular 4.x 多组件示例(Multiple Components)

AppComponent 为我们做了很多事件,在示例的一开始它完成了单个英雄信息的显示,接着就是多个英雄列表及对应英雄的详情信息。接下来我们将会看到新的需求及新的功能。你不可能在一个组件里完成所有东西,这维护起来会很吃力。 我需要把它们拆分成几个子组件,每一个子组件都专注一种任务或者工作流。而 AppComponent 就可以成为一个简单的壳来管理那些子组件。 在这篇文章里,你要做的第一件事就是把英雄的...

2017
07-03

Angular 4.x 列表与详情示例(Master/Detail)

在这篇文章中,我们将会做一个英雄列表,并且显示选中英雄的详情。 在开始英雄列表之旅前,请确定你已经有以下文件结构(或者新创建一个项目)。 启动服务 运行下面的命令行: ng serve --open 上面的命令行就是启动服务并运行 应用。这个命令行有几个作用:1.启动应用服务;2.监听文件变化。3.重建APP。 显示 heroes 要想在页面中显示heroes ,你就得添加 heroes 。 创建 heroes 创建一个heroes 数...

2017
07-02

Angular 4.x 入门示例(Hero Editor)

创建工程 按照下面的说明创建一个名为 angular-tour-of-heroes 的项目名。 结构如下: 注:图片来自官网截图 启动应用服务 ng serve --open 上面的命令行就是启动服务并运行 应用。这个命令行有几个作用:1.启动应用服务;2.监听文件变化。3.重建APP。 声明 hero 在AppComponent中添加两个属性,一个是用于应用名的 title 属性,一个是用于英雄名的 hero 属性。 app.component.ts (AppComponent cl...

2017
07-02

Angular 4.x 工程项目搭建之旅

前言 Angular 2 时代的到来,终结了不少开发者对未来的向往,但完全独立于Angularjs(Angular 1)的实现,让我们对这个框架充满了前所未有的好奇。存在即使合理,所以Angular 2 的横空出世也就理所当然了。这是 Angular 2 的开始篇,本文主要讲解在使用 Angular 2 开发之前的一些准备(环境)。 安装环境 首先我们需要安装 Node.js 和 npm ,版本号也是有要求的,Node.js 至少是6.9.x 的版本以上,npm ...

2017
07-02

Sublime Text Snippets 模板库插件

前言 模板库插件对于我们做前端的人来说也很有历史的了,还记得以前刚做前端的时候,如果遇到经常用到的代码,就是把这些代码放到一个文件中,到用的时候就打开文件,复制粘贴完成手动版的模板库功能,但是现在就不用这个纯手工的方法了,因为我们有了Sublime Text Snippets 模板库插件。 Snippets 之旅 安装配置 安装方法也是一如既往地简单,在这里就不多说了。安装完后就可以用了,但要怎么用呢?...

2017
06-27

Sublime Text Clipboard Manager 剪切板历史管理插件

Clipboard Manager 是 Sublime Text 3 里的一个剪切板历史管理插件。虽然不是很强大,但可以让你用得爽爽哒。这样的功能真的得收藏好,到用的时候才知道它有多贴心,多么令人动容。好,费话不多说,开始! Clipboard Manager 的安装我想在这里也不用多说了,会用 Sublime Text 的都会。这篇文章只想说说它的配置及用法,我估计这才是你来到这里的原因。我相信你肯定不会白来一趟。 首选配置一些快捷键:复...

2017
06-26

Sublime Text CTags 插件

Sublime Text CTags 插件用来定位函数,这个方法跟搜索功能比起来有着异曲同工之妙,不过你不需要输入任何字符,直接键盘+鼠标键就可以找到你要找的函数。用法可以看这里:https://github.com/SublimeText/CTags。这个插件的安装方法可能会让你觉得不适,但你得挺住。 要想成功在 Sublime Text 中使用这个插件,你只需要做两件事: 1. 在 Sublime Text 的Package Control 中安装此插件。 2.下载一个压缩包...

2017
06-24

Sublime Text 让天下没有难敲的代码

前言 Sublime Text 非常地轻量,以至于可以用秒来的形容,轻量归轻量,但强大也是它的墓志铭。所以这是一篇 Sublime Text 的专卖。不要怀疑,就是它。 准备 官方下载地址:http://www.sublimetext.com/ 官方文档:http://www.sublimetext.com/docs/3/(这里是 Sublime Text 3 的文档) 官方放出的安装方法有两种,一种是 .exe 安装,一种是直接解压就可以用。至于那一种好,其实看你自己怎么用。如果是...

2017
06-24

JavaScript 实现照片墙效果

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

2017
06-21

Eclipse 搭载 Tomcat 部署 WEB 项目

前言 在本地部署 WEB  项目,对于从事前端开发的人来说也是一个必备的技能。本文 eclipse 搭载 tomcat 来配置本地服务。其实这个配置也很简单,甚至很多人会觉得也没什么必要拿来说事,但我相信会有很多小白会在这上面花了不少时间。所以此文就诞生了。 准备 下载 Eclipse 、jdk、apache tomcat。可以都下载最新的版本,也可以下载较旧的版本。这个就看你自己在这方面有什么特别的喜好的。 Eclipse EE...

2017
06-19

本地 apache tomcat 之 web 项目部署

前言 在团队开发软件时,项目的协同合作就非常重要了。这个协同合作包括很多方面,如:git 的运用,本地调试,代码封装等,但这篇文章主要是想分享下在本地调试的时的环境配置问题。也就是把 web 项目部署到本地的 apache tomcat。说真的这个部署步骤非常地简单,但如果没有了解其中的套路,估计也得折腾好长一段时间。 下载安装 工欲善其事必先利其器,所以我们现在先来把所有需要的资源都一一准备好...

2017
06-16

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

苹果系统好用是公认的,虽然有很多限制,但还是无法阻止你去用它。这一次要分享的是一个苹果系统底部的菜单效果。 效果演示: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

信微信聊天窗口输入框实现方案

微信相信你不陌生了,即使你天天用并且你也从事前端工作,但如果你没有遇到过这样的需求,你是不会留意到微信聊天窗口底部的那个输入框里的用户体验优化细节。如果我说对了,那么你可以先打开微信,然后输入很多很多内容,看看那个输入框会怎么变化。 如果你觉得这很麻烦,好,我用文字直播。当你输入的内容超过一行时,输入框的高度会自己适应你的内容以容下两行内容,但当你输入的文字达到一定的行数时,...

2017
06-13

JavaScript 实现图片放大效果

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

2017
06-10

JavaScript 组件封装的基本套路

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

2017
06-08

CSS3 创建圆形进度条

前言 对于现如今越来越讲效率的互联网时代来说进度至关重要,而反应进度的进度条也就理所当然的成了主角,那么现在问题来了,这个进度条在前端中我们要怎么用代码画出来呢?不过在本文中我们只对圆进度条进行分析,因为直线式进度条比较简单。 SVG 实现 基本实现 基本 CSS 样式 *{ padding: 0; margin: 0; } .container{ width:130px; height:130px; margin:0 auto; } H...

2017
06-07

JavaScript 面向对象的继承

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

2017
05-30