位置: IT常识 - 正文

这几种方法帮你快速实现回到页面顶部(怎样才能帮你)

编辑:rootadmin
背景介绍 当页面内容很多的时候,用户可能会一直往下滑动页面。但是当他想返回页面顶部进行其他操作时,他可能需要不断滚动鼠标滚轮,这就导致用户体验将很差。鉴于这种情况, “回到顶部”这一功能便出现了。 如今在我们浏览网站的时候,常常能遇见“回到顶部”这个按钮。目前主流的回到页面顶部分表现为两种,一种是直 ... 背景介绍

推荐整理分享这几种方法帮你快速实现回到页面顶部(怎样才能帮你),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:怎么去帮助,这几种方法帮你解决问题,教我怎么帮助,几种方法帮你消除口臭,这几种方法帮你解决问题,这几种方法帮你做事,这几种方法帮你做事,这几种方法帮你做事,内容如对您有帮助,希望把文章链接给更多的朋友!

当页面内容很多的时候,用户可能会一直往下滑动页面。但是当他想返回页面顶部进行其他操作时,他可能需要不断滚动鼠标滚轮,这就导致用户体验将很差。鉴于这种情况, “回到顶部”这一功能便出现了。

如今在我们浏览网站的时候,常常能遇见“回到顶部”这个按钮。目前主流的回到页面顶部分表现为两种,一种是直接回到页面的顶部,这种方式简单粗暴;另外一种则是自动滚动间接回到页面顶部,这样一来视觉体验上可能更好,但是用户需要过几秒才能看到顶部内容。

例如掘金,在滚动到一定高度时会出现“回到顶部”按钮,点击后会直接回到页面顶部,就是上文说到的第一种情况。

实现动态显示滚动按钮这几种方法帮你快速实现回到页面顶部(怎样才能帮你)

“回到顶部”并不是一直显示的,而是滚动到一定值才出现的,因此应该在window.onscroll里定义一个判断事件。

window.onscroll = function () { var currentHeight = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop; // 页面滚动超过300px就显示 if (currentHeight > 300) { document.getElementById('backtop').style.display = 'block' } else { document.getElementById('backtop').style.display = 'none' }}直接回到顶部锚点

最简单的方法。给顶部的div一个id,点击直接回到这个div元素,但是URL上会出现#top。

<div id="top"></div>......<a href="#top">回到顶部</a>scrollTo函数

控制滚动条回到指定位置,第一个参数是距离页面左端的距离,第二个参数是距离页面顶部的距离。

<a href="javascript:scrollTo(0, 0)">回到顶部</a>scrollTop函数

控制滚动条垂直偏移。

<a onclick="byScrollTop()">回到顶部</a>......function byScrollTop() { document.documentElement.scrollTop = 0; window.pageYOffset = 0; // 兼容ios document.body.scrollTop = 0; // 兼容低版本ie}scrollBy函数

该方法可把内容滚动指定的像素数。第一个参数指向右滚动的像素,第二个参数指向下滚动的参数,负数可使方向相反。

<a onclick="byScrollBy()">回到顶部</a>......function byScrollBy() { var topHeight = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop; scrollBy(0, -topHeight);}间接回到顶部定时器实现滚动动画

通过定时器实现固定速度的自动滚动动画效果。但是这样会有个问题,就是当页面内容十分多的时候,这个时候离顶部已经有很长一段距离了。如果还是一个固定速度的话,可能会长达10秒钟,这对用户体验来说是不友好的。

<a onclick="scrollToTop()">回到顶部</a>......function scrollToTop() { var topHeight = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop; scrollBy(0, -100); // 模拟鼠标向上滚动事件 scrolldelay = setTimeout('scrollToTop()', 50); // 清除滚动事件,避免无法向下移动 if (topHeight === 0) { clearTimeout(scrolldelay); scrolldelay = null; }}定时器实现滚动动画-改良版

基于上面这个问题,我们可以设置一个速度的最小值,让滚动速度从快到慢,但也不至于过慢。

function scrollToTop() { var topHeight = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop; var speed = topHeight / 10 > 100 ? topHeight / 10 : 100; scrollBy(0, -speed); // 模拟鼠标向上滚动事件 scrolldelay = setTimeout('scrollToTop()', 50); // 清除滚动事件,避免无法向下移动 if (topHeight === 0) { clearTimeout(scrolldelay); scrolldelay = null; }}最终效果

完整代码<style> a { display: block; } #top { height: 2000px; background-color: #999 } #backtop { display: none; position: fixed; bottom: 20px; right: 30px; background-color: #fff; z-index: 9; }</style><body> <div id="top"> 这里是页面顶部 </div> <div id="backtop"> <a href="#top">回到顶部-锚点</a> <a href="javascript:scrollTo(0, 0)">回到顶部-scrollTo函数</a> <a onclick="byScrollTop()">回到顶部-scrollTop函数</a> <a onclick="byScrollBy()">回到顶部-scrollBy函数</a> <a onclick="scrollToTop()">回到顶部-定时器动画版</a> </div> <script> window.onscroll = function () { var currentHeight = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop; console.log(currentHeight, "currentHeight"); if (currentHeight > 300) { document.getElementById('backtop').style.display = 'block' } else { document.getElementById('backtop').style.display = 'none' } } function byScrollTop() { document.documentElement.scrollTop = 0; window.pageYOffset = 0; // 兼容ios document.body.scrollTop = 0; // 兼容低版本ie } function byScrollBy() { var topHeight = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop; scrollBy(0, -topHeight); } function scrollToTop() { var topHeight = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop; var speed = topHeight / 10 > 100 ? topHeight / 10 : 100; scrollBy(0, -speed); // 模拟鼠标向上滚动事件 scrolldelay = setTimeout('scrollToTop()', 50); // 清除滚动事件,避免无法向下移动 if (topHeight === 0) { clearTimeout(scrolldelay); scrolldelay = null; } } </script></body>
本文链接地址:https://www.jiuchutong.com/zhishi/304086.html 转载请保留说明!

上一篇:电脑学习网强推wordpress专业缓存插件Redis Object Cache Pro对象缓存专业授权版傻瓜化使用教程(网上学电脑的软件)

下一篇:python中getopt模块是什么(python getpass模块)

  • 纳税人返税是什么意思
  • 税金及附加是负债类吗
  • 视同销售的增值税怎么申报
  • 残保金为啥经过个人账户
  • 其他项目工会筹备金怎么报税
  • 小规模纳税人怎么转成一般纳税人
  • 农产品是零税率还是免税税率
  • 增值税专用发票几个点
  • 公司给员工购买意外险怎么做账
  • 个税完税凭证在哪里打印出来
  • 房企与个人订立购房合同是否贴花?
  • 无形资产日常维护支出会计处理
  • 音乐茶座取什么名字好呢
  • 无偿使用房屋
  • 汽车固定资产清理账务处理
  • 装修公司能开增值发票吗
  • 免征增值税企业所得税纳税调整
  • 出口货物 关税
  • 利息 财务费用
  • 简述房地产开发企业设立的特殊规定
  • 公司买结构性存款算投资吗
  • 增值税普通发票红冲之后还能查询吗
  • 资本公积金转增资本属于所有者权益吗
  • 政府奖励金额是否要交二次税呢
  • 公司注销注销顺序
  • 解决的英文
  • 工资薪金所得个人所得税税率表
  • Win11怎么设置开机跳过密码
  • macOS Big Sur 11.2 RC 2正式发布(附更新内容)
  • 盈余公积弥补以前年度亏损所有者权益会增加
  • yolov教程
  • 个人买车缴纳车船税吗
  • 小米随身wf
  • laravel php
  • 基建费用如何摊销
  • 小规模纳税人实收资本印花税怎么算
  • vue set up
  • 固定资产转卖会亏本吗
  • php file函数
  • 政府性基金账务处理
  • 我的Vue之旅 11 Vuex 实现购物车
  • dedecms安装步骤
  • 清算存货分配给股东账分录
  • sql server 2005 sp4
  • mysql主从配置详解
  • 应付账款转收入摘要怎么写
  • 固定资产盘盈为何要交所得税
  • 金融工具占比低
  • 劳务成本科目的分类
  • 装卸费专票
  • 发票隔月可以重开吗
  • 企业存货明细表和盘点表
  • 失控发票补交上年所得税
  • 出售固定资产如何缴纳增值税
  • 工资费用核算的原始记录有
  • 收到政府土地补偿款账务处理
  • mysql调用java
  • MySQL下载安装视频
  • linux系统的电脑如何共享
  • Fedora Core 4.0 安装图解
  • windows自带的碎片整理程序
  • win8.1如何关闭开机密码
  • centos7(core)
  • win7开始菜单没有启动文件夹
  • win8 休眠
  • python模拟reversed功能
  • jquery使用jsonp
  • jquery 设置css
  • css checked
  • [置顶]津鱼.我爱你
  • unity射击游戏完整功能代码
  • jQuery实现ajax的叠加和停止(终止ajax请求)
  • js怎么定义类
  • python程序解读举例
  • python如何运用
  • 税控盘税务数字证书密码是什么
  • 非税收入纳入一般公共预算管理
  • 青海国税局领导班子
  • 公司欠税交不起股东责任
  • 建筑业甲方代扣代缴增值税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设