JS:页面事件

news/2025/2/25 13:02:17

文章目录

  • 一、页面加载事件
  • 二、页面滚动事件
  • 三、页面尺寸事件
  • 总结


一、页面加载事件

有时候我们会把script的内容放在body前,这时候代码的执行在元素的加载之前,会导致页面元素未加载而报错

解决办法是调用Window的load加载事件将所有操作放在load函数中,这样程序会先加载页面元素,再执行操作内容

javascript">    window.addEventListener('load', function () {
      const btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        console.log(111)

      })
    })

 类似的还有document的DOMContentLoaded事件,先加载页面的DOM元素,再执行操作

javascript">    document.addEventListener('DOMContentLoaded', function () {
      const btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        console.log(111)

      })
    })

二、页面滚动事件

页面滚动事件scroll可以得到当前页面距离顶部的距离,对应的属性scrollTop这个值可读可写,因此可以修改页面滚动距离为0直接回到页面顶部

javascript">元素.addEventListener('scroll', function () {
  console.log(元素.scrollTop)
  // 获取滚动距离
})

添加scroll事件,通过scrollTop获取滚动距离。这个元素不仅可以是浏览器页面,也可以是一个盒子,文本框等其他元素

获取页面的滚动距离:

javascript">document.documentElement.scrollTop

下面这个例子是页面滚动到一定距离显示顶部栏

javascript">    // 获取页面滚动事件
    window.addEventListener('scroll', function () {
      let n = document.documentElement.scrollTop
      if (n >= 500) {
        //当滚动到500是显示
        div.style.display = 'block'
      }
      else {
        div.style.display = 'none'
      }
      if (n >= 1500) {
        document.documentElement.scrollTop = 0
        // 离顶部距离这个属性是可修改的
      }
    })

三、页面尺寸事件

元素的offsetWidth和offsetHeight属性得到元素宽高:元素内容+padding+border

javascript">元素.offsetWidth
元素.offsetHeight

这里盒子本身的尺寸是300px左右和上下都加上两border

配套的属性还有offsetLeft、offsetTop、offsetParent,分别是获取到页面左边的距离,到页面顶部的距离,获取父亲元素

元素的clientwidth和clientheight属性获取元素宽高:不含padding和border 

javascript">元素.clientWidth
元素.clientHeight

盒子的宽和高被滚动条(设置了scroll属性)占据了15padding,left为向左边第一次“碰壁”,因此为1即border,top同理 


总结


http://www.niftyadmin.cn/n/5865530.html

相关文章

Plantsimulation中机器人怎么通过阻塞角度设置旋转135°

创建一个这样的简单模型。 检查PickAndPlace的角度表。源位于180的角位置,而物料终结位于90的角位置。“返回默认位置”选项未被勾选。源每分钟生成一个零件。启动模拟时,Plant Simulation会选择两个位置之间的最短路径。示例中的机器人无法绕135的角位…

Websock Demo(一)前端代码

<html> <head> <meta charset"UTF-8"> Netty WebSocket 时间服务器 </head> <br/> <body> <br> <script type"text/javascript"> var socket; if (!window.WebSocket) { window.WebSocket w…

系统架构设计:软件工程部分知识概述

软件工程:构建高质量软件的基石 在当今数字化时代,软件已渗透到我们生活的方方面面,从日常的手机应用到复杂的工业控制系统,软件的质量和性能直接影响着用户体验和业务发展。而软件工程,作为一门研究和应用如何高效、可靠地开发软件的学科,对于打造优质软件产品起着至关…

JSON Web Token在登陆中的使用

JWT&#xff08;JSON Web Token&#xff09;是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;用于在网络应用环境间安全地传递声明。它的主要用途是身份验证和信息交换。在微服务架构中&#xff0c;JWT 作为认证机制非常常见&#xff0c;特别是与 API 网关结合使用…

智慧后勤的消防管理:豪越科技为安全护航

智慧后勤消防管理难题大揭秘&#xff01; 在智慧后勤发展得如火如荼的当下&#xff0c;消防管理却暗藏诸多难题。传统模式下&#xff0c;消防设施分布得那叫一个散&#xff0c;就像一盘散沙&#xff0c;管理起来超费劲。人工巡检不仅效率低&#xff0c;还容易遗漏&#xff0c;不…

明日方舟一键端+单机+联网+安装教程+客户端apk

为了学习和研究软件内含的设计思想和原理&#xff0c;本人花心血和汗水带来了搭建教程&#xff01;&#xff01;&#xff01; 教程不适于服架设&#xff0c;严禁服架设&#xff01;&#xff01;&#xff01;请牢记&#xff01;&#xff01;&#xff01; 教程仅限学习使用&…

书生大模型实战营14-MindSearch深度解析实践

文章目录 L2——进阶岛MindSearch深度解析实践1 MindSearch 简介2 开发环境配置2.1. 打开codespace主页&#xff0c;选择Blank模板进行创建2.2. 创建conda环境隔离并安装依赖 3. 获取硅基流动API KEY4. 启动MindSearch4.1. 启动后端4.2. 启动前端 5. 部署到自己的 HuggingFace …

大数据开发平台的框架

根据你的需求&#xff0c;以下是从 GitHub 推荐的 10 个可以实现大数据开发平台的项目&#xff1a; 1. Apache Spark Apache Spark 是一个开源的分布式计算框架&#xff0c;适用于大规模数据处理和分析。它提供了强大的数据处理能力&#xff0c;支持实时数据处理、机器学习和…