View simple raf
// requestAnimationFrame的向下兼容处理 | |
if (!window.requestAnimationFrame) { | |
window.requestAnimationFrame = function(fn) { | |
setTimeout(fn, 17); | |
}; | |
} | |
于是,动效绘制大致路数会变成这样: | |
var canvas = document.querySelector('canvas'); | |
var context = canvas.getContext('2d'); |
View gist:07db6b4f1b376b24e9176cfda5a48a2e
# first: | |
lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do sudo rm /usr/local/${f}; done | |
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.* | |
# To recap, the best way (I've found) to completely uninstall node + npm is to do the following: | |
# go to /usr/local/lib and delete any node and node_modules | |
cd /usr/local/lib | |
sudo rm -rf node* |
View 判断浏览器tab离开和进入.js
(function() { | |
var hidden = "hidden"; | |
// Standards: | |
if (hidden in document) | |
document.addEventListener("visibilitychange", onchange); | |
else if ((hidden = "mozHidden") in document) | |
document.addEventListener("mozvisibilitychange", onchange); | |
else if ((hidden = "webkitHidden") in document) | |
document.addEventListener("webkitvisibilitychange", onchange); |
View 拦截浏览器滚动默认行为
$('body').on('touchmove', function(e){e.preventDefault()}); |
View 让所有的浏览器都支持 getElementsByClassName.js
var getElementsByClassName = function (searchClass, node,tag) { | |
if(document.getElementsByClassName){ | |
var nodes = (node || document).getElementsByClassName(searchClass),result = []; | |
for(var i=0 ;node = nodes[i++];){ | |
if(tag !== "*" && node.tagName === tag.toUpperCase()){ | |
result.push(node) | |
} | |
} | |
return result |
View json 排序
var willSort = [ | |
{ | |
name:'shangwenhe', | |
age:25, | |
height:170 | |
}, | |
{ | |
name:'zhangsan', | |
age:31, | |
height:169 |
View 函数聚合1
//取得ID | |
var $ = function (id) { | |
return "string" == typeof id ? document.getElementByIdx_x(id) : id; | |
}; | |
// 对象继承 | |
var Extend = function(destination, source) { | |
for (var property in source) { | |
destination[property] = source[property]; |
View 脚本 LoadScript
function loadScript(url, callback){ | |
var script = document.createElement ("script") | |
script.type = "text/javascript"; | |
if (script.readyState){ //IE | |
script.onreadystatechange = function(){ | |
if (script.readyState == "loaded" || script.readyState == "complete"){ | |
script.onreadystatechange = null; | |
callback(); | |
} | |
}; |
View URL解析
function ParseURL(arg){ | |
var url = arg, | |
regexp = /([^\?]*)\??([^#]*)#(.*)/g, | |
regexpParam = /([^&]*)=([^&]*)/g, | |
urlExec = regexp.exec(url), | |
_host = urlExec[1], | |
_urlparam = urlExec[2], | |
_hashparam = urlExec[3]; | |
View 控制台躲车游戏
(function(){ | |
if(!window.console){window.console ={log:function(){}};return;} | |
var me = 19; | |
var Star = function(){ | |
this.x=0; | |
this.speed = 1; | |
this.y=0; | |
} | |
var score = 0; | |
var strs = function(){ |
NewerOlder