文档章节

常用代码总结(一)

CoderPeng
 CoderPeng
发布于 2015/11/17 11:31
字数 1370
阅读 2
收藏 0

一.写在前面的话

最近一直忙于项目,加班回家已好晚,洗洗就睡了!但心里知道这样的生活不能持久,人活着就应该学习!所以正好项目迭代计划完成,今天可以对最近项目中用到的一些代码,进行一次总结,也是避免今后重复造轮子。我一直对自己说:撑不住的时候,可以对自己说声“我好累”,但永远不要在心里承认说“我不行”。夜深人静的时候,想想年迈的父母,想想那些比我们更努力的人还在奋斗,我知道自己没理由不学习。最近武汉的天气闷热,时而下雨,时而大太阳,永远无法预知这转瞬即变的天气。就像我们无法预知将来的自己能成为怎样的人,将来的生活是怎样的一样,唯一能做的就是沉静下来,锤炼自己,学习进步,未雨绸缪!即使将来来临的是狂风暴雨,我们依然可以用强大的内心抵挡。

          

二.判断浏览器类型

 1 var Browser={};
 2 function GetBrowserType()
 3 {
 4   if(/msie/.test(navigator.userAgent.toLowerCase()))
 5   {
 6      Browser.Type='msie';
 7   }
 8   else if(/webkit/.test(navigator.userAgent.toLowerCase()))
 9   {
10     Browser.Type='webkit';
11   }
12   else if(/firefox/.test(navigator.userAgent.toLowerCase()))
13   {
14     Browser.Type='firefox';
15   }
16   else{
17     Browser.Type='';
18   }
19

在chrome浏览器下可以看到运行的测试结果:

三.表格表头浮动

最近项目上财务报表涉及到数据比较多,而前台全部是手拼的表格,数据量大,下拉无法看到表头,故将表头浮动起来,让用户可以看到对应项的数据看板展示。

 1 var menu_height=parseInt($("#table_BudegtAssign").offset().top);
 2 var bodyObj=$("body");
 3 var scrollLeft=0;
 4 $(window).scroll(function(){
 5    if(isGuideMode){
 6      return ;
 7    }
 8    $("#costto").find(".cost_table").css("width",$("#costto").css("width"));
 9    temp=Math.max(document.body.scrollTop||document.documentElement.scrollTop);
10    if(temp>=menu_height&&!bodyObj.hasClass("fixed"))
11    { 
12       bodyObj.addClass("fixed");
13    }
14    else if(temp<menu_height&&bodyObj.hasClass("fixed"))
15    {
16       bodyObj.removeClass("fixed");
17    }
18    
19    //解决浮动表头无法横向同步滚动问题
20    if($(this).scrollLeft()!=scrollLeft)
21    {
22        scrollLeft=$(this).scrollLeft();
23        $("divinfo tr.table_header").css({
24        'left':0-scrollLeft
25        });
26    }
27 });

代码分析:

  (1)首先,table外层嵌套一个div包裹,所以先找到内层的table,将table的宽度社会自成外层div的宽度。

 $("#costto").find(".cost_table").css("width",$("#costto").css("width"));

  (2)其次,取出页面元素或者body滚动时,距离页面top的最大值。

  temp=Math.max(document.body.scrollTop||document.documentElement.scrollTop);

(3)然后判断页面滚动时,是否大于这个距离,大于或者等于时候,为table添加fixed样式。

     if(temp>=menu_height&&!bodyObj.hasClass("fixed"))
   {
         bodyObj.addClass("fixed");
   }

(4)当滚动回到top位置时候,小于当前页面元素或者body距离top的距离大小时,取消掉表头浮动。

else if(temp<menu_height&&bodyObj.hasClass("fixed"))
{
bodyObj.removeClass("fixed");
}

四.JSON日期转换

一般后台的时间类型,如股票不经过处理直接返回给前台,那么就需要在前台进行处理,一般后台返回json日期格式为/Date(1410340800000)/.同时Js转换时间格式还包括:

var d = new Date(); 
console.log(d); // 输出:Mon Nov 04 2013 21:50:33 GMT+0800 (中国标准时间) 
console.log(d.toDateString()); // 日期字符串,输出:Mon Nov 04 2013 
console.log(d.toGMTString()); // 格林威治时间,输出:Mon, 04 Nov 2013 14:03:05 GMT 
console.log(d.toISOString()); // 国际标准组织(ISO)格式,输出:2013-11-04T14:03:05.420Z 
console.log(d.toJSON()); // 输出:2013-11-04T14:03:05.420Z 
console.log(d.toLocaleDateString()); // 转换为本地日期格式,视环境而定,输出:2013年11月4日 
console.log(d.toLocaleString()); // 转换为本地日期和时间格式,视环境而定,输出:2013年11月4日 下午10:03:05 
console.log(d.toLocaleTimeString()); // 转换为本地时间格式,视环境而定,输出:下午10:03:05 
console.log(d.toString()); // 转换为字符串,输出:Mon Nov 04 2013 22:03:05 GMT+0800 (中国标准时间) 
console.log(d.toTimeString()); // 转换为时间字符串,输出:22:03:05 GMT+0800 (中国标准时间) 
console.log(d.toUTCString()); // 转换为世界时间,输出:Mon, 04 Nov 2013 14:03:05 GMT 

function   formatDate(now)   {     
    now=now.replace(/\/Date\(/,"").replace(/000\)\//,"");
    now= new Date(parseInt((now*1000).toLocaleString().substr(0,24)));
    var year=now.getFullYear();     
    var month=jia0(now.getMonth()+1);     
    var date=jia0(now.getDate());     
    var hour=jia0(now.getHours());     
    var minute=jia0(now.getMinutes());     
    var second=jia0(now.getSeconds());     
    return year+"-"+month+"-"+date+"   "+hour+":"+minute+":"+second;     
 }
function jia0(n){
    if(n<10)
    n="0"+n;
    return n;
}
 
var date="/Date(1410340800000)/";
formatDate(date);

chrome下执行结果如图所:

说到这里想到C#中常用的日期转为总结一下:

DateTime.ToString("yyyy-MM-dd hh:mm:ss");

DateTime dt = DateTime.Now;

dt.ToString();//2005-11-5 13:21:25

dt.ToFileTime().ToString();//127756416859912816

dt.ToFileTimeUtc().ToString();//127756704859912816

dt.ToLocalTime().ToString();//2005-11-5 21:21:25

dt.ToLongDateString().ToString();//2005年11月5日

 

五.验证input输入为有效数字(是否属于合法的金融数据(包括负数))

项目中进行预算录入时候,需要验证输入的文本框是否是核发的预算数据,所以进行了处理,当输入多余符号或者小数点,以及其他非法字符,文本框会自动清除掉,确保输入的是有效的金额数字。

 

 1     $(".ValidateNumber").live('keyup', function () {
 2         var input = $(this).id;
 3         if (event.keyCode == 13) {
 4             event.keyCode = 0;
 5 
 6             document.getElementById(input).blur();
 7             event.returnValue = false;
 8             return;
 9         }
10         var re = /^(-]\+)?\d+(\.\d+)?$/;   //验证字符串是否数字
11         var number = document.getElementById(input).value;
12         var result = "";
13         var isFirstDom = true;
14         var isFirstSubtract = true;
15         if (!re.test(number) && number != "-") {
16             for (var i = 0; i < number.length ; i++) {
17                 if ((number[i].charCodeAt() <= 57 && number[i].charCodeAt() >= 48) || (number[i] == "." &&isFirstDom)||( number[i] == "-"&&isFirstSubtract)) {
18                     if((result==""&&number[i]==".")||(result=="-"&&number[i]=="."))
19                     {
20                         result += "0";
21                     }
22                  
23                 }
24                 else if (!(result != "" && number[i] == "-")) {
25                     result += number[i];
26                 }
27             }
28             if (number[i] == ".") {
29                 isFirstDom = false;
30             }
31             if (number[i] == "-") {
32                 isFirstSubtract == false;
33 
34             }
35         }
36 
37         document.getElementById(input).value = result;
38     
39     });

© 著作权归作者所有

上一篇: vs2010快捷键
下一篇: JS几种排序算法
CoderPeng
粉丝 0
博文 140
码字总数 78649
作品 0
青浦
程序员
私信 提问
《牛腩新闻发布系统》—网页中验证码的实现

【前沿】 小编在做这个项目的过程中,实现了在网页中的验证码的实现,所以小编在这将如何实现的验证码的代码段分享给大家。 【内容】 一、代码段 使用一个一般处理程序文件.ashx,WaterMark...

wxb141001yxx
2018/03/19
0
0
Html常用标记总结

今天下午看了孙鑫老师讲的关于Html的视频,下面我来小小的总结一下自己所学到的内容。 What HTML,超文本标记语言,标准通用标记语言。“超文本”就是指页面内可以包含图片、链接、甚至音乐、...

wxb141001yxx
2017/12/02
0
0
消息摘要算法示例(python和go)

常用的消息摘要算法有MD5和SHA,这些算法在python和go的库中都有,需要时候调用下就OK了,这里总结下python和go的实现。 一、python消息摘要示例 代码如下: 运行效果: 二、go语言消息摘要示...

长平狐
2012/06/08
141
1
写完这个排序算法,老板就叫我滚蛋…

(给算法爱好者加星标,修炼编程内功) 最近贴吧有个神奇的帖子,有一程序员网友发称: 然后附上他的排序算法代码,如下: 他也附上了输出结果: 乍一看,没毛病呀~ 发帖人还感叹:「现在的老...

程序员的那些事_
2018/11/09
0
0
[转]CSS clear both清除浮动

本文转载于:猿2048网站[转]CSS clear both清除浮动 DIV+CSS clear both清除产生浮动 我们知道有时使用了css float浮动会产生css浮动,这个时候就需要清理清除浮动,我们就用clear样式属性即可...

前端老手
09/05
13
0

没有更多内容

加载失败,请刷新页面

加载更多

链表中环的入口节点

给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 思路: public ListNode EntryNodeOfLoop(ListNode pHead) { if (pHead == null || pHead.next == null) ...

Garphy
23分钟前
3
0
Spring5 源码分析-容器刷新-invokeBeanFactoryPostProcessors()方法

上一篇:Spring5 源码分析-容器刷新-prepareBeanFactory()方法 该方法主要完成以下功能: 1.实例化ConfigurationClassPostProcessor,并调用ConfigurationClassPostProcessor.postProcessBe...

特拉仔
23分钟前
4
0
为什么MySQL用B+树做索引

索引这个词,相信大多数人已经相当熟悉了,很多人都知道MySQL的索引主要以B+树为主,但是要问到为什么用B+树,恐怕很少有人能把前因后果讲述的很完整。本文就来从头到尾介绍下数据库的索引。...

小致Daddy
48分钟前
7
0
网站前台的三级联动数据封装

我在进行项目时候遇到了一个进行数据封装的一个功能,进行数据的封装的功能也挺复杂,来回试了好几十种方法.最后使用的是这种方法. 使用一个pojo进行封装两个数据,一个是list一个是实体类. 具体...

小天丶羽
51分钟前
4
0
创龙基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA的SPI FLASH、硬件加密芯片

TL437xF-EVM是一款广州创龙基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA设计的开发板,底板采用沉金无铅工艺的4层板设计,尺寸为240mm*130mm,它为用户提供了SOM-TL437xF核心板的测...

Tronlong创龙
53分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部