js

一个JS定时器类

萝らか妹 提交于 2020-01-27 08:03:53
学习js,因为函数和定时器直接的关系是非绑定的。我不能说我开启一个定时,然后拿一个变量去记录这个setInterval的返回值,这样很麻烦。 本着面向对象的思想,利用业余时间(周末在家里)写了一个类,用来管理定时器。 吐槽下jQuery,不知道是不是我的jQuery版本太低,貌似jQuery没有提供很好的定时器管理类。 好废话不多说,上代码: function TimeControlEx() { var nCount = 0; var oTimerIDs = []; //ID,Name var that = this; var nTimerId = 0; this.ExecOnce = function (funcid) { if (oTimerIDs[funcid].Limit == 0) { //只要归零了,肯定是定时的,对于这种,就得关闭 clearInterval(oTimerIDs[funcid].TimerID); } }; this.add = function (nSec, oFunction, sName, nTimes) { ///<param name="nSec">延迟时间,毫秒</param> ///<param name="oFunction">调用函数</param> ///<param name="sName">定时器名称(可选)</param> /

01-11

做~自己de王妃 提交于 2020-01-27 05:41:26
寒假来了,正好时间很多,在博客上每天发一些自己的小练习,记录自己的学习动态。 大致路线是js基本特效>Jquery基础使用>Html5+CSS3>Bootstrap>移动Web开发。【参考了其他博主的学习路线,我会根据自己的情况作出相应调整】 先从复习JS开始,后面几天会先写一点常用的JS特效来巩固巩固。 后天【01-13】任务1,是js的【tab】和【整页滚动】特效。 来源: CSDN 作者: ToStringi 链接: https://blog.csdn.net/weixin_44108402/article/details/103940669

原生JS实现元素拖拽

百般思念 提交于 2020-01-27 05:18:58
效果 可以随意拖拽 并限制边界检查 代码 <!DOCTYPE html> < html lang = " en " > < head > < meta charset = " UTF-8 " > < title > 拖拽 </ title > </ head > < style > .mask { width : 500px ; height : 300px ; background : antiquewhite ; border : 1px solid #eee ; display : none ; position : absolute ; } .mask:hover { cursor : move ; } </ style > < body > < button onclick = " maskShow() " > 点击弹出可拖拽登录框 </ button > < div class = " mask " > < p > 我是可以拖动的窗口 </ p > </ div > < script > var mask = document . querySelector ( ".mask" ) ; function maskShow ( ) { mask . style [ "display" ] = "block" ; mask . addEventListener (

js call 和 apply

99封情书 提交于 2020-01-27 05:16:12
前言   call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了 改变函数体内部 this 的指向 。   call 和 apply 二者的作用完全一样,只是接受参数的方式不太一样。 方法定义   apply   Function.apply(obj,args) 方法能接收两个参数:     obj: 这个对象将代替Function类里this对象   args: 这个是数组或类数组,apply方法把这个集合中的元素作为参数传递给被调用的函数。 call   call方法 与 apply方法 的第一个参数是一样的,只不过第二个参数是一个参数列表   在非严格模式下当我们第一个参数传递为null或undefined时,函数体内的this会指向默认的宿主对象,在浏览器中则是window var test = function(){ console.log(this===window); } test.apply(null);//true test.call(undefined);//true 用法   "劫持"别人的方法   此时 foo 中的 logName 方法将被bar引用 , this 指向了 bar var foo = { name:"mingming", logName:function(){ console.log

js清除浏览器缓存的几种方法

左心房为你撑大大i 提交于 2020-01-27 04:50:23
关于浏览器缓存 浏览器缓存,有时候我们需要他,因为他可以提高网站性能和浏览器速度,提高网站性能。但是有时候我们又不得不清除缓存,因为缓存可能误事,出现一些错误的数据。像股票类网站实时更新等,这样的网站是不要缓存的,像有的网站很少更新,有缓存还是比较好的。今天主要介绍清除缓存的几种方法。 清理网站缓存的几种方法 meta方法 //不缓存 <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="0"> 清理form表单的临时缓存 <body onLoad="javascript:document.yourFormName.reset()"> 其实form表单的缓存对于我们书写还是有帮助的,一般情况不建议清理,但是有时候为了安全问题等,需要清理一下! jquery ajax清除浏览器缓存 方式一 :用ajax请求服务器最新文件,并加上请求头If-Modified-Since和Cache-Control,如下: $.ajax({ url:'www.haorooms.com', dataType:'json', data:{},

js分享功能(微信,QQ,微博,空间,豆瓣等)

陌路散爱 提交于 2020-01-27 04:18:33
js分享功能(微信,QQ,微博,空间,豆瓣等) 日常编程中,我们可能会碰到项目中的分享功能,各大平台都有分享接口和文档说明,当然也有一些一键分享插件,例如: sosh , iShare.js 等等 但有些同学不想引用插件,那么我整理了一些常用的分享至平台功能,以供参考。 html结构: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 < div class="share-list"> < ul class="share-container"> < li > < a title="分享到微信" href="javascript:void(0)" class="bds_weixin"> < img src="http://images.cnblogs.com/cnblogs_com/a-cat/1193051/o_img_wechat.png" /> </ a > < div class="wechat-share"> < img src="http://images.cnblogs.com/cnblogs_com/a-cat/1193051/o_wechart_share

JS获取cookie

纵然是瞬间 提交于 2020-01-27 04:01:27
function getCookie ( name ) { if ( document . cookie . length > 0 ) { const end = ` ${ name } =` const cal = document . cookie . split ( ';' ) for ( let i = 0 ; i < cal . length ; i += 1 ) { const str = cal [ i ] . trim ( ) if ( str . substring ( 0 , end . length ) === end ) return str . substring ( end . length , str . length ) } } return '' ; } 来源: CSDN 作者: weixin_44953227 链接: https://blog.csdn.net/weixin_44953227/article/details/103926299

js作用链

独自空忆成欢 提交于 2020-01-27 03:38:15
先看js里面的new 这篇文章描述了js里面的new的作用 https://zhuanlan.zhihu.com/p/23987456 new之后会产生Foo对应的模板对象(Foo.prototype),再用模板对象(Foo.prototype)对象复制得到新的对象(b,c),然后调用模板对象(Foo.prototype)的constructor(即函数Foo)对新的对象进行修改 原型语言创建有两个步骤 使用”原型对象”作为”模板”生成新对象 :这个步骤是必要的,这是每个对象出生的唯一方式。以原型为模板创建对象,这也是”原型”(prototype)的原意。 初始化内部属性 :这一步骤不是必要的。通俗点说,就是,对”复制品”不满意,我们可以”再加工”,使之获得不同于”模板”的”个性”。 要清楚原型链,首先要弄清楚对象 普通对象:(eg a b) 最普通的对象:有__proto__属性(指向其原型链),没有prototype属性。 原型对象(Person.prototype 原型对象还有constructor属性(指向构造函数对象)) 函数对象:(eg Foo()) 凡是通过new Function()创建的都是函数对象。 拥有__proto__、prototype属性(指向原型对象)。 原型对象 每创建一个函数都会有一个prototype属性,这个属性是一个指针,指向一个对象

Javascrip 组成部分

泪湿孤枕 提交于 2020-01-27 03:24:41
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。 (取自百度) {下文Javascript简称(JS)} Javascrip由三个部分组成 一.Ecmascript: Ecmascript描述了JS的基本语法,是它的核心。它定义了JS应该是什么样子。 二.Javascript DOM 三.Javascript BOM 这些知识作为小白的我简单的理解。以后会慢慢改进,暂且这样吧。 来源: CSDN 作者: 锦蚯 链接: https://blog.csdn.net/weixin_45785288/article/details/104055703

JS获取地址栏参数的方法

廉价感情. 提交于 2020-01-27 02:29:34
// 用正则表达式获取地址栏参数 function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null) { return unescape(r[2]); } else { return null; } } // 调用 alert(GetQueryString("name1")); alert(GetQueryString("name2")); 来源: https://www.cnblogs.com/zengjin93/p/5569519.html