回到顶部效果

  1. 最简单的静态返回顶部,点击直接跳转页面顶部,常见于固定放置在页面底部返回顶部功能
    方法一:用命名锚点击返回到顶部预设的id为top的元素
 <a href="#top" target="_self">返回顶部</a>

方法二:操作scrooll函数用来控制滚动条的位置(第一个参数是水平位置,第二个参数是垂直位置)

<a href="javascript:scroll(0,0)">返回顶部</a> 

缺点:返回效果是立即的,不符合一般浏览页面的滚动感觉;
静态固定于页面底部,用户不一定看得到。

  1. 简单的静态返回顶部,用js模拟滚动效果上滑至顶部
function pageScroll(){ 
//把内容滚动指定的像素数(第一个参数是向右滚动的像素数,第二个参数是向下滚动的像素数) 
window.scrollBy(0,-100); 
//延时递归调用,模拟滚动向上效果 
scrolldelay = setTimeout('pageScroll()',100); 
//获取scrollTop值,声明了DTD的标准网页取document.documentElement.scrollTop,否则取document.body.scrollTop;因为二者只有一个会生效,另一个就恒为0,所以取和值可以得到网页的真正的scrollTop值 
var sTop=document.documentElement.scrollTop+document.body.scrollTop; 
//判断当页面到达顶部,取消延时代码(否则页面滚动到顶部会无法再向下正常浏览页面) 
if(sTop==0) clearTimeout(scrolldelay); 
} 
<a onclick="pageScroll()">返回顶部</a> 

缺点:滚动效果不平滑,且在页面很长时点击返回顶部,未向上到达页面顶部无法再正常浏览页面;
同上依旧是静态固定于页面底部,不一定能曝光在用户面前。

3.动态按需加载返回顶部,css侧边屏幕绝对定位,结合简单jQuery动画实现更好体验

function gotoTop(min_height){ 
//预定义返回顶部的html代码,它的css样式默认为不显示 
var gotoTop_html = '<div id="gotoTop">返回顶部</div>'; 
//将返回顶部的html代码插入页面上id为page的元素的末尾 
$("#page").append(gotoTop_html); 
$("#gotoTop").click(//定义返回顶部点击向上滚动的动画 
function(){$('html,body').animate({scrollTop:0},700); 
}).hover(//为返回顶部增加鼠标进入的反馈效果,用添加删除css类实现 
function(){$(this).addClass("hover");}, 
function(){$(this).removeClass("hover"); 
}); 
//获取页面的最小高度,无传入值则默认为600像素 
min_height ? min_height = min_height : min_height = 600; 
//为窗口的scroll事件绑定处理函数 
$(window).scroll(function(){ 
//获取窗口的滚动条的垂直位置 
var s = $(window).scrollTop(); 
//当窗口的滚动条的垂直位置大于页面的最小高度时,让返回顶部元素渐现,否则渐隐 
if( s > min_height){ 
$("#gotoTop").fadeIn(100); 
}else{ 
$("#gotoTop").fadeOut(200); 
}; 
}); 
}; 
gotoTop(); 

css样式代码:

/*默认样式,主要是position:fixed实现屏幕绝对定位*/ 
#gotoTop{display:none;position:fixed;top:75%;left:50%;cursor:pointer;margin-top:-50px;margin-left:520px;padding:9px 4px;width:20px;text-align:center;border:1px solid #e0e0e0;background:#fff;} 
/*用CSS表达式(expression)来实现ie6下position:fixed效果*/ 
#gotoTop{_position:absolute;_top:expression(documentElement.scrollTop + documentElement.clientHeight * 3/4 + "px")} 
/*鼠标进入的反馈效果*/ 
#gotoTop.hover{background:#5CB542;color:#fff;text-decoration:none;} 

这种方法判断页面高度按需将“返回顶部”展示给用户,用css样式实现了屏幕绝对定位,借助jQuery实现了更好用平滑的滚动效果。进一步考虑如果用户设置了浏览器禁用js,那么我们可以将第三方案结合第一方案方法一,禁用js后第三方案将不被用户所见,未禁用的话我们在js代码中再加上一句隐藏第一方案。

总之,长页面还是要尽量避免的,不可避免的情况下,加上“返回顶部”功能可能会带给用户相对好一点的体验。

原文:原文链接

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <title> back2Top jquery html www.jiuni.com.cn </title>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="css/style.css" />
</head>
<body>
    <!--contenter-->
    <div style="width: 100%; height: 2000px;"></div>

    <!--backtoTop1-->
    <!--兼容所有现代浏览器同时包括 ie6/7/8/9 (ie6会有一点点抖动)-->
    <div id="backToTop1" class="backtoTop1"></div>


    <!--backtoTop2-->
    <!--兼容所有现代浏览器同时包括 ie7以上 -->
    <div id="backToTop2" class="backtoTop2"></div>

    <script src="js/jquery.min.js"></script>
    <script src="js/main.js"></script>
</body>
</html>

main.js

/**
 * backToTop1
 */
$(document).ready(function(){
    $(window).scroll( function() {               //滚动时触发
        var top = $(document).scrollTop(),       //获取滚动条到顶部的垂直高度
            height = $(window).height();         //获得可视浏览器的高度
        if(top > 100){
            $("#backToTop1").show(200, function(){
                $("#backToTop1").css({
                    top: height + top - 80
                })
            });
        }
    });
    /*点击回到顶部*/
    $('#backToTop1').click(function(){
        $('html, body').animate({
            scrollTop: 0
        }, 500);
    });
});
/**
 * backToTop2
 */
$(document).ready(function(){
    $(window).scroll( function() {               //滚动时触发
        var top = $(document).scrollTop();       //获取滚动条到顶部的垂直高度
        if(top > 100){                           //到一定高度显示
            var height = $(window).height();     //获得可视浏览器的高度
            $("#backToTop2").fadeIn(300).css({
                top: height-80
            });
        }
        if(top < 100){                            //小于100消失
            $("#backToTop2").fadeOut(200);
        }
    });
    /*点击回到顶部*/
    $('#backToTop2').click(function(){
        $('html, body').animate({
            scrollTop: 0
        }, 500);
    });
});

style.css

/*backtoTop*/
.backtoTop1{
    height: 40px;
    width: 50px;
    position: absolute; //绝对定位
    padding-top: 8px;
    right: 10px;
    z-index: 9999;
    /*避免闪烁*/
    -moz-transition: all 1s ease;
    -webkit-transition: all 1s ease;
    -o-transition: all 1s ease;
    transition: all 1s ease;
    /*避免闪烁*/
    background: blue;
    cursor: pointer;
    text-align: center;
}
.backtoTop2{
    height: 40px;
    width: 50px;
    position: fixed;     //固定定位
    padding-top: 8px;
    right: 100px;
    z-index: 9999;
    background: red;
    cursor: pointer;
    text-align: center;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用JavaScript来实现回到页面顶部的动画效果。以下是一个简单的示例代码: ```javascript // 获取回到顶部按钮 var scrollToTopBtn = document.getElementById("scrollToTopBtn"); // 监听页面滚动事件 window.onscroll = function() { // 如果页面滚动超过100px,则显示回到顶部按钮,否则隐藏按钮 if (document.documentElement.scrollTop > 100 || document.body.scrollTop > 100) { scrollToTopBtn.style.display = "block"; } else { scrollToTopBtn.style.display = "none"; } }; // 监听回到顶部按钮的点击事件 scrollToTopBtn.onclick = function() { // 使用平滑滚动动画效果回到页面顶部 scrollToTop(0, 500); // 第一个参数为目标位置,第二个参数为滚动时间(毫秒) }; // 定义平滑滚动函数 function scrollToTop(to, duration) { if (duration <= 0) return; var difference = to - document.documentElement.scrollTop || document.body.scrollTop; var perTick = difference / duration * 10; setTimeout(function() { document.documentElement.scrollTop += perTick; document.body.scrollTop += perTick; if (document.documentElement.scrollTop === to || document.body.scrollTop === to) return; scrollToTop(to, duration - 10); }, 10); } ``` 在上面的代码中,首先获取了回到顶部按钮的元素,并监听了页面滚动事件。当页面滚动超过100px时,显示回到顶部按钮,否则隐藏按钮。点击回到顶部按钮时,调用`scrollToTop`函数实现平滑滚动动画效果回到页面顶部。该函数使用递归实现每隔10毫秒滚动一段距离,直到滚动到目标位置或滚动时间结束。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值