文档章节

常用JS方法

陈映亮
 陈映亮
发布于 2015/03/24 09:48
字数 942
阅读 14
收藏 0
/***** 固定定位使用方法 *****/
/*
* 代码示例:$('#houdun').hd_fixed({'left':'10px','bottom':'20px'});
* 以上代码会将#houdun这个元素定位到可视区域距离左边10px,距离下边20px的位置。兼容ie6等低版本ie浏览器
*/

/***** 抽取随机数的方法 *****/
/*
* 本方法可以实现抽取任意两个数之间的随机小数或随机整数的效果。
* 代码示例:
* 1、 hd_random(23,66);
* 上面这段代码抽取的是23至66之间的随机小数(取不到23和66)
* 2、hd_random(23,66,true);
* 上面这段代码抽取的是23至66之间的随机整数(能取到23和66)
*/
/***** 抽取随机数的方法 *****/


/***** 计算倒计时的方法 *****/
/*
* 代码示例:
* 1、hd_countdown(2016,10,1,6,12,50);
* 以上代码是获得当前时间与2016年10月1日6时12分50秒的时间间隔
* 2、hd_countdown(1399316708);
* 以上代码传入的是以毫秒表示的utc时间戳,该时间戳表示1970年1月1日0时0分0秒这个参考点往后1399316708秒的时间。因为php给前台返回的时间一般是以这种时间戳的格式。
*/




/******************** 处理固定定位效果 ********************/
;(function($){ 
    $.extend($.fn,{ 

        hd_fixed : function(position){ 
            if(state = 'fixed'){//如果是一直固定状态
                var _this = $(this);
                // 如果是ie6
                if(!-[1,]&&!window.XMLHttpRequest){
                    // alert($(this).attr('src'))
                    $('body').append($(this));//将对象插入到body中
                    $(this).css('position','absolute');//给元素加固定定位,相对于body进行定位

                    hd_fixed_postion($(this),position);
                    $(window).scroll(function(){
                        hd_fixed_postion(_this,position);
                    })
                }else{
                    $(this).css('position','fixed');//让元素固定定位
                    for(x in position){
                        $(this).css(x,position[x]);
                    }
                }
                
            }
            return $(this);
        } 

    }) 
})(jQuery); 

// 固定定位用到的函数
function hd_fixed_postion(obj,position){
    // alert(obj.attr('src')
            var window_height = $(window).height();//获得页面总高度
            var obj_height = obj.outerHeight();//获得定位元素的高度
            var scroll_top = $(document).scrollTop();//获得已滚动上去的高度
                    var l,r,t,b;
                    // for in遍历开始
                    for(x in position){//遍历位置信息对象,将位置设置给obj对象
                        switch(x){
                            case 'left':
                                l = position[x];
                                break;
                            case 'right':
                                r = position[x];
                                break;
                            case 'top':
                                t = scroll_top + parseInt(position[x]);
                                break;
                            case 'bottom':
                                b = window_height + scroll_top - obj_height - parseInt(position[x]);
                                break;
                        }
                    }
                    // for in遍历结束
                    if(l){
                        obj.css('left',l);
                    }
                    if(r){
                        obj.css('right',r);
                    }
                    if(b){
                        obj.css('top',b);
                    }
                    if(t){
                        obj.css('top',t);
                    }
        }
//固定定位用到的函数结束
/******************** 处理固定定位效果结束 ********************/


// 抽取随机数的函数
function hd_random(start,end,integer){
    if(integer){//生成随机整数
        var random = Math.floor(Math.random()*(end+1-start)+start)
    }else{//生成随机小数
        var random = Math.random()*(end-start)+start;
    }
    return random; 
}
// 抽取随机数的函数结束


/***** 计算倒计时的方法 *****/
/*
* 代码示例:
* 1、hd_countdown(2016,10,1,6,12,50);
* 以上代码是获得当前时间与2016年10月1日6时12分50秒的时间间隔
* 2、hd_countdown(1399316708);
* 以上代码传入的是以毫秒表示的utc时间戳,该时间戳表示1970年1月1日0时0分0秒这个参考点往后1399316708秒的时间。因为php给前台返回的时间一般是以这种时间戳的格式。
*/

// 倒计时功能
function hd_countdown(year,month,day,hour,minute,second){

        var start_time = new Date();//创建现在时间


        if(arguments.length == 6){//如果传入6个参数,就是传入的年月日时分秒
            var end_time = new Date(year,month-1,day,hour,minute,second);//创建未来时间
            var diff = end_time.getTime() - start_time.getTime();//获得两个时间的时间差
        }else if(arguments.length == 1){//如果只传入1个参数,就是传入的时间戳
            var diff = year*1000 - start_time.getTime();//获得两个时间的时间差
        }
        
        
        var result = new Object();//创建用来记录结果的对象

        result.days= parseInt(diff/(24*60*60*1000));//计算剩余天数
        diff = diff%(24*60*60*1000);//计算还剩多少毫秒
        result.hours = parseInt(diff/(60*60*1000));//计算剩余小时
        diff = diff%(60*60*1000);
        result.minutes = parseInt(diff/(60*1000));//计算还剩多少分钟
        diff = diff%(60*1000);
        result.seconds = parseInt(diff/1000);//计算还剩多少秒

        return result;//返回结果

}

// 倒计时功能结束


© 著作权归作者所有

共有 人打赏支持
陈映亮
粉丝 10
博文 130
码字总数 38454
作品 0
深圳
程序员
JavaScript的基本使用

一、JavaScript的简单介绍   JavaScript是一种属于网络的脚本语言(简称JS),已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaS...

码农47
03/15
0
0
WebView深度学习(一)之WebView的基本使用以及Android和js的交互

前言:随着市场需求的不断变化,原生安卓已经无法满足客户的需要了,现在很多app都在使用Android和h5的交互实现某些功能,比如商品详情页,文章详情页面,商品点评页面,还有某些复杂的展示页...

aweiloveandroid
2017/07/01
0
0
在网页中JS函数自动执行常用三种方法

在网页中JS函数自动执行常用三种方法   在HTML中的Head区域中,有如下函数: <SCRIPT LANGUAGE="JavaScript">   functionn MyAutoRun()   {    //以下是您的函数的代码,请自行修改...

柠檬酷
2015/07/24
0
2
从零开始学 Web 之 jQuery(一)jQuery的概念,页面加载事件

大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http://www.cnblogs.com/lvonve/ CSDN...

fengdaoting
07/04
0
0
code-rhythm:写了个vscode扩展,让代码更有快感

项目地址 Github - onvno/code-rhythm 原因 写代码本身是件快乐的事情,但开发中总有各种烦恼。 有时候一个很简单的方法,因为不确定传参的形式,不确定返回形式,不确定具体用法,就得翻墙,...

onvno_
06/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Qt那些事0.0.7

在帮助文档(Overview - QML and C++ Integration)中随缘遇到一张图,是关于C++对象与QML整合介绍的,值得标记下来,虽然大部分功能也有所涉猎,但是还是留个记号,万一哪天我失忆了还想写Q...

Ev4n
13分钟前
0
0
快速幂运算

题:求一个数 data 的 n 次幂,要求时间复杂度为log(n) 1:递归算法: /** * x^3=(x^2)*x;x^7=(x^3)^2 * x * * 递归算法 * @param data 底数 * @param n 次...

偶尔诗文
17分钟前
1
0
Google 宣布将会关闭消费者版本 Google+

Google 家的社交平台 Google+ 原来曾经在今年 3 月发生了一次严重的用户资料外泄事故,但这科网巨擘却一直保密,直至今天华尔街日报把事件披露之后才确认事件。Google 在重申问题已经即时解决...

问题终结者
31分钟前
1
0
腾讯三大运维开源项目齐聚“OSCAR开源先锋日”

10月20日,腾讯开源三大运维开源项目——TARS、蓝鲸和织云Metis首次集结,参与了由中国信息通信研究院主办、云计算标准与开源推进委员会承办的 “OSCAR开源先锋日”。会上,腾讯开源团队与前...

腾讯开源
36分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部