前端笔试题笔记(回到顶部组件)

前端笔试题笔记(回到顶部组件)

题目要求:当页面向下滚动距顶部一定距离(如100px)时出现,向上回滚距顶部低于同样距离时隐藏,点击返回顶部组件时页面滚动到顶部;



这题一共4个问题要解决:向下滚动距顶部一定距离(如100px)时出现、上回滚距顶部低于同样距离时隐藏、点击返回顶部组件时页面滚动到顶部、始终定位在某个位置(一般来说是右下角)

第一个和第二个问题用在window.onscrollTop中,判断document.body.scrolTop的值加以判断即可,同时设定空间的display最原始的为none,要显示的时候设定为block即可。第三个问题就是设定document.body.scrollTop=”0px”就可以了。第四个问题有两个方法,1:position为fixed,然后设定right,bottom或者left,top。2:position为absolute,然后在滚动时不断调整top属性值,向下滚动多少top值就增加多少

方法一

最简单的方法,就是使用超链接标签,设置href属性为”#”,然后在window.onscroll方法中控制标签的出现和隐藏

方法二

使用按钮,在onclick事件中设置window.onscrollTop=”0px”即可

完整代码:

<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>返回顶部</title>
    <style type="text/css">
    #GoTop{
        position:fixed;
        display:none;
        right:20px;
        bottom:50px;
    }
    #GoTopa{
        display:none;
        position: fixed;
        bottom: 25px;
        right: 20px;
        height: 25px;
        width:25px;
        text-decoration: none;
        overflow: hidden;
        background-image: url(http://edu.qzonestyle.gtimg.cn/aoi/sprite/icenter.32-man150205175833.png);
        background-position: -153px 0;
    }
    </style>
</head>

<body style="height:2000px">
<input id="GoTop" type="button" onclick="GoTop()" value="返回顶部">
<a id="GoTopa" href="#"></a>
<script>
window.onload=function (){
    var screenw = document.documentElement.clientWidth || document.body.clientWidth;
    var screenh = document.documentElement.clientHeight || document.body.clientHeight;
    var oTop=document.getElementById("GoTop");
    var oTop1=document.getElementById("GoTopa");
    window.onscroll=function(){
        var scrolltop = document.documentElement.scrollTop || document.body.scrollTop;
        if(scrolltop>100){
            oTop.style.display="block";
            oTop1.style.display="block";
            //如果position设置为absolute,则使用这句代码使控件始终停留在页面的右下角
            //oTop.style.top=screenh - oTop.offsetHeight + scrolltop-10 +"px";
        }else{
            oTop.style.display="none";
            oTop1.style.display="none";
        }

    }
}

function GoTop(){
    //下面两句代码效果一样,为了兼容起见
    document.documentElement.scrollTop=0;
    document.body.scrollTop=0;
}

</script>
</body>
</html>
时间: 2024-08-25 13:12:57

前端笔试题笔记(回到顶部组件)的相关文章

阿里2道前端笔试题+堆糖2道前端笔试题

阿里前端笔试题 1.一个表格HTML代码如下 <table id="table1"> <tbody> <tr><td>1</td><td><button>Delete</button></td></tr> <tr><td>2</td><td><button>Delete</button></

也许你需要点实用的-Web前端笔试题

之前发的一篇博客里没有附上答案,现在有空整理了下发出来,希望能帮助到正在找工作的你,还是那句话:技术只有自己真正理解了才是自己的东西,共勉. Web前端笔试题 Html+css 1.对WEB标准以及w3c的理解与认识. 标签闭合,标签小写,不乱嵌套:提高搜索机器人的搜索几率: 使用外联的css和js,结构行为表现的分离:文件下载与页面加载速度更快,内容能被更广泛的设备所访问: 更少的代码和组件:容易维护,改版方便,不需要变动页面内容,提供打印版本而不需要复制内容,提高网站的易用性. 2.Xhtm

便利蜂2019秋季web前端笔试题v2.6

便利蜂2019秋季(11月)web前端笔试题前端技能试题v2.6 一.单选题(总共8分,每题2分)1.以下不属于HTTP缓存控制协议头是( )A. Cache-Control    B. Content-Type   C.Etag   D.Vary考点:web缓存只http技术答案:B分析:已经系统了解了web缓存策略,总结了笔记,可以点此查看.Content-Type是响应头告诉浏览器返回的资源的MIME类型. 2.cookie特性下列说法正确的是( )A. cookie没有长度限制,可以无限

&lt;转&gt;网易2016实习生前端笔试题部分总结

网易2016实习生前端笔试题部分总结 原文地址:http://www.cnblogs.com/venoral/p/5325202.html 这只是部分题,答案为个人观点如有错误欢迎指出,感觉考点都挺基础,但是很注重考细节方面,通过整理也知道自己在CSS3和HTML5,网络知识等方面的不足还是得多学多练多思考.攒rp,希望自己在明天360笔试中能轻松答过~ css 1.多选 //HTML <p>很长的一段文字,很长的一段文字,很长的一段文字,特别长的文字</p> //CSS p{ w

经典的阿里前端笔试题

1 请说明下面各种情况的执行结果,并注明产生对应结果的理由. function doSomething() { alert(this); } ① element.onclick = doSomething,点击element元素后. ② element.onclick = function() {doSomething()}, 点击element元素后. ③ 直接执行doSomething(). 参考答案: 1.element:调用执行时直接指向事件元素. 2.window:函数调用中的 thi

js+html+css实现简单页面交互功能(2015知乎前端笔试题)http://v.youku.com/v_show/id_XMTI0ODQ5NTAyOA==.html?from=y1.7-1.2

js+html+css实现简单页面交互功能(2015知乎前端笔试题) http://v.youku.com/v_show/id_XMTI0ODQ5NTAyOA==.html?from=y1.7-1.2 密码:hellozhihu

前端笔试题:拍扁多维数组、提取URL中的参数变成对象、实现string的trim()函数、判断Email地址、16进制颜色转rgb格式

(1)拍扁数组 这是一个著名互联网公司今天的前端笔试题:多维数组维数不定,如[2,4,1,[2,3,4,[1,2],5,3],3,8]拍扁为[2,4,1,2,3,4,1,2,5,3,3,8].维数不定,应该要用递归: 答案: function flatten(arr){ var arrLength=arr.length; for(var i=0;i<arrLength;i++){ if(arr[i].constructor==Array){ arr.splice(i,1,flatten(arr[

前端笔试题汇总整理

一.Js对象 1.如何根据逗号分隔的字符串创建数组呢?请为下面的字符串创建一个数组,并访问第三个元素:"cats,dogs,birds,horses" 知识点:数组和字符串的转换.考察split() 方法.把一个字符串分割成字符串数组(将字符串按某个字符切割成若干个字符串,并以数组形式返回) var animalString="cats,dogs,birds,horses"; var animalArray=animalString.split(",&qu

前端笔试题总结---持续更新

写在前面:.... 1字符串逆序 function reverse(str){ return str.split("").reverse().join("");//直接用函数 var str1="";//从后向前输出 for(var i=str.length-1;i>=0;i--){ str1+=str[i]; } return str1; var len=str.length;//字符串原地逆序 for(var i=0;i<len;