首页 > 其他分享 >事件一些补充 以及同步异步概念

事件一些补充 以及同步异步概念

时间:2022-08-13 18:14:35浏览次数:47  
标签:function 异步 同步 浏览器 documentElement 补充 scrollTop document

事件补充

事件

onload事件:当网页中的所有资源都加在完成之后执行这个事件

通常是将script标签放到head标签中的时候使用。因为放在head中默认是获取不到body中的内容的,但是有了这个事件后,就可以了。

window.onload = function(){ 
    console.log("当网页中所有资源加载完成才打印"); 
}
onunload事件:当浏览器关闭的时候触发这个事件

只有在ie浏览器中能看到效果

window.onunload=function(){ 
    alert("浏览器要关闭了"); 
}
onscroll 滚动事件:当网页滚动条的位置发生改变的时候触发这个事件

此事件浏览器需要有滚动条

window.onscroll = function () { 
    console.log('浏览器滚动了') 
}
resize 浏览器窗口改变事件
window.onresize = function(){ 
    // 当浏览器的窗口大小发生改变的时候触发这个事件
}

浏览器滚动的距离

获取文档向下滚动的距离,以下两个都可以:

  • document.documentElement.scrollTop
  • document.body.scrollTop
window.onscroll = function () { 
    var t = document.documentElement.scrollTop; 
    console.log(t); 
    var t1 = document.body.scrollTop; 
    console.log(t1); 
}

这两个的区别在于当前文档有没有 doctype ,有就用 document.documentElement.scrollTop ,没有 就用 document.body.scrollTop

获取页面向右滚动的距离:

  • document.body.scrollLeft

  • document.documentElement.scrollLeft

使用方法同上

这两个方法在IE和edge下有兼容问题

使用兼容写法:

var t = document.documentElement.scrollTop || document.body.scrollTop; 
var t = document.documentElement.scrollLeft || document.body.scrollLeft;

滚动距离可以赋值,如果给向上的滚动距离赋值为0,就实现了回到顶部的效果;但效果时瞬间返回,体验感不好。

使用定时器,让回到顶部拥有动画效果

<style> 
    #backTop{ 
        display:none; 
        width:80px; 
        text-align: center;
        height: 30px; 
        line-height:30px; 
        border:3px solid #000; 
        position:fixed;
        top:500px;
        right:50px; 
    }
</style> 
<body>
    <div style="width: 20px;">
        一类是以机场为主导,通过与其他机场航空公司或者第三方合作的方式,为在本机场中转的旅客提供服务;
        第二类是以航司为主导,以代码共享、 通程联运和合作联营的方式,在既定的中转机场,为旅客提供跨航司的行李直挂服务。 
    </div> 
    <span id="backTop"> 回到顶部 </span> 
</body> 
<script type="text/javascript"> 
    window.onscroll=function(){ 
        var t = document.documentElement.scrollTop;
        console.log(t);
        if(t>=600){ 
            backTop.style.display='block';
        }else{
            backTop.style.display='none'; 
        } 
    }
    var speed = 1;
    backTop.onclick=function(){
        var tt = document.documentElement.scrollTop;
        setInterval(function(){ 
            tt -= speed; 
            document.documentElement.scrollTop = tt;
        },1);
    } 
</script>

异步操作

异步和同步的概念

张三叫李四一起去吃饭,张三说他还有作业没做完,让李四先去,李四去吃饭,张三在写作业,这两个人做的事情不 一样,但是在同一时间段内,两个人的事情在同时做,这就是异步。

张三叫李四一起去吃饭,张三说他还有作业没做完,让李四等一下,李四就等张三做完作业后两个人才一起去吃饭,这就是同步。

同步的操作需要等待,执行起来是有顺序可循的;异步的操作不需要等待,两件事情是同行进行的。

我们平常写的代码都是同步代码,定时器我们接触到的第一个异步代码。

js的异步操作,是在所有同步代码执行完成以后才执行异步代码

一般情况代码是按顺序执行的,上一行代码执行结束之前,下一行代码一直在等待,这是同步机制

标签:function,异步,同步,浏览器,documentElement,补充,scrollTop,document
From: https://www.cnblogs.com/chengkongfeiniao/p/16583691.html

相关文章