yjxf8285@qq.com

JavaScript

JS将所有对象s的属性复制给对象r

Posted By 刘晓帆 | 889 views

原生写法:

/**
* 将所有 s 的属性复制给 r
* @param r {Object}
* @param s {Object}
* @param is_overwrite {Boolean} 如指定为 false ,则不覆盖已有的值,其它值
* 包括 undefined ,都表示 s 中的同名属性将覆盖 r 中的值
*/
mix: function (r, s, is_overwrite) {

Read More

JavaScript

JS操作字符串转换为数值并取整

Posted By 刘晓帆 | 652 views

var result = ‘3.1415926’ | 0; // 3

Read More

JavaScript

JS产生漂亮的随机字符串

Posted By 刘晓帆 | 2,232 views

Math.random().toString(16).substring(2); //8位
Math.random().toString(36).substring(2); //16位

Read More

JavaScript

JS取数组的最大和最小值

Posted By 刘晓帆 | 613 views

Math.max.apply(Math, [1,2,3]) //3
Math.min.apply(Math, [1,2,3]) //1

Read More

JavaScript

短路运算

Posted By 刘晓帆 | 1,599 views

var something = ‘xxxx’;

console.log( true && something ); //-> ‘xxx’;
console.log( false && something ); //-> false
console.log( true || something ); // -> true
console.log( false || something ); //-> something

Read More

Plugins/Tools

WebStorm 打开多个项目的方法

Posted By 刘晓帆 | 16,734 views

WebStorm默认情况下一次只能打开一个项目,这点很不爽,其实是可以设置的。
方法:
File -> settings -> Directories -> Add Content Root 中添加你当前的工程目录。

Read More

JavaScript

鼠标滚轮控制页面滚动(山寨苹果官网iPhone5s的滚屏动画实例)

Posted By 刘晓帆 | 4,539 views

最近发现这种效果很流行,自己也写一个,以后应该能用上。
技术重点应该就是鼠标滚轮的兼容性写法那里,因为jquery没有封装鼠标滚轮事件,用原生JS写的话每个浏览器的标准都不一样,很麻烦。
右侧边栏按钮点击滚动页面的效果就是普通的图片滚动展示效果而已,没什么难度。
下面是代码,我都放在一个页面里面,为了可以直接运行看效果。

<!–
Created on : 2013-12-18 16:26:23
Author : Liuxiaofan
–>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
Read More

JavaScript

点击页面空白隐藏层

Posted By 刘晓帆 | 827 views

最近发现我之前做这个效果的时候思路是错误的,今天修改了一下方法,因为之前的方法会在按钮上阻止事件冒泡,从而导致一个页面同时存在多个此功能的按钮出现点其他按钮不能隐藏层的bug。
下面的方法才是正确的:
HTML

<span class="search">我是按钮1</span><span><a class="clickme" href="#">我是按钮2</a></span>
<div class="div_d" style="display: none;">我是1那个弹出层</div>
<div class="div_e" style="display: none;">我是那个222222的2弹出层</div>

JS

/**
* 点击按钮显示层,点击其他地方隐藏层
* @param {str} btnName
* @param {str} divName
*/
var tarClickTip = function(btnName, divName) {
$('.' +

Read More

JavaScript

switch的替代品

Posted By 刘晓帆 | 863 views

曾经有人说过,真正好的程序是没有if..else的,当然switch还不如if..else。JS规范里面是禁止使用switch的。
命令对象(command object)就完美的解决了这个问题。
引用一篇国外的博客提到的:
JavaScript 有着良好的控制流程语句,这些语句往往用花括号包裹着。不过有个例外:switch … case 语句。switch … case 的奇怪之处在于你必须在每个 case 末尾加上关键字 break,以防止流程控制权穿越进入下一个 case 语句中。穿越是指让多条 case 执行的手法,当未遇见预期的 break 时,控制权就自动交到下一句 case 手中。然而,就如同分号与花括号一样,你很有可能会在不经意之间忘了写 break,当这发生时,后期的错误排查就比较痛苦,因为语句本身是没错的。因此,配对地写 case … break 是个好习惯。
我们通常讲,JavaScript 有着优雅的对象字面量与顶级函数,这些都使得特定的方法查询变的非常简单。为方法查询所创建的对象,我们称之为 活动对象(action object) 或 命令对象(command object),它被运用在许多软件设计模式中,包括强大的而有用的命令模式。
实例:
// switch 方法
function testSwitch(name)

Read More

Plugins/Tools

Netbeans统一UTF-8编码的方法

Posted By 刘晓帆 | 744 views

Netbeans打开文件的默认编码并不是UTF-8,所以需要设置一下,不然总是中文乱码什么的。
1.找到你的Netbeans安装目录下的etc文件夹,如C:\Program Files\NetBeans 6.0 M9\etc
2.用记事本打开netbeans.conf
3.找到netbeans_default_options这一句(没带#号的,带#号的是注释)
4.在最后面加上一个空格,再加入-J-Dfile.encoding=UTF-8
如我现在的设置:
netbeans_default_options=”-J-DAM_CONFIG_FILE=\”C:\Sun\AppServer\domains\domain1\config\AMConfig.properties\” -J-Dcom.sun.aas.installRoot=\”C:\Sun\AppServer\” -J-Xms128m -J-Xmx512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Dapple.laf.useScreenMenuBar=true -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled -J-Dfile.encoding=UTF-8″

Read More