热门标签 | 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>


推荐阅读
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Firefox火狐浏览器关闭到http://detectportal.firefox.com的流量问题解决办法
    本文介绍了使用Firefox火狐浏览器时出现关闭到http://detectportal.firefox.com的流量问题,并提供了解决办法。问题的本质是因为火狐默认开启了Captive portal技术,当连接需要认证的WiFi时,火狐会跳出认证界面。通过修改about:config中的network.captive-portal-service.en的值为false,可以解决该问题。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
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社区 版权所有