移动端返回顶部

文章目录

    • 一、案例分析
    • 二、代码实现
      • 1.HTML 文档
      • 2.CSS 文档
      • 3.JS 文档
    • 三、运行结果

一、案例分析

① 头部搜索栏固定定位,这样滚动时不会将搜索栏也卷进去,并将z-index 层级设为最大;
② 同 PC 端页面滚动一样,给 window 添加滚动事件;
③ 先将 goback 的 display 设为 none 隐藏起来,当 window.pageYOffset 大于1000时,显示返回顶部模块,小于1000则隐藏;
④ 点击返回顶部,页面就滚动到最开始的位置,我们可以 scroll(0, 0),但是页面立马跳回原处会显得十分突兀,降低了用户体验;
⑤ 对此,我们添加动画函数实现缓动效果,使页面相对缓慢地返回到最顶端。

二、代码实现

1.HTML 文档

DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Documenttitle><link href="返回顶部.css" rel="stylesheet"/><script src="返回顶部.js">script>
head>
<body><div class="head"><input type="text" class="search" placeholder="  搜索"/><div class="user"><a href="javascript:;">我的a>div>div><div class="content"><ul class="picture"><li><a href="javascript:;"><img src="picture//图1.jpg"/>a>li><li><a href="javascript:;"><img src="picture//图2.jpg"/>a>li><li><a href="javascript:;"><img src="picture//图3.jpg"/>a>li><li><a href="javascript:;"><img src="picture//图4.jpg"/>a>li><li><a href="javascript:;"><img src="picture//图5.jpg"/>a>li><li><a href="javascript:;"><img src="picture//图6.jpg"/>a>li>ul>div><span class="goback"><img src="picture//顶部.png"/>span>
body>
html>

2.CSS 文档

* {margin: 0;padding: 0;
}
.head {position: fixed;width: 100%;height: 52px;top: 0;background-color: aliceblue;z-index: 999;
}
.search {position: absolute;width: 80%;height: 32px;margin: 10px;border: 1px solid #ccc;
}
.user {position: absolute;width: 42px;height: 42px;right: 10px;margin: 5px auto;
}
.head a {display: inline-block;width: 42px;height: 42px;text-decoration: none;font-size: 10px;text-align: center;line-height: 42px;color: aliceblue;border-radius: 50%;background-color: rgb(107, 107, 230);
}
.content {position: relative;width: 100%;height: 2400px;margin: 52px auto;overflow: hidden;
}
.picture {width: 100%;height: 2400px;
}
.picture img {width: 100%;height: 400px;
}
.goback {display: none;position: fixed;bottom: 50px;right: 10px;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #ccc;overflow: hidden;padding: 8px;background-color: aliceblue;
}
.goback img {width: 30px;height: 30px;
}

3.JS 文档

window.addEventListener('load', function() {var content = document.querySelector('.content');var goback = document.querySelector('.goback');window.addEventListener('scroll', function() {if (window.pageYOffset > 1000) {goback.style.display = 'block';} else {goback.style.display = 'none';}})goback.addEventListener('click', function() {animate(window, 0);})function animate(obj, target, callback) {clearInterval(obj.timer); obj.timer = setInterval(fn, 13);function fn() {var step = (target - window.pageYOffset) / 5;step = step > 0 ? Math.ceil(step) : Math.floor(step);if (window.pageYOffset == target) {clearInterval(obj.timer);if (callback) {callback();}}window.scroll(0, window.pageYOffset + step);}}
})

三、运行结果

在这里插入图片描述
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部