简单的小广告

规则:
每隔5秒在右下角弹出小广告
点击小广告跳转
点击小广告上的×关闭小广告,但5秒后小广告重新出现
若不点击小广告,10秒后小广告自动消失,但5秒后小广告重新出现

效果
在这里插入图片描述
所用知识点:
创建事件监听 addEventListener || attachEvent
事件绑定函数 addEvent(ele, type, fn)

现代浏览器

oDiv1.addEventListener('click', function () {console.log(999);})

IE浏览器

  oDiv3.attachEvent('onclick', function() {})

解决兼容问题

function addEvent(ele, event, fn) {if (ele.addEventListener) {ele.addEventListener(event, fn)} else {ele.attachEvent('on' + event, fn)}}addEvent(oDiv3, 'click', function () {console.log('sqada');})

事件流:事件流描述的是从页面中接受事件的顺序
但是,微软(IE)和网景(Netscape)开发团队提出了两个截然相反的事件流概念,IE的事件流是事件冒泡流(event bubbling),而Netscape的事件流是事件捕获流(event capturing)

事件捕获:事件捕获流的思想是不太具体的DOM节点应该更早接收到事件,而最具体的节点应该最后接收到事件

事件冒泡:IE提出的事件流叫做事件冒泡,即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点

IE提出的是冒泡流,而网景提出的是捕获流,后来在W3C组织的统一之下,JS支持了冒泡流和捕获流,但是目前低版本的IE浏览器还是只能支持冒泡流(IE6,IE7,IE8均只支持冒泡流),所以为了能够兼容更多的浏览器,建议大家使用冒泡流。

阻止事件冒泡:

 oClose.onclick = function(e) {var ev = event || e;if(ev.stopPropagation) {ev.stopPropagation();} else {ev.cancelBubble = true;}oAd.style.display = 'none';}

stopPropagation和cancelBubble的作用是一样的,都是用来阻止浏览器默认的事件冒泡行为。
不同之处在于stoppropagation属于W3C标准,试用于Firefox等浏览器,但是不支持IE浏览器。相反cancelBubble不符合W3C标准,而且只支持IE浏览器。所以很多时候,我们都要结合起来用。不过,cancelBubble在新版本chrome,opera浏览器中已经支持。

计时器

setInterval(function(){count();},1000)

每隔1000ms执行一次count函数

clearInterval() 停止setInterval方法

延时器

  function say() {alert("aaa");timer = setTimeout(function () {say();}, 1000);}

取消延时clearTimeout(timer);

代码:



Document      

 广告10s后关闭x



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部