热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

BOM、location对象、history历史记录、scroll浏览器滚动

8.16总结一、location对象location对象里的方法1.location.reload2.location.assign(新的地址)3.location.replace

8.16总结

  • 一、location对象
      • location对象里的方法
        • 1.location.reload
        • 2.location.assign('新的地址')
        • 3.location.replace('新的地址')
  • 二、window对象
        • 1.window.navigator对象
        • 2.window.navigator.userAgent
        • 3.window.navigator.appName
        • 4.window.navigator.platform
  • 三、history历史记录
        • 1.window.history.back()
        • 2.window.history.forward()
        • 3.window.history.go(参数)
          • 例:
  • 四、scroll 浏览器滚动
        • 1.window.onscroll
        • 2.document.documentElement.scrollTop
        • 3.document.documentElement.scrollLeft
        • 4.document.body.scrollTop
        • 5.document.body.scrollLeft
        • 6.window.pageYOffset 垂直方向
        • 7.window.pageXOffset 水平方向
          • 【兼容写法】
        • 8.设置浏览器滚动到指定的位置
          • window.scrollTo(横向坐标,纵向坐标)
          • window.scrollTo({top:0,left:0,behavior:"smooth"})


一、location对象

location对象里的方法


1.location.reload

  • 作用:重新刷新加载页面,相当于按下了浏览器左上角的刷新按钮
  • 注意:页面刷新语句不要写在一打开页面就可以执行的地方,否则一进来就刷新会造成死循环,页面刷新多和按钮配合使用

2.location.assign(‘新的地址’)

  • 作用:重定向页面,和href一样,可以实现页面的跳转

3.location.replace(‘新的地址’)

  • 作用:替换当前的页面 因为不记录历史记录,所以不能回退


二、window对象

1.window.navigator对象

  • 作用: window.navigator对象就是用来记录浏览器的版本信息(常用属性)

2.window.navigator.userAgent

  • 作用:返回用户当前使用的浏览器版本及型号信息

3.window.navigator.appName

  • 返回值:Netscape 网景

【注意】所有的浏览器返回值都是统一的名字,向网景致敬(ie低版本除外)

4.window.navigator.platform

  • 作用:返回浏览器所在的操作信息


三、history历史记录
  • window下有一个history对象,里面包含了一些操作历史的记录属性和方法
  • 作用:可以操作浏览器的前进和后退
  • history包含用户的访问过的url

1.window.history.back()

  • 作用:回退到上一条历史记录,相当于点击浏览器左上角的后退按钮
  • 前提条件:要有上一条历史记录

2.window.history.forward()

  • 作用:前进到到下一条历史记录,相当于点击浏览器左上角的前进按钮
  • 前提条件:需要回退以后才能前进

3.window.history.go(参数)

  • 根据参数来判断是前进还是后退
  • 参数数为正值时是 前进
  • 参数数为负值时是 后退
  • 参数为0 刷新


例:

<button id&#61;"back">back</button><button id&#61;&#39;forward&#39;>forward</button><button id&#61;&#39;refresh&#39;>刷新</button><script>back.onclick &#61; function () {//后退// window.history.back()window.history.go(-1)}forward.onclick &#61; function () {//前进// window.history.forward()window.history.go(1)}refresh.onclick &#61; function () {window.history.go(0)}console.log(window.history);

四、scroll 浏览器滚动

1.window.onscroll

  • 浏览器滚动事件&#xff0c;当页面发生滚动的时候触发&#xff0c;不论是上下滚动还是水平方向上的滚动
  • scroll系列可以动态的获取到元素的大小&#xff0c;滚动距离
  • 语法&#xff1a;元素.scrollTop
  • 返回元素被卷上去上侧的距离&#xff0c;返回值不带单位
  • 可读写的属性&#xff1a;写入的时候可以使页面瞬间滚动到指定的位置

2.document.documentElement.scrollTop

  • 使用时必须要有DOCTYPE&#xff0c;如果没有获得滚动高度一直是0
  • 作用&#xff1a;返回页面被卷上去的头部的距离

3.document.documentElement.scrollLeft

  • 使用时必须要有DOCTYPE&#xff0c;如果没有获得滚动宽度一直是0
  • 作用&#xff1a;返回页面被卷进去的左侧的距离

4.document.body.scrollTop

5.document.body.scrollLeft

  • 返回页面被卷进去的高度和宽度
  • 使用时必须没有DOCTYPE&#xff0c;如果有获得滚动宽度一直是0

6.window.pageYOffset 垂直方向

7.window.pageXOffset 水平方向

【注意】新增的 ie9以上版本才支持


【兼容写法】

  • 必须没有DOCTYPE
  • 使用短路来处理兼容性问题的一个前提条件就是不能报错
  • 使用逻辑运算符来处理兼容性问题&#xff0c;当前面的值为0 的时候&#xff0c;会执行后面的&#xff0c;前面的值不为0时&#xff0c;则直接使用前面的返回值

document.body.scrollTop||document.documentElement.scrollTop||window.pageYOffset
document.body.scrollLeft||document.documentElement.scrollLeft||window.pageXOffset

8.设置浏览器滚动到指定的位置

window.scrollTo(横向坐标,纵向坐标)
  • 注意&#xff1a;参数值不带单位&#xff0c;参数必须是两个参数&#xff0c;否则就会报错(瞬间定位)
window.scrollTo({top:0,left:0,behavior:“smooth”})
  • 如果参数是一个对象&#xff0c;对象里的属性写几个都可以
  • 特点&#xff1a;可以设置第三个配置项来决定页面滚动是瞬间定位还是平滑移动
  • behavior 翻译&#xff1a;行为
  • behavior&#xff1a;instant 立即
  • behavior&#xff1a;smooth

【注意】如果设置了平滑滚动&#xff0c;页面不轮滚动的距离是多少&#xff0c;所花费的时候基本上是一样&#xff0c;这样就说明了, 不同的滚动距离的滚动速度是不一样的。
              若果我们想要页面滚动距离大时花费时间久&#xff0c;距离小话费时间短&#xff0c;也就是说想要滚动的速度是一样的&#xff0c;就自己写方法实现了&#xff0c;原生的api达不到这样的效果。

案例&#xff1a;

DOCTYPE html>
<html lang&#61;"en">
<head><meta charset&#61;"UTF-8"><meta http-equiv&#61;"X-UA-Compatible" content&#61;"IE&#61;edge"><meta name&#61;"viewport" content&#61;"width&#61;device-width, initial-scale&#61;1.0"><title>Documenttitle><style>#box{width: 100%;height: 5200px;background: cornflowerblue;}#btn{position: fixed;bottom: 30px;right: 30px;}style>
head>
<body><div id&#61;"box">内容div><button id&#61;"btn">点击回到顶部button><script>var timer;btn.onclick &#61; function(){// 设置定时器&#xff0c;每间隔一定时间就会改变滚动条的位置&#xff0c;来实现页面的滚动timer &#61; setInterval(function(){// 每20ms就让页面卷去距离减少60document.documentElement.scrollTop -&#61; 60;// 当被卷曲的高度小于等于0时&#xff0c;清除定时器if(document.documentElement.scrollTop <&#61; 0){clearInterval(timer)}console.log(document.documentElement.scrollTop);},20)}// 中途停止滚动效果// 使用一个变量来记录页面滚动的距离var topNum &#61; 0;// 给window绑定一个滚动事件window.onscroll &#61; function(){if(document.documentElement.scrollTop > topNum){// 在给变量赋值前&#xff0c;先判断滚动的高度&#xff0c;如果变大则说明用户想反方向滚动// 清除定时器clearInterval(timer)}// 获取每一次触发浏览器滚动事件时&#xff0c;得到的滚动高度&#xff0c;赋值变量topNum &#61; document.documentElement.scrollTop}script>
body>
html>


推荐阅读
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • PHPMailer邮件类邮件发送功能的使用教学及注意事项
    本文介绍了使用国外开源码PHPMailer邮件类实现邮件发送功能的简单教学,同时提供了一些注意事项。文章涵盖了字符集设置、发送HTML格式邮件、群发邮件以及避免类的重定义等方面的内容。此外,还提供了一些与PHP相关的资源和服务,如传奇手游游戏源码下载、vscode字体调整、数据恢复、Ubuntu实验环境搭建、北京爬虫市场、进阶PHP和SEO人员需注意的内容。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
author-avatar
vbkan
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有