index
艺术字体在线生成
大前端 - 张鑫旭 | oschina在线工具 | 代码格式化工具 | JSON语法检查 | 插画-自定义
Bootstrap 编辑器:含 20个类别的 230+ 常用组件,在线修改CSS ,支持导出HTML 及源码
<link href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" rel="stylesheet"> <link href="https://afeld.github.io/emoji-css/emoji.css" rel="stylesheet">
目录
2020-03-20
Data URI scheme
RFC2397中定义的Data URI scheme,目的是将一些小的数据,直接嵌入到网页中 目前Data URI scheme支持的类型有: data:text/plain,文本数据 data:text/html,HTML代码 data:text/html;base64,base64编码的HTML代码 data:text/css,CSS代码 data:text/css;base64,base64编码的CSS代码 data:text/javascript,javascript代码 data:text/javascript;base64,base64编码的Javascript代码 data:image/gif;base64,base64编码的gif图片数据 data:image/png;base64,base64编码的png图片数据 data:image/jpeg;base64,base64编码的jpeg图片数据 data:image/x-icon;base64,base64编码的icon图片数据
+new Date() === new Date().getTime(); <label for='username' accesskey='N'></label> optgroup标签: <select> <optgroup label="Swedish Cars"> <option value="volvo">Volvo</option> <option value="saab">Saab</option> </optgroup> <optgroup label="German Cars"> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </optgroup> </select> 穿透鼠标事件 div {pointer-events: none}; chrome设置调试: debugger; F12 F8 F10 F11
2019-08-10
getElementById和querySelector方法的区别
getElementById和querySelector
getXXXByXXX 获取的是动态集合,querySelector获取的是静态集合。 简单的说就是,动态就是选出的元素会随文档改变,静态的不会,取出来之后就和文档的改变无关了。 如果只要一次查找就可得到元素时,首选getXXXByXXX ; 如果需要经过多级查找,才能得到元素时,首选querySelector;
2019-03-10
eslint规范代码
npm install -g ESLint eslint --init
flex
flex: none | [ <'flex-grow'> <'flex-shrink'> || <'flex-basis'> ]
vue在移动端限制放大和滚动
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0"> <meta name="app-mobile-web-app-capable" content="yes"> .el-row { margin-bottom: 20px; &:last-child { margin-bottom: 0; } }
prettfy代码格式化
<link rel="stylesheet" href="css/prettify.css" /> <script src="js/prettify.js" type="text/javascript"></script> 显示行号 li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8 { list-style-type: decimal !important; } html文本 <code class="lang-java">int x = 0;</code> <code class="prettyprint lang-java">int x = 0;</code> <pre class="prettyprint lang-java linenums"> </pre> 可选皮肤 prettify.css (default) sunburst.css desert.css doxy.css sons-of-obsidian.css chrome 开发者工具 —> sources -> { } pretty print
bootstrap
c.有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。 如果我们把这个计数器保存在客户端,那么它起不到任何作用。
NativeScript实现在不用Webview的情况下,构建跨Android和iOS的平台应用。
以前各种PhoneGap,Cordova,Ionic等需要移动端原生Webview的支持,使用NativeScript让你只用js,xml,css就可以完成移动端开发。
2018-03-10
js本地存储解决方案(localStorage与userData)
定义tap手势
//do not prevent defaults if this is a tap gesture var isTapPointer = input.pointers.length === 1; var isTapMovement = input.distance < 2; var isTapTouchTime = input.deltaTime < 250; if (isTapPointer && isTapMovement && isTapTouchTime) { return; }
addEventListener与handleEvent
Mozilla 0.9.1 和 Netscape 6.1 之后的版本不但支持传递函数引用,也都允许直接把拥有 handleEvent 方法的对象作为 addEventListener 方法的第二参数。 这在 DOM Level 2 的接口定义中也已经做了说明: http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventListener 利用这个特性可以把任意对象注册为事件处理程序,只要它拥有 handleEvent 方法。 var o = { handleEvent : function () { alert('handleEvent executed'); } }; element.addEventListener('click', o, false); 当定义对象封装的时候,可以直接将 this 指针传入: var o = { bind : function () { element.addEventListener('click', this, false); }, handleEvent : function () { alert('handleEvent executed'); } };
定义内部函数
var untils = (function() { var me = {}; me.getTime = Date.now || function getTime () { return new Date().getTime(); }; //计算实际位置 me.offset = function (el) { var left = -el.offsetLeft, top = -el.offsetTop; while (el = el.offsetParent) { left -= el.offsetLeft; top -= el.offsetTop; } return { left: left, top: top }; }; me.extend = function(target, obj) { for(var key in obj){ target[key] = obj[key]; } }; //扩展属性值 me.extend(me, { hasTransform: _transform !== false, hasTouch: 'ontouchstart' in window, }); //初始化并定义子属性值 me.extend(me.style = {}, { transform: _transform, transitionDelay: _prefixStyle('transitionDelay'), }); return me; //返回值作为utils的函数 })(); //调用函数,而不是utils.me.getTime() utils.getTime(); idtag = document.getElementById('tag'); var offset = utiles.offset(idtag);
匿名运行函数
(function() { alert('do something!'); })();
列表浏览器style
var style = document.createElement('div').style; for(var key in style) { console.log(key + ' : " + style[key]); }
Event
三类事件,三种创建和初始化 HTMLEvents : initEvent MouseEvents: initMousrEvent UIEvents : initUIEvent 监听event document.getElementById('tag').addEventListener('tag', function(e) { alert('tag event occur!'); }, false); 创建、初始化和触发事件 function genEvent() { var event = document.createEvent('HTMLEvents'); event.initEvent('tag', false, false); idTag.dispatchEvent(event); }
npm安装
yum install nodejs yum install npm npm install -g bower npm install -global gulp npm install gulp --save-dev #全局 npm install -g grunt-cli npm install grunt --save-dev npm install load-grunt-tasks --save-dev npm list npm -global list npm config list npm config list -l 网络不行可以考虑一些国内的源试试,例如 npm config set registry="http://r.cnpmjs.org/" npm config set registry="http://registry.npm.taobao.org/" 升级到稳定版本 $ npm install -g n $ n stable
安装npm
1、下载源码,你需要在http://nodejs.org/下载 2、解压源码 tar zxvf node-v4.4.3-linux-x86.tar.gz 3、 编译安装 cd node-v4.4.3-linux-x86 ./configure --prefix=/usr/local/node make make install 4、 配置NODE_HOME,进入profile编辑环境变量 vim /etc/profile 设置nodejs环境变量, #set for nodejs export NODE_HOME=/usr/local/node export PATH=$NODE_HOME/bin:$PATH 运行: source /etc/profile 淘宝npm镜像 搜索地址:http://npm.taobao.org/ registry地址:http://registry.npm.taobao.org/ 1.临时使用 npm --registry https://registry.npm.taobao.org install express 2.持久使用 npm config set registry https://registry.npm.taobao.org // 配置后可通过下面方式来验证是否成功 npm config get registry // 或 npm info express
2018-03-04
字串处理
var a = new Array(1,2,3,4,5); var str = arr.join('-'); /*数组转换为字串*/ var b = str.split('-'); /*字串转换为数组*/ var c = [6,7,8,9]; var d = a.concat(c); //连接数组 a.push(10); a.pop(); a.sort(); a.reverse(); a.shift(); //删除第一个元素并返回值 a.unshift([11,12]); //在第一个元素前加一个值 a.slice(1,2); //返回字串片段 a.splice(4,1); //删除一个元素并返回值 a.toString(); //
类型转换
// 强制转换为Boolean 用 !! var bool = !!"c"; console.log(typeof bool); // boolean // 强制转换为Number 用 + var num = +"1234"; console.log(typeof num); // number // 强制转换为String 用 ""+ var str = ""+ 1234; console.log(typeof str); // string
CSS3中translate、transform和translation的区别和联系
translate: transform的一个方法, 元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数: 用法:transform: translate(50px, 100px); -ms-transform: translate(50px,100px); -webkit-transform: translate(50px,100px); -o-transform: translate(50px,100px); -moz-transform: translate(50px,100px); transform:CSS3中主要包括 旋转:rotate() 顺时针旋转给定的角度,允许负值 rotate(30deg) 扭曲:skew() 元素翻转给定的角度,根据给定的水平线(X 轴)和垂直线(Y 轴)参数: skew(30deg,20deg) 缩放:scale() 放大或缩小,根据给定的宽度(X 轴)和高度(Y 轴)参数: scale(2,4) 移动:translate() 平移,传进 x,y值,代表沿x轴和y轴平移的距离 所有的2D转换方法组合在一起: matrix() 旋转、缩放、移动以及倾斜元素 matrix(scale.x ,, , scale.y , translate.x, translate.y) 改变起点位置: transform-origin: bottom left; 综合起来使用:transform: 30deg 1.5 30deg 20deg 100px 200px; transition: 允许CSS属性值在一定的时间区间内平滑的过渡, 需要事件的触发,例如单击、获取焦点、失去焦点等 transition:property duration timing-function delay; property:CSS的属性,例如:width height 为none时停止所有的运动,可以为transform duration:持续时间 timing-function:ease等 delay:延迟 注意:当property为all的时候所有动画 例如:transition:width 2s ease 0s;
2017-11-10
不定参数
function test(id, i) { } 当调用时可以只带一个参数: test(id); 函数的另一种定义方式: test = function(id,i) { ) 不定参数的调用: call([thisObj[,arg1[, arg2[, [,.argN]]]]]) apply([thisObj[,argArray]]) 不定参数名必须是arguments fun.apply(object, arguments); fun.call(object, arg1, arg2, arg3); fun.apply(object, [arg1, arg2, arg3]);
SecureHeaders SecureHeaders 是 Twitter 送给 Web 开发者的一份大礼,作为一款 Web 安全开发工具,Secureheaders 能够自动实施安全相关的 header 规则,包括内容安全政策(CSP),防止 XSS、HSTS 等攻击,防止火绵羊(Firesheep)攻击以及 XFO 点击劫持等。
bower
{ bower config file: bower.json .bowerrc 'directory' : 'bowers' }
配色方案
wget -Ogithub.vim http://www.vim.org/scripts/download_script.php?src_id=23147