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' >

 

 

js原生 克隆对象(支持内嵌数组的对象)

/**
* 克隆对象
*/
//函数法
function cloneObj(myObj){
  if(typeof(myObj) != 'object') { return myObj; }
  if(myObj == null) { return myObj; }

  if(myObj instanceof Array ){
    var myNewObj = [];
  }else{
    var myNewObj = new Object();
  }
  for(var i in myObj)  {
    myNewObj[i] = cloneObj(myObj[i]);
  }
  return myNewObj;
}
//原型链法
Object.prototype.objectCopy = function()
{
    var objClone;
    if ( this.constructor == Object ) {
      if(this.constructor instanceof Array){
        objClone = [];
      }else{
        objClone = new this.constructor();
      }
    } else {
      objClone = new this.constructor(this.valueOf());
    }
    for ( var key in this )
     {
        if ( objClone[key] != this[key] )
         {
            if ( typeof(this[key]) == 'object' )
             {
                 objClone[key] = this[key].objectCopy();
             }
            else
             {
                 objClone[key] = this[key];
             }
         }
     }
     objClone.toString = this.toString;
     objClone.valueOf = this.valueOf;
    return objClone;
}

 

JS实现php的printf方法

原文地址:http://www.jb51.net/article/60398.htm(我知道这不是原作者,请知道的转告我jackqqq123@sina.com)

简单版

/*

var hangstr="this is {0},{1}";
printf(hangstr,"me","guy");
//result :this is me,guy
*/
function printf() {
  var num = arguments.length;
  var oStr = arguments[0];
  for (var i = 1; i < num; i++) {
    var pattern = "\\{" + (i-1) + "\\}";
    var re = new RegExp(pattern, "g");
    oStr = oStr.replace(re, arguments[i]);
  }
  return oStr;
}

完整功能

1.%% - 返回百分号本身
2.%b - 二进制数字
3.%c - ASCII对应的字符
4.%d - 整数
5.%f - 浮点数
6.%o - 八进制数字
7.%s - 字符串
8.%x - 16进制数字 (小写字母形式)
9.%X - 16进制数字 (大写字母形式)

在 % 号和通配字符之间可用的选项包括 (比如 %.2f):

1.+????? (强制在数字前面显示 + 和 - 符号作为正负数标记。缺省情况下只有负数才显示 - 符号)
2.-????? (变量左对齐)
3.0????? (使用0作为右对齐的填充字符)
4.[0-9]? (设置变量的最小宽度)
5..[0-9] (设置浮点数精度或字符串的长度)

/*
*/
/**
*
*  Javascript sprintf
*  http://www.webtoolkit.info/
*
*
**/
sprintfWrapper = {
  init : function () {
    if (typeof arguments == "undefined") { return null; }
    if (arguments.length < 1) { return null; }
    if (typeof arguments[0] != "string") { return null; }
    if (typeof RegExp == "undefined") { return null; }
    var string = arguments[0];
    var exp = new RegExp(/(%([%]|(\-)?(\+|\x20)?(0)?(\d+)?(\.(\d)?)?([bcdfosxX])))/g);
    var matches = new Array();
    var strings = new Array();
    var convCount = 0;
    var stringPosStart = 0;
    var stringPosEnd = 0;
    var matchPosEnd = 0;
    var newString = '';
    var match = null;
    while (match = exp.exec(string)) {
      if (match[9]) { convCount += 1; }
      stringPosStart = matchPosEnd;
      stringPosEnd = exp.lastIndex - match[0].length;
      strings[strings.length] = string.substring(stringPosStart, stringPosEnd);
      matchPosEnd = exp.lastIndex;
      matches[matches.length] = {
        match: match[0],
        left: match[3] ? true : false,
        sign: match[4] || '',
        pad: match[5] || ' ',
        min: match[6] || 0,
        precision: match[8],
        code: match[9] || '%',
        negative: parseInt(arguments[convCount]) < 0 ? true : false,
        argument: String(arguments[convCount])
      };
    }
    strings[strings.length] = string.substring(matchPosEnd);
    if (matches.length == 0) { return string; }
    if ((arguments.length - 1) < convCount) { return null; }
    var code = null;
    var match = null;
    var i = null;
    for (i=0; i<matches.length; i++) {
      if (matches[i].code == '%') { substitution = '%' }
      else if (matches[i].code == 'b') {
        matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(2));
        substitution = sprintfWrapper.convert(matches[i], true);
      }
      else if (matches[i].code == 'c') {
        matches[i].argument = String(String.fromCharCode(parseInt(Math.abs(parseInt(matches[i].argument)))));
        substitution = sprintfWrapper.convert(matches[i], true);
      }
      else if (matches[i].code == 'd') {
        matches[i].argument = String(Math.abs(parseInt(matches[i].argument)));
        substitution = sprintfWrapper.convert(matches[i]);
      }
      else if (matches[i].code == 'f') {
        matches[i].argument = String(Math.abs(parseFloat(matches[i].argument)).toFixed(matches[i].precision ? matches[i].precision : 6));
        substitution = sprintfWrapper.convert(matches[i]);
      }
      else if (matches[i].code == 'o') {
        matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(8));
        substitution = sprintfWrapper.convert(matches[i]);
      }
      else if (matches[i].code == 's') {
        matches[i].argument = matches[i].argument.substring(0, matches[i].precision ? matches[i].precision : matches[i].argument.length)
        substitution = sprintfWrapper.convert(matches[i], true);
      }
      else if (matches[i].code == 'x') {
        matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
        substitution = sprintfWrapper.convert(matches[i]);
      }
      else if (matches[i].code == 'X') {
        matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
        substitution = sprintfWrapper.convert(matches[i]).toUpperCase();
      }
      else {
        substitution = matches[i].match;
      }
      newString += strings[i];
      newString += substitution;
    }
    newString += strings[i];
    return newString;
  },
  convert : function(match, nosign){
    if (nosign) {
      match.sign = '';
    } else {
      match.sign = match.negative ? '-' : match.sign;
    }
    var l = match.min - match.argument.length + 1 - match.sign.length;
    var pad = new Array(l < 0 ? 0 : l).join(match.pad);
    if (!match.left) {
      if (match.pad == "0" || nosign) {
        return match.sign + pad + match.argument;
      } else {
        return pad + match.sign + match.argument;
      }
    } else {
      if (match.pad == "0" || nosign) {
        return match.sign + match.argument + pad.replace(/0/g, ' ');
      } else {
        return match.sign + match.argument + pad;
      }
    }
  }
}
sprintf = sprintfWrapper.init;