广告
广告
广告
因为拖拽的功能并不是说常用到,基本上就是弹窗之类的会用到,而且拖拽用到的代码会比较多,如果丢到Base的封装库中,比较费资源,所以我们可以将拖拽打包成插件,然后再通过插入的方式调用。什么是插件?就是通过共有的prototype中的方法,来为这个函数添加共有的方法,也就是在Base.prototype.xxx中又创建了一个Base.prototype.xxx方法,然后名称和function通过传参的方式传入。创建插件//插件入口 Base.prototype.extend = function(name, fn) { Base.prototype[name] = fn; }将拖拽方...
w3c提供了addEventListener和removeEventListener两个方法,而IE提供的是attachEvent和detachEvent;但是ie的方法有很多问题,那么我们要解决以下这些问题:支持同一个元素同一个事件绑定多个监听函数,如window.onload可以有多个,并且都是可以正常执行的。同一个元素的相同事件注册同一个函数,只会运行一次。函数体内的this应当指向调用该事件的对象本身。监听函数的执行顺序应当按照绑定的顺序执行。在函数体内event对象不使用event||window.event来标准化event对象。跨浏览器添加事件:function addEv...
call()对象冒充,最直白的记忆方法,就是更改this的指向,比如:document.onclick = function() { fn(); }; function fn() { if (this === window) alert('window'); if (this === document) alert('document'); }这里我们知道,函数里面的函数,this指向的是window,那么我们使用call便可以让this指向document,用法如下:document.onclick = function...
上一篇我们讲了使用伪元素来实现遮罩层,虽然很方便,但是也有一些缺点,比如:z-index需要设置好,由于伪元素是login里面的,所以哪怕伪元素的z-index:-999;也不可能穿透login元素,这样的话,form元素就要设置一下背景色了。无法为伪元素添加点击事件为此我们还可以单独创建一个遮罩层元素,这个元素一般在login元素的上面并且为同级元素,我们可以利用js创建或者先创建好再设置css,我这里选择js创建,虽然麻烦一点,但是显得有技术啊!233...效果图:css部分:.login_Masked { position: absolute; top: 0; ...
前言:由于DOM2不支持load()从外部加载xml文件,所以只能做loadXML()的兼容方法,有点可惜!创建兼容的loadXML():function createXMLDom(value){ var xmlDom = null; if(typeof window.DOMParser != 'undefined') { xmlDom = (new DOMParser()).parseFromString(value,'text/xml'); //alert((new XMLSerializer()...
主题开启预加载可以加快访问速度,但是在一些程度上还是有一些取舍,比如js中的window.onload事件,就会只运行一次,当你进入到下一个页面的收,window.onload里面执行的内容就完全停止了,甚至可以说没有了,有点像是,你吃着吃着突然就换了一个肚子,这样虽然吃的也多,但是不一样了啊,和原来的对不上了,所以我们还是要针对这种情况,让js代码再次运行,这就相当于换了个肚子,还要接上才能用。询问了下泽泽,他说《Yodu》的预加载在footer.php中,在if (isInitialLoad === false) {}中,具体如下图:我们可以看到在这个里面其实有很多if的判断语句,这...
都是辛酸泪,这几天学这个头大,不过好在我搞定了,并且还不会冲突,兼容ie9以上,相当奈斯!2018-10-5 重新做了兼容,虽然没什么卵用,美名其曰优化代码!效果图:原理就是通过修改class的名字来达到隐藏和显示的效果,并且修复了原来动效不能显示的bug。代码部分(css部分我就不提供了):[hide]//兼容添加事件 function addEvent(obj,type,fn) { if(obj.addEventListener) { obj.addEventListener(type,fn,false); }else if(obj.attachEve...
因为找了一个个人非常喜欢的头像,美滋滋...提交到gravatar后,默认获取的是220分辨率的头像,压缩的不能看,加上在群里的“月宅”说可以通过头像链接后面的数字修改后就可以获得高清的了,我一想,好了,既然是通过这个获取的,那么博客本身肯定是有预先设置的,于是我就找啊找,终于找到了。[hide]修改的文件路径在:你安装的博客的目录中--admin--profile.php--有一个地方写着数字220,具体位置可以自己通过查看源代码进行对比!下图我也给你标出来了,改成你想要的分辨率,前提你在gravatar中提交的图片够清晰。[/hide]修改好后保存,然后刷新缓存,享受!
之前就听说Typecho的md编辑器支持表格写法了,这次刚好在写一篇文章的时候用到了,所以顺带写了一个css分享出来,很简单的,有需要的可以复制到自己的css文件中。表格的创建写法是:|th内容|th内容| //内容与内容之间都是用|竖线分割 |---------|---| //这里用来分割表头和tbody |内容1|内容2| //需要几行就这样写几行 效果展示:查看有表格的文章CSS代码:table { width: 100%; border: 1px solid #e1e1e1; border-collapse: col...
如果要通过js去创建表格元素并添加一定的内容,可以说会让人头疼死,因为你每个元素和内容都需要一个个的去创建去插入,估计写十行表格的代码就可以让你崩溃,每个tr,td都需要documen.createElement('')来创建,还有caption、thead、tbody、tfoot还有内容,于是乎便有了专门应对表格的一些属性和方法,我们一一来介绍下!首先我们要先知道一点:table、th、tbody这三个是没有可以直接创建的对应属性和方法,只能通过documen.createElement('')来创建,不过好在这三个元素重复率不是很多。table对应的属性和方法:属性或方法说明capt...
由于每次使用innerHTML都会创建一个浏览器级别的解析器,但是要是使用innerHTML的量大的话,往往会浪费很多资源,特别是在重复传入数据的时候,所以我们可以先使用一个变量来保存这些数据,最后一口气直接传入,这样只使用了一个解析器,省资源又省心。html部分:\<ul id="box"> </ul>\ //博客直接写ul会空白,被解析到了,所以我在前后加了斜杠,这个斜杠不要管它 这是一个空的ul元素,我们给他传入十个li元素;一般写法:var box = document.getElementById('box...
由于document中并没有insertAfter()这个功能,只有insertBefore()在当前元素节点的前面添加新的内容,在后面添加是没有的,但是我们可以自己做一个有这个功能得函数。首先有几点前提条件:该元素节点后面有其他同级得节点如果没有同级得节点他应该就是最后一个节点由于我们写html时会有换行得操作,导致产生了空白节点,所以我们还需要移除这个空白节点才能正常操作。我们先写一个简单得html代码:<body> /*这是该元素为最后一个节点*/ <div id="box"> <p>1</p> <...
最近评论