首页
学习
活动
专区
圈层
工具
发布

JavaScript图片库

DOM方法,网页仍能正常运行 7、关键元素的判断,即使关键元素缺失,网页仍能正常运行 第四版: window.onload = prepareGallery; function prepareGallery...--合理放置了JS脚本在加载完DOM后在加载JS脚本,提高了页面的加载速度,提现了内容优先的原则--> 在学习完JavaScript动态向文档中添加元素和内容后http://www.cnblogs.com...--合理放置了JS脚本在加载完DOM后在加载JS脚本,提高了页面的加载速度,提现了内容优先的原则--> 这个版本的图片库的结构和行为分离的已经很彻底了,但是还是有个问题...,因为这里的图片链接列表刚好是部分的最后一个元素,如果在这个图片列表之后还有其他的一些元素?...JS图片库再做一次改进,代码如下: 第六版: utility.js  公共库 /* window.onload事件(当页面加载完毕时需要调用的事件,也就是说当我们在开发中需要调用一些JS函数在页面加载完毕后执行的可以和这个事件绑定

4.2K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    HTML解析之DOMContentLoaded和onload

    说在前面 在很久很久以前,我在封装自己的JQuery库时就使用过DOMContentLoaded,觉得这个知识点看看别的文章就行了,不过现在我想把它记下来。...上面举例的JS代码都是内嵌在HTML中的,这样再解析到script时直接执行就行。但如果是引入外部JS文件的话会有一点不同,要先加载该JS文件,然后执行,然后在往下解析HTML。...不同的是执行时机,async在代码加载完之后会马上执行,并且执行时会阻塞HTML解析。而defer则要等到文档解析DOM构建完成,DOMContentLoaded事件触发之前执行。...所以script标签加上defer属性,即使不用DOMContentLoaded或window.onload也可以获取操作DOM。...暂时得出结论:js代码应该放在样式表之后。 window.onload 这个就没什么好说的,此时HTML文档解析完成,其他依赖资源也全部加载完成。

    2K20

    JavaScript设计模式--装饰者模式

    保存原引用 window.onload = function() { console.log(1); }; var _onload = window.onload || function()...被劫持问题 在window.onload的例子中没有这个烦恼,是因为调用普通函数_onload时,this也指向window,跟调用window.onload时一样。...2. this被劫持: var _getElementById = document.getElementById; document.getElementById = function(id) {...arguments); // 新函数接收的参数会被原封不动的传入原函数 return _self.apply(this, arguments); }; }; /* 让新添加的函数在原函数之后执行...本地定义关键功能,而代理提供或拒绝对它的访问,或者在访问本体之前走一些额外的事情。(其做的事情还是跟本体一样) (2)装饰者模式:为对象动态加入行为。

    55041

    JS常用设计模式解析01-单例模式

    但即使这样,我们每一次点击仍然会创建一个新的遮罩层,损耗性能。 改进办法2:在页面初始化时建立一个隐藏的遮罩,每次点击只是控制其display属性。 在不同的页面,需要使用不同背景颜色的mask。怎么办?一个简单的想法,就是像createMask里面传参。...那么这里最好的办法其实就是定义不同的创建mask的方法,然后根据需要使用和不同的创建方法。 改进办法5:抽象成更通用的单例模式 也没有通过引入全局变量来进行抽象,建议大家看一下这本书。真的很精辟。强烈推荐。) 改进办法6:利用闭包抽象成更通用的单例模式 <!...this.instance = null; }; Singleton.prototype.getName = function(){ return this.name; } /* * * 1.这里的this在非严格模式下指向全局变量

    88721

    JavaScript之JS实现动画效果

    下面来说下使用JavaScript动画,必须要掌握的几个HTML的基本知识:    一、位置 网页元素在浏览器窗口中的位置是一种表示性的信息。因此,位置信息通常使用CSS负责设置的。...1、static是position属性的默认值,意思是有关元素将按照它们在标记里出现的先后顺序出现在浏览器窗口里。...二、时间 1、setTimeut()函数     他能够让某个函数在经过一段预定的时间之后才开始执行。这个函数有两个参数:第一个参数是一个字符串,其内容是将要执行的那个函数的名字。...因为所有这些信息都是硬编码在函数代码里。元素只能移动到固定的位置,而且两次移动之间的时间也是固定的!如果把这些常量都改为变量,这个函数的通用性和灵活性将会大大增加。...效果很酷,但是代码存在一点小瑕疵,这点我们经常容易忽视,问题就是,当我们把鼠标指针在链接之间快速的来回移动,动画效果将变得混乱起来。

    12.5K81

    使用原生 JavaScript 在页面加载完成后处理多个函数

    以前需要在 HTML 中加上一些触发事件来触发 JavaScript 的相关函数,而现在直接在 JavaScript 中对某个元素的使用监听器,监听这个元素的事件,如果这个元素被触发了某些事件,在监听器中又定义了这个事件对应的处理函数...使用监听器的方法很简单,就是先获取页面中的某个元素,然后对这个元素使用监听器,定义监听的事件和对应的事件处理函数,就上文例子可以使用下面语句代替: document.getElementById('link...window.onload 事件 onload 事件只有在整个页面已经完全载入的时候才会被触发,我们将 JavaScript 代码写进 onload 事件中,就可以保证在 HTML 元素被加载完成之后,...基础的写法: window.onload = function(){ //code } 这样,这个函数里面的 code 会在加载完成之后被处理。但是,这种方法有个缺陷,就是只能用于这一个函数。...那么,我们可以这样做,在一个 window.onload 事件中,写上所有需要加载的函数名,然后在外面定义函数: window.onload = function(){ func1(); func2

    4.6K20

    前端学习(52)~事件委托

    我们通常的写法,是为每个都绑定类似onMouseOver或者onClick之类的事件监听: window.onload = function(){ var parentNode...= document.getElementById("parent-list"); var aNodes = parentNode.getElementByTagName("a");...我们希望,只绑定一次事件,即可应用到多个元素上,即使元素是后来添加的。 因此,比较好的方法就是把这个点击事件绑定到他的父层,也就是 ul 上,然后在执行事件函数的时候再去匹配判断目标元素。...false 表示事件在冒泡阶段触发(默认) document.getElementById('parent-list').addEventListener('click'...父节点捕获到事件之后,开始执行方法体里的内容:通过判断 event.target 拿到了被点击的子节点。从而可以获取到相应的信息,并作处理。

    77310
    领券