(function(){})() 立即执行函数(匿名函数)

来源:【知乎-前端学习指南】方应杭-https://zhuanlan.zhihu.com/p/22465092

什么是立即执行函数

/*先创建匿名函数,然后立即进行调用。
*/
function(){alert('我是匿名函数')}()

 

例题,为什么点击打印出来的都是6

/*
*/
var liList = ul.getElementsByTagName('li')
for(var i=0; i<6; i++){
  liList[i].onclick = function(){
    alert(i) // 为什么 alert 出来的总是 6,而不是 0、1、2、3、4、5
  }
}

因为此处,i的值是全局变量,并没有单独为每个li赋值i。

而使用立即执行函数,可避免变量污染。

/*
*/
var liList = ul.getElementsByTagName('li')
for(var i=0; i<6; i++){
  !function(ii){
    liList[ii].onclick = function(){
      alert(ii) // 0、1、2、3、4、5
    }
  }(i)
}

 

 

java jq 跨域问题、Json数据传递 【Access-Control-Allow-Origin】

来源:http://yuxisanren.iteye.com/blog/2019666

Java服务器端

/*
*java
*coder:宝贤
*/
 String callback = request.getParameter("jsonpCallback");  
		String result = callback + "(" +output+ ")";  
		response.setContentType("text/html");
		response.setCharacterEncoding("UTF-8");
		PrintWriter out = response.getWriter();
		
		response.addHeader("Access-Control-Allow-Origin","*");//'*'表示允许所有域名访问,可以设置为指定域名访问,多个域名中间用','隔开
		
		if("IE".equals(request.getParameter("type"))){
	           response.addHeader("XDomainRequestAllowed","1");
	       }
	       out.print("success");
	       
		out.print(result);
		out.close();

前端Js

/*
*js
*coder:janing
*/

url="http://xxxxxx/Pay2/View2.java";
_post="";
$.ajax({
  "url" : url,
  "type":"post",
  "data":_post,
  "success":function(ret){
    console.log($.parseJSON(ret));
  }
})

 

css动画 animation-timing-function 缓动效果取值

/*
*/

linear:
线性过渡。等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0)
ease:
平滑过渡。等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0)
ease-in:
由慢到快。等同于贝塞尔曲线(0.42, 0, 1.0, 1.0)
ease-out:
由快到慢。等同于贝塞尔曲线(0, 0, 0.58, 1.0)
ease-in-out:
由慢到快再到慢。等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)
step-start:
等同于 steps(1, start)
step-end:
等同于 steps(1, end)
steps(<integer>[, [ start | end ] ]?):
接受两个参数的步进函数。第一个参数必须为正整数,指定函数的步数。第二个参数取值可以是start或end,指定每一步的值发生变化的时间点。第二个参数是可选的,默认值为end。
cubic-bezier(<number>, <number>, <number>, <number>):
特定的贝塞尔曲线类型,4个数值需在[0, 1]区间内

 

监测鼠标滚轴动作

/*
*/
<label for="wheelDelta"> 滚动值:</label>(IE/Opera)<input id="wheelDelta" type="text" />

<label for="detail"> 滚动值:(Firefox)</label><input id="detail" type="text" />

<script type="text/javascript">
     var oTxt=document.getElementById("txt");
    /***********************
    * 函数:判断滚轮滚动方向
    * 作者:walkingp
    * 参数:event
    * 返回:滚轮方向 1:向上 -1:向下
    *************************/
    var scrollFunc=function(e){
        var direct=0;
        e=e || window.event;

        var t1=document.getElementById("wheelDelta");
        var t2=document.getElementById("detail");
        if(e.wheelDelta){//IE/Opera/Chrome
            t1.value=e.wheelDelta;
        }else if(e.detail){//Firefox
            t2.value=e.detail;
        }
        ScrollText(direct);
    }
    /*注册事件*/
    if(document.addEventListener){
        document.addEventListener('DOMMouseScroll',scrollFunc,false);
    }//W3C
    document.onmousewheel=scrollFunc;//IE/Opera/Chrome/Safari
    </script>

 

Atom快捷键(Windows)

来源:https://segmentfault.com/a/1190000005640125

文件操作

ctrl-shift-d?复制当行到下一行
ctrl-shift-s 保存所有打开的文件
ctrl-shift-o 打开目录
ctrl-p 从添加的项目中查找文件
ctrl-f 向下翻页
ctrl-b 向上翻页
alt-bctrl-left 移动到单词开始
alt-fctrl-right 移动到单词末尾
ctrl-g 移动到指定行
ctrl-j 将下一行与当前行合并
ctrl-up, ctrl-down 使当前行向上或者向下移动
ctrl-enter,ctrl-shift-enter在当前行的下一行或上一行插入新的一行
ctrl-k ctrl-l使当前字符小写
ctrl-k ctrl-u使当前字符大写
ctrl-shift-D 复制当前行到下一行
ctrl-shift-K 删除当前行
ctrl-u删除到当前行开始
alt-backspacectrl-alt-h删除到当前子单词开始
alt-deletectrl-alt-d删除到当前子单词结束
ctrl-backspacectrl-walt-h删除到当前单词开始
alt-dctrl-delete删除到当前子单词开始
alt-left: 'editor:move-to-previous-subword-boundary'
alt-right: 'editor:move-to-next-subword-boundary'
alt-shift-left: 'editor:select-to-previous-subword-boundary'
alt-shift-right: 'editor:select-to-next-subword-boundary'

选取

alt-shift-Bctrl-shift-left 选取至字符开始
alt-shift-Fctrl-shift-right 选取至字符结束
ctrl-a 全选
alt-f3选取文档中和当前单词相同的所有单词
shift-end 选取至本行结束
ctrl-l 选取一行,继续按回选取下一行
ctrl-d 选取文档中和当前单词相同的下一处

目录树操作

ctrl-\ctrl-k ctrl-b 显示或隐藏目录树
a 在目录树下添加文件
d 将当前文件另存为
alt-rightalt-left 展开(隐藏)所有目录
ctrl-k left 在左半视图中打开文件
ctrl-k down在下半视图中打开文件
ctrl-k up 在上半视图中打开文件
ctrl-k right 在右半视图中打开文件
ctrl-shift-C 复制当前文件绝对路径

其它

ctrl-m 相应括号之间,html tag之间等跳转
ctrl-alt-up, ctrl-alt-down 增加上(下)一行光标
ctrl-shift-u 调出切换编码选项
ctrl-f 在buffer中查找
ctrl-shift-f 在整个工程中查找
alt-ctrl-[ 折叠
alt-ctrl-] 展开
ctrl-alt-i调用控制台
ctrl-/注释
ctrl-alt-c打开color-picker

svg 图表-圆环

css

.chart-circle-bg{
	fill:none ;
	stroke:#E4EAF5 ;
	stroke-width:10;
	stroke-miterlimit:10;
	cx:100;
	cy:100;
	r:55.056;
		    
}
.chart-circle-line{
	fill:none;
	stroke-linecap: round;
	animation: spin 4s infinite linear;
	stroke-width:10;
	stroke-miterlimit:10;
}

js

<script>
$('input').bind('input propertychange', the_change);

function the_change(){
	var it = $(this);
	var css=($(this).attr("class"));
	var target=$(".chart-circle-line");
	var js_target=document.getElementsByClassName("chart-circle-line")[0].getBoundingClientRect();
	var h=js_target.height||Bottom - Top;
	var w=js_target.width||Right - Left;
	switch (css){
	case "ray":
		target.css("stroke-dasharray",it.val()/100*h*Math.PI+" "+it.val()/100*w*Math.PI)
		break;
	case "set":
		target.css("stroke-dashoffset",it.val()/100*h*Math.PI)
		break;
	}
}
</script>

html

<svg class="f3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" width="200px" height="200px" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve">
<g >
	<circle class="chart-circle-bg" />
</g>
<defs class="">
		<linearGradient id="orange_red" x1="0%" y1="0%" x2="0%" y2="100%">
		<stop offset="0%" style="stop-color:#FF675C;stop-opacity:1"/>
		<stop offset="100%" style="stop-color:#FF325C;stop-opacity:1"/>
		</linearGradient>
	</defs>
<g >
	<path class="chart-circle-line" xmlns="http://www.w3.org/2000/svg"  
	stroke="url(#orange_red)" 	
	d="M100,44.944c30.407,0,55.056,24.649,55.056,55.056   c0,30.406-24.648,55.057-55.056,55.057c-30.406,0-55.056-24.65-55.056-55.057C44.944,69.593,69.594,44.944,100,44.944"
	/>
</g>
</svg>
<input class='ray' >
<input class='set' >