高嘉君的个人博客

  • 首页

  • 关于

  • 归档

Git基本操作

发表于 2016-11-07 | 更新于 2018-08-25 | 分类于 技术分享 | 阅读次数:
本文字数: 507 | 阅读时长 ≈ 1 分钟

版本移动

回退到上个版本

git reset –hard HEAD^

前进到之后版本(可以找到commit id)

git reset –hard [commit id]

前进到之后版本(找不到commit id)

git reflog
git reset –hard [commit id]

阅读全文 »

vue 跨域问题解决办法

发表于 2016-10-18 | 更新于 2018-08-25 | 分类于 技术分享 | 阅读次数:
本文字数: 608 | 阅读时长 ≈ 1 分钟

在使用vue-resource时,如果想要调用一个第三方的api,往往直接调用是不行的。控制台会提示No Access To …,翻译成中文意思就是请求的资源不允许跨域。

那么有什么办法来调用呢?笔者在网上找到了两种方法,原理基本都是代理转发:

使用proxyTable

如果你是使用vue-cli来构建的模板,进入config/index.js,修改proxyTable为:

1
2
3
4
5
6
7
8
9
proxyTable: {
'/test': {
target: 'http://news-at.zhihu.com/api/4/news',
changeOrigin: true,
pathRewrite: {
'^/test': '/latest'
}
}
}
阅读全文 »

JavaScript中创建对象的7中模式

发表于 2016-10-07 | 更新于 2018-08-25 | 分类于 技术分享 | 阅读次数:
本文字数: 9.2k | 阅读时长 ≈ 8 分钟

作者:旗smile
原文地址:http://blog.csdn.net/u014346301/article/details/52204967

ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”严格来讲,这就相当于说明对象是一组没有特定顺序的值。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。正因为这样,我们可以把ECMAScript的对象想象成散列表:无非就是一组名对值,其中值可以是数据或函数。

创建自定义对象最简单的方式就是创建一个Object的实例,然后再为他添加属性和方法,如下所示:

1
2
3
4
5
6
7
var person = new Object();
person.name = "liubei";
person.age = 29;
person.job = "shayemuyou";
person.sayName = function(){
alert(this.name);
}

上面的例子创建了一个名为person的对象,并为他添加了三个属性和一个方法。其中sayName()方法用于显示name属性,this.name将被解析为person.name,早期的开发人员经常使用这个模式来创建对象,后来对象字面量的方法成了创建对象的首选模式,上面的例子用对象字面量的语法可以写成如下这样:

阅读全文 »

一个简单的图片轮播

发表于 2016-10-04 | 更新于 2018-08-25 | 分类于 技术分享 | 阅读次数:
本文字数: 148 | 阅读时长 ≈ 1 分钟

原理

相对定位 + 绝对定位。位移采用JS实现。以后会增加一个用CSS3实现的

See the Pen wzPqvy by abcdGJJ (@abcdGJJ) on CodePen.

阅读全文 »

HTML元素坐标和尺寸

发表于 2016-10-01 | 更新于 2018-08-26 | 分类于 技术分享 | 阅读次数:
本文字数: 2.1k | 阅读时长 ≈ 2 分钟

文档坐标和视口坐标

文档坐标是指网页从<html>开始至</html>结束之间的宽高,窗口坐标是指浏览器除去菜单栏、书签栏、滚动条之后剩下的视野宽高。

获取代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//文档坐标
function getDocument() {
var documentWidth = document.documentElement.offsetWidth;
var documentHeight = document.documentElement.offsetHeight;
return {w: documentWidth, h: documentHeight}
}

//视口坐标
function getViewport(w) {
//使用指定的窗口,若不带参数则使用当前窗口
w = w || window;
//除了IE8及更早的版本以外,其他浏览器都能用
if(w.innerWidth != null) {
return {w: w.innerWidth, h: w.innerHeight}
}
//对标准模式下的IE
var d = w.document;
if(document.compatMode == "CSS1Compat") {
return {w: d.documentElement.clientWidth, h: d.documentElement.clientHeight};
}
//对怪异模式下的浏览器
return {w: d.body.clientWidth, h: d.body.clientHeight};
}

滚动条滚动位置坐标

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
function getScroll(w) {
w = w || window;
//除了IE 8以及更早的版本以外,其他浏览器都支持
if(w.pageXOffset != null) {
return {w: w.pageXOffset, h: w.pageYOffset}
}
//标准模式下的IE
var d = w.document;
if(document.compatMode == "CSS1Compat")
return {x: d.documentElement.scrollLeft, y: d.documentElement.scrollTop};
//对怪异模式下的浏览器
return { x: d.body.scrollLeft, y: d.body.scrollTop};
}
阅读全文 »

JS正则表达式(未完)

发表于 2016-09-17 | 更新于 2018-08-26 | 分类于 文章 | 阅读次数:
本文字数: 4.5k | 阅读时长 ≈ 4 分钟

什么是正则表达式?

简单来说和windows自带的搜索功能有点像,主要用于搜索字符串中某些特定的字符

测试工具

推荐三个测试正则表达式的方法,一个是去开源中国在线测试,第二个是安装一个谷歌浏览器应用RegExp Tester来调试,第三个可以在regex上进行测试

JavaScript模式匹配

JavaScript定义了RegExp()函数,用来创建表示文本匹配模式的对象。RegExp()对象定义了很多有用的方法,字符串同样具有可以接收RegExp参数的方法,如:

1
2
3
4
5
6
7
var text = 'testing: 1, 2, 3';
var pattern = /\d+/g; // 一个或多个数字
pattern.test(test) // true: 匹配成功
text.search(pattern) // 9:首次匹配成功的位置
text.match(pattern) // ['1', '2', '3']:所有匹配组成的数组
text.replace(pattern, '#'); // 'testing: #, #, #';
text.split(/D+/); // ['', '1', '2', '3']:用非数字字符截取字符串
阅读全文 »

JavaScript闭包

发表于 2016-09-08 | 更新于 2018-08-26 | 分类于 技术分享 | 阅读次数:
本文字数: 1.1k | 阅读时长 ≈ 1 分钟

闭包是指有权访问另一个函数作用域中的变量的函数。      –from 高程3

举个例子

1
2
3
4
5
6
7
8
9
function makeFunc() {
var name = "Mozilla";
function displayName() {
alert(name);
}
return displayName;
}
var myFunc = makeFunc();
myFunc();

按照常理,函数在运行完毕后局部变量便会不可用。一旦makeFunc()函数执行之后,我们会很合理的认为name不可用,但事实并不是这样。

原因是myFunc变成一个闭包了。

阅读全文 »

优雅降级和渐进增强

发表于 2016-09-05 | 更新于 2018-08-26 | 分类于 技术分享 | 阅读次数:
本文字数: 558 | 阅读时长 ≈ 1 分钟

先上一段代码抛砖引玉一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
.transition{
-webkit-transition: all .5s;
-moz-transition: all .5s;
-o-transition: all .5s;
transition: all .5s;
}

.transition{
   transition: all .5s;
   -o-transition: all .5s;
 -moz-transition: all .5s;
-webkit-transition: all .5s;
}
阅读全文 »

CSS各种居中

发表于 2016-08-27 | 更新于 2018-08-26 | 分类于 技术分享 | 阅读次数:
本文字数: 1.5k | 阅读时长 ≈ 1 分钟

水平居中

内联元素(inline or inline-*)例如<img>或者<a>

居中方法:相对父级块级元素居中对齐

1
2
3
.center-children {
text-align: center;
}

demo:

See the Pen QEZdYO by abcdGJJ (@abcdGJJ) on CodePen.

块级元素(block)

居中方法:在设置宽度的前提下,设置margin-left和margin-right为auto让它居中

阅读全文 »

JS数字千位符格式化方法

发表于 2016-08-19 | 更新于 2018-08-26 | 分类于 技术分享 | 阅读次数:
本文字数: 1.2k | 阅读时长 ≈ 1 分钟

所谓千位符格式化就是指从各位起,每隔3位增加一个逗号,即10,000这种。实现的方法大致有两种,一种是使用正则表达式;另一种是自己编写循环处理。由于我对正则表达式还不是很熟悉,所以在这里只记录循环处理方法。

转成字符处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function toThousand(arg) {
var result = [],
count = 0;
arg = (arg || 0).toString().split("");//将每一位分离
for(var i = arg.length - 1; i >= 0; i--) {
count ++;
result.unshift(arg[i]);
if(!(count%3) && i!=0) {
result.unshift(",");
}
}
return result.join(""); //重新组合成字符串
}
var num = 1122333444455551;
alert(toThousand(num));//1,122,333,444,455,551

第一种方法首先把数字转成字符串,然后将每一位存入数组。接着从末尾开始,每隔3位插入一个逗号

阅读全文 »
1234…7
abcdGJJ

abcdGJJ

这里是高嘉君的个人博客

68 日志
3 分类
56 标签
Links
  • PP_K’s Blog
  • 胡方运的博客
  • 刘熹的博客
  • 万事静心
  • 雁南之北
  • vi my.cnf
  • 绿岛之美
  • 小马姑娘
  • 技术源码分享
  • summerpro
  • 帝果
  • 猎豹园地
  • 助梦者的博客
  • FMW哈哈哈
  • 路人甲
© 2024 abcdGJJ | 站点总字数: 189k | 站点阅读时长 ≈ 2:52
由 Hexo 强力驱动|鲁ICP备15017412号-1
|
主题 – NexT.Pisces
本网站由又拍云logo提供CDN加速/云存储服务