zoukankan      html  css  js  c++  java
  • JavaScript实现回到顶部

    HTML页面使用一个a标签,href内填写JavaScript:;以阻止默认行为,在学习实例的时候添加一个大的div来充实页面。

    demo:

      <a href="javascript:;" id="btn" title="回到顶部"></a>

      其css代码为:

    #btn{
    display: none;
    position: fixed;
    left: 90%;
    bottom: 40px;
    height:60px;
    60px;
    background: url(img/22.ico) no-repeat left top;
    background-size:100% auto;
    border: solid 1px red;
    border-radius: 5px;
    }

    补充几句话:

    CSS书写顺序
    1.位置属性(position, top, right, z-index, display, float等)
    2.大小(width, height, padding, margin)
    3.文字系列(font, line-height, letter-spacing, color- text-align等)
    4.背景(background, border等)
    5.其他(animation, transition等)
     
    给回到顶部一个美化,红色边框让你更容易看到它。
     
    JavaScript部分代码:
    window.onload = function(){
                    //获取相关
                    var mybtn = document.getElementById("btn");
                    var Time1 = null;
                    var isTop = true;
    
                    mybtn.onclick = function(){
                        //设置定时器
                        Time1 = setInterval(function(){
                            var osTop = document.body.scrollTop||document.documentElement.scrollTop;
                            //ceil向上取整,floor向下取整
                            var speed = Math.ceil(osTop/2);
                            //做一个变换速度的回到顶部效果
                            document.body.scrollTop = document.documentElement.scrollTop = osTop - speed;
                            if(osTop <= 0){
                                //清除定时器
                                clearInterval(Time1);
                            }
                            isTop = true ;
                        },100)
                    }
                    
                    //页面滚动自动触发:
                    window.onscroll = function(){
                        //获取页面可视区高度和滚动高度
                        var osTop = document.body.scrollTop||document.documentElement.scrollTop;
                        //这两个获取滚动的方法可以兼容多种浏览器
                        var clientHeight = document.documentElement.clientHeight;
                        //对回到顶部的隐藏和显示,在css中一开始可以设置为隐藏
                        if (osTop>clientHeight) {
                            mybtn.style.display = "block"
                        }
                        else{
                            mybtn.style.display = "none"
                        }
                        if (!isTop) {
                            clearInterval(Time1);
                        }
                        isTop = false;
                    }
                }

    另外补充:

    1、各浏览器下 scrollTop的差异 
    IE6/7/8: 
    对于没有doctype声明的页面里可以使用  document.body.scrollTop 来获取 scrollTop高度 ; 
    对于有doctype声明的页面则可以使用 document.documentElement.scrollTop; 
    Safari: 
    safari 比较特别,有自己获取scrollTop的函数 : window.pageYOffset ; 
    Firefox: 
    火狐等等相对标准些的浏览器就省心多了,直接用 document.documentElement.scrollTop ; 
    2、获取scrollTop值 
    完美的获取scrollTop 赋值短语 : 
    var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

    通过这句赋值就能在任何情况下获得scrollTop 值。 

    最后说明:

      本人学习来自百度搜索,祝大家利用好网络搜索。

     
     
  • 相关阅读:
    nginx 启动报错 “/var/run/nginx/nginx.pid" failed” 解决方法
    FastDFS+Nginx搭建Java分布式文件系统
    如何优雅使用Sublime Text3(Sublime设置豆沙绿背景色和自定义主题)
    HTTP请求/响应报文结构
    自学编程你得先看看这篇,你能收获很多
    年薪50W京东软件测试工程师的成长路——我们都曾一样迷茫
    学会Python除了不能生孩子,其他的都能做。
    面试题千变万化,为什么总是会问MySQL?
    要做有灵魂的程序员!!
    软件测试基础自学之测试基础理论,先看完这篇你再做测试
  • 原文地址:https://www.cnblogs.com/scar-and-me/p/6097374.html
Copyright © 2011-2022 走看看