<div class="top">我是吸顶div</div>
    <p class="back">返回顶部</p>
    <script>
        // 滚动条的监听事件
        // 当滚动条位置发生改变时,触发定义的函数程序
        // 可用使用 display 设定 属性值 为 none 或者 block 来控制标签的显示或者隐藏
        // 但是过程是瞬间范围成的,不能制作成类似于动画的效果
        // 要实现动画的效果,必须要通过改变高度和添加过渡属性完成
        // 返回顶部效果
        // 原理:给 滚动条高度 设定 这个递减的高度
        //      根据一定的时间间隔,执行程序,当高度为0时,终止程序执行
        //      通过定时器来执行程序
        // 获取div标签对象
        var oDiv = document.querySelector('div');
        var oP = document.querySelector('p');
        window.onscroll = function(){
            // 1,获取当前滚动条的高度,通过兼容语法
            // 一旦滚动条位置发生改变,就会获取当前滚动条的位置
            var h = document.documentElement.scrollTop || document.body.scrollTop;
            // console.log(h)
            // 2,当滚动条执行至一定的高度,让div显示
            if(h > 500){
                // oDiv.style.display = 'block';
                // 改变高度
                oDiv.style.height = '100px';
                oP.style.height = '100px';
            }else{
                // 滚动高度小于0
                // 当高度再次变为0,隐藏起来
                oDiv.style.height = '0px';
                oP.style.height = '0px';
            }
        }
        // 返回顶部
        oP.onclick = function(){
            // 点击 标签时
            //  通过定时器,逐步减少滚动条高度,
            var time = setInterval(function(){
                
                // 1 获取当前 滚动条高度 , 必须是兼容语法获取的正确的滚动条高度
                var h = document.documentElement.scrollTop || document.body.scrollTop;
                // 让浏览器滚动条,每次间隔时间,都递减一个高度
                // 可以设定两种方法,有一种不起作用,另一种可以起作用
                document.documentElement.scrollTop -= 20 ;
                document.body.scrollTop -= 20 ;
                // 当滚动条高度为0是,终止定制器
                // 判断数值,必须是兼容方式获取的正确数值
                if( h === 0 ){
                    clearInterval(time);
                }
            } , 100);
            
        }
 
  // BOM操作之事件操作
        // 之前给标签绑定过点击事件
        // 标签对象.onclick = function(){}
        // 1, 事件对象 : 绑定事件的标签对象
        // 2, 事件类型 : 触发事件的类型,click是事件类型,onclick称为绑定事件
        // 3, function(){} : 事件处理函数,当触发事件时,执行的函数程序
        // JavaScript常见的事件类型
        // 鼠标事件 : 鼠标的各种点击,移动
        // 键盘事件 : 键盘的各种按键
        // 表单事件 : form标签相关的事件
        // 特殊事件 : 动画终止事件,过渡终止事件,滚动条监听事件...

滚动条小实验 BOM时间操作的更多相关文章

  1. 小笔记:Timer定时间隔时间操作

    小笔记:Timer定时间隔时间操作,后面有时间再补充和完善: public class TimingSvc { /// <summary> /// 定时器,执行定时任务 /// </ ...

  2. Hadoop之词频统计小实验

    声明:    1)本文由我原创撰写,转载时请注明出处,侵权必究. 2)本小实验工作环境为Ubuntu操作系统,hadoop1-2-1,jdk1.8.0. 3)统计词频工作在单节点的伪分布上,至于真正实 ...

  3. 理解JS闭包的几个小实验

    学了JavaScript有一段时间了,但是对闭包还是不太理解,于是怀着心中的疑问做了几个小实验,终于有点明白了. 首先看一下MDN上的定义:闭包是函数和声明该函数的词法环境的组合. 简单来说,闭包是一 ...

  4. '林子雨大数据' 实验3 HBase操作与接口编程

    "林子雨大数据" 实验3 HBase操作与接口编程 环境搭建 VM虚拟机和Ubuntu系统的安装 在Windows中使用VirtualBox安装Ubuntu虚拟机(2020年7月版 ...

  5. MongoDB 主从复制小实验

    MongoDB 主从复制小实验 操作环境描述:WIN8  64位操作系统,内装虚拟机为CentOS 5.5 32位系统. 操作描述:跟其他关系型数据库类似,在主库进行数据操作,将数据同步到从节点,从节 ...

  6. entity framework 时间操作

    ).FirstOrDefault(); if (useractiveentity == null) { UserActive userActive = new UserActive(); userAc ...

  7. 1.4 Crack小实验

    0_day 第一章 基础知识 1.4 Crack小实验 <0day_2th>王清 著 电子书 下载链接:https://pan.baidu.com/s/11TgibQSC3-kYwCInm ...

  8. Python常用时间操作总结【取得当前时间、时间函数、应用等】转载

    Python常用时间操作总结[取得当前时间.时间函数.应用等] 转载  2017-05-11   作者:清风乐逍遥    我要评论 这篇文章主要介绍了Python常用时间操作,包括取得当前时间.时间函 ...

  9. arduino新入手体验:三个小实验

    新入手体验:三个小实验 一:一个LED闪烁 控制要求:1个LED灯,每隔50ms闪烁一次 实物连接图: 控制代码: //2018.6/11 ;//定义数字接口10,对应 void setup() { ...

  10. JavaScript笔记——BOM的操作和浏览器的检测

    BOM的操作 BOM 也叫浏览器对象模型,它提供了很多对象,用于访问浏览器的功能.BOM 缺少规范,每个浏览器提供商又按照自己想法去扩展它,就可能存在浏览器不兼容的情况,那么浏览器共有对象就成了事实的 ...

随机推荐

  1. python实现不同颜色气球隔开摆放,并且提示不能摆放的情况

    这个是一位隐秘人物让我做的一道题(如标题),我也分享出来了. 首先是成品展示(暂时没有做成可视化界面的样子): 我做的是把所有的气球录入进来,然后利用基础数据结构(字典,数据等)排序等,由于我是初学, ...

  2. PTA三次作业

    1.前言: 第一次作业难度较大,从无到有的设计,涉及到的主要类有Paper,Question,AnswerPaper,Main,主要题目方向为字符串判断与字符串处理(提取有效信息),判断对错算总分,配 ...

  3. 力扣73(java)-矩阵置零(中等)

    题目: 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 .请使用 原地 算法. 提示: m == matrix.length n == matrix[0].l ...

  4. 任务不再等待!玩转DataWorks资源组

    引言 DataWorks提供了三种资源组的能力:独享资源组.自定义资源组和默认资源组,很多开发者在使用资源组时经常会碰到各类情况,到时候任务运行失败或者延迟,例如:1. 正在使用默认资源组,任务经常要 ...

  5. 揭秘!阿里实时数仓分布式事务Scale Out设计

    简介: Hybrid Transaction Analytical Processing(HTAP) 是著名信息技术咨询与分析公司Gartner在2014年提出的一个新的数据库系统定义,特指一类兼具O ...

  6. WPF开源轻便、快速的桌面启动器

    前言 今天大姚给大家分享一款WPF开源.简单.轻便.快速的桌面启动器(支持多主题.多语言:简体中文.繁体中文.英文等):CurvaLauncher. WPF介绍 WPF 是一个强大的桌面应用程序框架, ...

  7. WPF 框架开发 调试和开发 XAML 构建过程的 PresentationBuildTasks 方法

    阅读本文,你可以了解如何编写开发和调试 XAML 构建为 Baml 和 g.cs 文件的过程和工具.本文也适合想要了解 WPF 的 XAML 构建过程的开发者阅读,本文提供了可以断点调试 WPF 的 ...

  8. 『手撕Vue-CLI』添加自定义指令

    前言 经上篇『手撕Vue-CLI』添加帮助和版本号的介绍之后,已经可以在控制台中输入 nue --help 来查看帮助信息了,但是在帮助信息中只有 --version,--help 这两个指令,而 v ...

  9. 都2024年了,你还不知道git worktree么?

    三年前 python 大佬吉多·范罗苏姆(为 Python 程序设计语言的最初设计者及主要架构师)才知道 git worktree ,我现在才知道,我觉得没啥丢人的. 应用场景 如果你正在 featu ...

  10. 关于ITIL的习惯性误解

    关于ITIL的习惯性误解 1. ITIL是标准?不是!ITIL本质是一套适合西方社会信息化阶段的 模板原版教材 最佳实践(Best Practice),不是标准. 大量的培训师和咨询顾问将其包装成&q ...