首页 > 其他分享 >直播软件搭建,利用原生JS实现回到顶部以及吸顶效果

直播软件搭建,利用原生JS实现回到顶部以及吸顶效果

时间:2023-10-18 14:11:40浏览次数:44  
标签:顶部 oSt 距离 JS 滚动条 直播 nav 吸顶

直播软件搭建,利用原生JS实现回到顶部以及吸顶效果

 

 <style>
        .box1{
            width: 1200px;
            height: 800px;
           
            margin: 0 auto;
        }
        .box2{
            width: 1200px;
            height: 800px;
            background-color:palegreen;
            margin: 0 auto;
        }
        /* 设置了box1 box2的高度都为800px 是为了页面出现滚动条 */
        .gotop {
            position: fixed;
            bottom: 50px;
            right: 5px;
            width: 70px;
            height: 50px;
            text-align: center;
            line-height: 50px;
            color: #fff;
            background-color: aquamarine;
        }
        /* gotop去顶部 固定定位 定在底部  */
 
        .nav {
            width: 1200px;
            height: 30px;
            background-color: yellow;
            position: fixed;
            top: 0;
            left: 50%;
            transform: translate(-50%);
            display: none;
        }
        /* nav头部的导航栏 固定定位 同时让它隐藏 */
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="gotop">回到顶部</div>
    <div class="nav"></div>
</body>
<script>
    //实现回到顶部效果
    var oGo = document.querySelector(".gotop");//获取去顶部的元素
    var timer = null;//把定时器置为空
    oGo.onclick = function () {//点击事件 
        clearInterval(timer);//清除定时器
        timer = setInterval(function () {
            document.documentElement.scrollTop -= 10;//滚动条每次距离顶部的距离减10
            var oSt = document.documentElement.scrollTop;//获取滚动条距离顶部的距离
            console.log(oSt);
            if (oSt === 0) {
                clearInterval(timer);//如果距离顶部距离为0 清除定时器
            }
        }, 20);
    }
    //实现吸顶效果
    window.onscroll = function () {//滚动监听事件
        var oNav = document.querySelector(".nav");//获取导航nav里元素
        var oSt = document.documentElement.scrollTop;//获取滚动条距离顶部的距离
        if (oSt >= 100) {
            oNav.style.display = "block";//如果滚动条距离顶部的距离大于100 显示导航nav
        } else {
            oNav.style.display = "none";//否则不显示
        }
    }
</script>

思路:

1.回到顶部

1.需要出现滚动条(设置了box1 box2的高度都为800px ,也可以只设置一个盒子,高度设置大一点,出现滚动条即可)。

 

2.回到顶部的固定定位设置(利用固定定位 定在底部)。

 

3.设置点击事件onclick(点击回到顶部触发事件)。

 

 4.设置定时器可以改变滚动条距离顶部的距离(还需要进行判断,如果距离顶部距离为0时,要清除定时器,不然会一直调用,占用内存)。

 

2.吸顶效果

1.利用滚动监听事件 window.onscroll。

 

2.设置一个nav导航的盒子,固定定位 ,同时让它隐藏。

 

 3.获取滚动条距离顶部的距离,然后进行判断。如果滚动条距离顶部的距离大于100 显示导航nav,否则都是隐藏不显示(这里的高度可以自己设置)。

 以上就是直播软件搭建,利用原生JS实现回到顶部以及吸顶效果, 更多内容欢迎关注之后的文章

 

标签:顶部,oSt,距离,JS,滚动条,直播,nav,吸顶
From: https://www.cnblogs.com/yunbaomengnan/p/17771939.html

相关文章

  • cube.js oracle 新版本npm 包支持
    cube.js目前来说是越来越复杂了(不是代码多复杂,而且融合了不少三方语言,python,rust,nodeaddonjava)如果网络不是很好的情况下编译cube.js是极其痛苦的,而且不少依赖问题,cube.js实际上很早就支持oracle,但是今天oracle比较给力提供了基于node的原生实现这样node系统集成......
  • Node.js 21 版本已发布!
    本文翻译自Node.js21isnowavailable!,来源:TheNode.jsProject,略有删改。我们很高兴地宣布Node.js21的发布!亮点包括V8JavaScript引擎更新到11.8,稳定fetch和WebStreams,一个新的实验性标志来切换模块默认值(--experimental-default-type),一个内置的WebSocket客户端,我们的测......
  • 用jstack导出线程信息,用jmap导出线程信息和堆数据信息
    jmap导出的*.hprof文件需要用jvisualvm.exe工具来查看(当然也有第三方的其他工具),jdk8之后的是不会自带了需要手动安装;jmap导出的文件里是包含了线程信息,但是没有jstack导出的多,比如jstack里还有具体等待哪个锁的信息,这个锁的对象类型,还能看到是哪个线程获得了这个锁locked;jmap使......
  • 7×24无人值守直播推流软件开发实战,揭开视频推流的底层原理(附源码)
    一、前言你有看到过那种不间断型的、循环播放视频音乐的直播间吗?或者那种直播播放电影的直播间?还有层出不穷的文章,类似如下标题:“如何搭建一个24小时不间断的直播间?躺入xxxx元!”“24小时电影直播间,每天到账xxx~xxxx,不出镜副业,人人可做!”“50块的云服务器直播推流让我月入过千......
  • react 公司项目学习 【react+webpack+nw.js + mobx+react-intl 实现的多页面多语言win
    这几天突然要来个react项目;听说还比较复杂;项目组内就两个人会react还在忙,整组主要是用vue;这不,这种‘狗都不干’的事,被安排到我身上了,那就学吧;一、研究代码结构不得不说,这目录结构搞得有点复杂,算是我接触中除了乾坤和electron之外,相当复杂的了,慢慢阅读吧;看懂了,原来是react+web......
  • 7×24无人值守直播推流软件开发实战,一文为你揭开视频推流的底层原理(附源码)
    一、前言你有看到过那种不间断型的、循环播放视频音乐的直播间吗?或者那种直播播放电影的直播间?还有层出不穷的文章,类似如下标题:“如何搭建一个24小时不间断的直播间?躺入xxxx元!”“24小时电影直播间,每天到账xxx~xxxx,不出镜副业,人人可做!”“50块的云服务器直播推流让我月入过千?......
  • Node.js框架:通过nvm实现多个node版本共存使用
    一、环境部署1、nvm下载下载地址:https://github.com/coreybutler/nvm-windows/releases2、nvm安装打开安装程序后按流程走就行,中间的安装地址可以自定义调整。注:在选择node.js的路径时,默认路径为C盘里的安装路径,如果本地在该路径下已经安装过......
  • asisctf 2023 pwn nightjs 复现记录
    关于赛题asisctf2023nightjs附件一道js引擎题目,基于serenityOS上做的改编。(感觉serenity作者很强迫症善良得写了很多注释,连一行赋值语句都有注释,读起来超级愉悦)。偷看了别人的wp来复现。给了patch文件之后,查看修改处的函数被什么函数引用,漏洞点就很明了了。攻击流......
  • Go - Creating a JSON Web Service API
    Problem: YouwanttocreateasimplewebserviceAPIthatreturnsJSON.Solution: Usethenet/httppackagetocreateawebserviceAPIandtheencoding/jsonpackagetoencodedatatobesentbackasJSON. You’llcreateawebserviceAPIthatreturnsa......
  • Node.js & SOAP All In One
    Node.js&SOAPAllInOnesoapASOAPclientandserverforNode.js.ThismoduleletsyouconnecttowebservicesusingSOAP.ItalsoprovidesaserverthatallowsyoutorunyourownSOAPservices.$npminstallsoaphttps://github.com/vpulim/node-......