Javascript 实现回到顶部效果

html文件代码:

<!DOCTYPE html>
<html>
<head>

    <title></title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <script type="text/javascript" src="script.js"></script>
</head>
<body>
    <div class="box">
        <img src="bg.png">
    </div>
    <a href="javascript:;" id="btn" title="回到顶部"></a>
</body>
</html>

css文件代码:

.box{
    width: 999px;
    margin: 0 auto;
}
#btn{
    width: 40px;
    height: 40px;
    display: none;  /*默认不显示回到顶部图标*/
    position: fixed;
    left: 50%;
    margin-left: 470px;
    bottom: 30px;
    background:url(back_top.png) no-repeat left top;/*背景图的位置是从元素的左上方开始显示*/
}
#btn:hover{
    background:url(back_top.png) no-repeat left -40px;  /*鼠标放到回到顶部链接时改变的样式
}

回到顶端图标:

JS文件代码:

//页面渲染完触发
window.onload = function(){
    var obtn = document.getElementById(‘btn‘);
    var clientHeight = document.documentElement.clientHeight;//获取内容可视区域高度(视口高度)
    var timer = null;

    //滚动轴滚动时触发
    window.onscroll = function(){
        var osTop = document.documentElement.scrollTop||document.body.scrollTop;//获取滚动轴垂直偏移,后半部分为兼容谷歌浏览器
        //当滚动轴垂直偏移大于等于视口高度时显示回到顶端图标
        if (osTop >= clientHeight) {
            obtn.style.display = ‘block‘;
        }else{
            obtn.style.display = ‘none‘;
        };
    }

    obtn.onclick = function(){  //点击事件

        timer = setInterval(function(){
                var osTop = document.documentElement.scrollTop||document.body.scrollTop;//兼容谷歌
                var ispeed = Math.floor(-osTop / 5); //若不是整数,向下舍入

                document.documentElement.scrollTop = document.body.scrollTop = osTop + ispeed;//回到顶端的速度不断减缓
                if (osTop == 0) {
                    clearInterval(timer); //回到顶端时清除计时器
                };
        },30);
    }
} 

效果截图:

1、不显示回到顶端图标

2、当滚动轴滚动垂直偏移大于视口高度出现回到顶端图标

3、鼠标移入图标改变,点击后回到顶部

时间: 2024-08-06 23:37:24

Javascript 实现回到顶部效果的相关文章

用Javascript实现回到顶部效果

用Javascript实现回到顶部效果 经常看到网页中有回到顶部的效果,今天也研究一下回到顶部有哪些方法.众所周知,用锚链接是实现回到最简单的方法,但是从用户体验效果来说,并不是最好的.(锚链接回到顶部时太快了,而且用户可能在看到某个感兴趣的东西想停下来,却停不下来),针对上面的缺点,我们试着用Javascript的方法来得到实现.思路是这个样子的: 1.首先用html和css构建基本的例子,代码如下 html部分: <div class="box"> <img sr

JavaScript实现的回到顶部效果

参考自:http://www.imooc.com/learn/65 几乎所有的网站都会有回到顶部的功能,可以直接用锚点(#)实现,但是跳转的很生硬. 1.使用插件,我之前在介绍两个JQuery插件 — 滚动和轮播说过一个滚动插件,使用效果不错. 我在自己的小项目使用了:旅行笔记 2.原生的JS实现. 有两个点,一个是window 的滚动事件:window.onscroll,另一个是setInterval和clearInterval. 具体内容见代码,里面注释了. window.onload =

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; width:

jquery实现&quot;跳到底部&quot;,&quot;回到顶部&quot;效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

自写jquery网页回到顶部效果,渐隐图标,引用js文件即可

唔,进来开发需求,当网页内容草鸡多的时候,用户就需要有个按钮快速回到顶部,而不是自己去滚滑轮~ 原本以为比较难的说,因为上头要求全部用js来实现,哪个页面引用,哪个页面显示. 于是乎,本屌丝就尝试写了下,唔,没发现,还挺easy的说~~ 有屁我就快放了,直接上代码,屁放多了就成屎了~~唔,罪过,阿弥陀佛,阿门~~ $(function(){ var $btn_top = $('<a id="scrollTop"><img src="css/web/image

用javascript实现的“回到顶部”效果

最近在学习js,学习的视频来源是妙味js视频,在此首先感谢. 学到BOM这块的时候感触颇多,老师用的例子是“返回顶部”这个效果,虽然是个很老的效果,但是从中获益颇多.现记录如下:首先是HTML代码: 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <style> 5 #btn1 {position:fixed; bottom:0; right:0;} 6 </style> 7 <meta http-equiv=&

回到顶部效果

<style> .box { width: 1190px; margin: 0 auto; } #btn { width: 40px; height: 40px; background: url(images.png) no-repeat left top;//回到顶部的小箭头 position: fixed; left: 50%; margin-left: 600px; bottom: 30px; display: none; } #btn:hover { background: url(i

实用的回到顶部效果

在各大网站上我们都可以看到一个回到顶部按钮,但它是怎么做的呢? 其实很简单,我们只需要将scrollTop的值置为0即可.但为了让回滚的效果更舒服,我们需要利用一点运动学的知识让页面滚动的速度由快变慢,例如speed = scrollTop/8. 先给出布局代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>

JS原生回到顶部效果

// 回到顶部 onload = function () { var oBtnTop = document.getElementById('toTop'); var timer = null; oBtnTop.onclick = function () { moveScroll(0, 500); return false; }; function moveScroll( iTarget, time ) { // 起点 var start = document.documentElement.sc