js中带运动的返回顶部以及锚点的使用

news/2024/7/19 15:06:26 标签: js, 返回顶部, 锚点

本博主要介绍使用js实现从底部返回顶部的方法(返回底部的过程中速度不断变慢),由于其和锚点很相似,所以也就顺便在后面将锚点的相关知识进行总结

html代码

<a id="a1">返回顶部</a>
css代码
<style>
        body{height:3000px;}
        #a1{width:50px; height:50px;display:block; border-radius:50%; background:red; position:fixed; bottom:0; right:0; font-size:10px; color:white; line-height:50px; text-align:center;}
script>
        window.onload = function(){
            var oA = document.getElementById('a1');
          var iCur = iSpeed = 0;
            var iTimer = null;
            var b=0;
window.onscroll = function(){
    if(b!=1){
        clearInterval(iTimer);//如果b=1,说明scroll是定时器触发的,如果b不等于1,说明是由非定时器的其他操作触发的
    }
    b=2;
}
                oA.onclick = function() {
                    clearInterval(iTimer);
                    iTimer = setInterval(function () {
                        iCur = document.documentElement.scrollTop || document.body.scrollTop;//得出滚动条此时所在的位置
                        iSpeed = Math.floor((0 - iCur) / 8);//计算出滚动条的速冻

                        if (iCur != 0) {
                            document.documentElement.scrollTop = document.body.scrollTop = iCur + iSpeed ;//切记不要带单位,因为通过dom计算的数值本来就不带单位
                        } else {
                            clearInterval(iTimer);
                        }
                        b = 1;
                    }, 30);
  }
        }
    </script>

此种带缓冲的返回顶部的方法,主要运用定时器的方法实现滚动条位置的不断变化,缓冲运动的原理是距离目标点越近速度越小,距离目标点越远,速度越大,所以采用的是用目标点的位置减去此时的位置,然后乘以一个大于0小与1的数字,最后再整体取整(如果目标点比初始点大,就向上取整,如果目标点比初始点小就向下取整,而返回顶部的时候肯定是初始点比目标点小,所以要向下取整)。其他理解点都写在注释里面了

下面进行锚点知识的总结

1. 锚点跳转简介

锚点其实就是可以让页面定位到某个位置上的点。在高度较高的页面中经常见到。

锚点跳转有两种形式:

  • a标签 + name / href 属性
  • 使用标签的id属性


HTML代码

<a name="#top"><a/>

锚点使用

第一种使用:name/href

<a href="#top">点击跳转到顶部</a>
第二种:使用id标签
window.location.href="#top";

不建议使用window.location.hash="#top";的方法,因为经测试,此种方法只有在第一次时有效,后面再点击就无效了(即便刷新也无效,因为url地址已经改变了),而使用window.location.href="#top";一直有效





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

相关文章

crontab 日志_跟小编一起学习 crontab怎么使用

crontab 文件crontab 即 “cron table”&#xff0c;是一个简单的文本文件&#xff0c;其中包含指定任务执行时间间隔的规则和命令。 crontab 文件分为两类&#xff1a;1)系统范围的 crontab 文件这些通常由需要 root 特权的 Linux 服务及关键应用程序使用。系统 crontab 文件位…

今天觉得自己太累了!

头疼&#xff0c;这个星期太累了&#xff0c;老是有活&#xff0c;今天我误删了一条数据&#xff0c;我觉得要是平时就不会发生这种事情。真是要休息好啊&#xff01;&#xff01;转载于:https://www.cnblogs.com/zhangzheny/archive/2007/01/26/631190.html

再积累又一个很菜的问题:页面间用get方式传汉字

页面间用get方式传汉字&#xff0c;老是出现乱码&#xff0c;或出错&#xff0c;原来.net里提供了编码和解码的类HttpUtility &#xff0c; 例&#xff1a;比如说要传test.aspx?area北京&#xff0c; 先对“北京”编码&#xff1a;string bjHttpUtility.Url…

百叶窗效果

需要两个定时器&#xff1a;第一个定时器用来控制每四秒开启第二个定时器 第二个定时器作用&#xff1a;通过控制div的运动&#xff0c;实现百叶窗的效果&#xff0c;也即每100毫秒让一个div向上或向下运动一定的距离&#xff0c;当最后一个div运动完之后&#xff0c;关闭第二个…

css3新特性_CSS3新特性1

一、圆角1、定义使用 CSS3 border-radius 属性&#xff0c;你可以给任何元素制作 "圆角"。2、语法CSS3 border-radius - 指定每个圆角如果你在 border-radius 属性中只指定一个值&#xff0c;那么将生成 4 个 圆角。但是&#xff0c;如果你要在四个角上一一指定&…

js有层级图片切换的实现方法

实现原理&#xff1a;将要变化的数据以数组的方式存放在一个空数组中&#xff0c;当事件响应时&#xff0c;通过数组方法中的push()和shift()或者unshift()和pop()方法&#xff0c;先将数组中的第一个或者最后一个再次添加进数组中&#xff0c;然后再将第一个或最后一个删除&am…

python开源爬虫项目违法吗_爬虫究竟是合法还是违法的?

法律没有对爬虫行为有司法解释&#xff0c;从已有判决案例来看主要是看你数据用途/是否有商业竞争/商业侵权/扰乱破坏对方软件正常经营&#xff0c;而且必须是对方有证据来举证你。 现在已有案例对爬虫的判决依据是《刑法》第285条&#xff0c;非法获取计算机信息系统罪&#x…

关键字加亮--JS方法 (转载)

形如Google,Baidu的搜索关键字加亮&#xff0c;我比较了好几个&#xff0c;还是脚本之家的最好&#xff0c;javascript方法实现很简单&#xff0c;如果添加上面很炫&#xff0c;有需要的仁兄可以看看。1、单个关键字加亮代码&#xff1a; <div id"txt"> 用JS让…