楼层滚动效果级,
系列文章目录
一、楼层滚动效果图如下
1. 下图是纯Css实现的楼层滚动
2.通过Js优化后的楼层滚动如下图(🌹🌹)
二、楼层滚动(Css实现)
1.滚动原理
- 使用了一个 Css的属性值
scroll-behavior
。 对应的信息可以查找网上的资料。- 使用了
锚点
功能。和对应的标签上的 id属性
2.代码如下
<!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>Document</title>
<style>
* {
padding: 0;
margin: 0;
}
main {
width: auto;
height: 100vh;
padding: 0 10px;
overflow-y: scroll;
scroll-behavior: smooth;
}
body ul {
position: fixed;
top: 50px;
right: 50px;
background-color: aliceblue;
}
ul li {
width: 100%;
height: 35px;
line-height: 35px;
text-align: center;
border-bottom: 1px solid black;
list-style: none;
}
ul li:active{
background-color: rgb(255, 170, 0);
}
a {
text-decoration: none;
}
a:hover {
color: brown;
}
</style>
</head>
<body>
<ul>
<li> <a href="#sectionOne"> sectionOne</a> </li>
<li> <a href="#sectionTwo"> sectionTwo</a> </li>
<li> <a href="#sectionThree"> sectionThree</a> </li>
<li> <a href="#sectionFour"> sectionFour</a> </li>
<li> <a href="#sectionFive"> sectionFive</a> </li>
<li> <a href="#sectionSix"> sectionSix</a> </li>
<li> <a href="#sectionSeven"> sectionSeven</a> </li>
<li> <a href="#sectionEight"> sectionEight</a> </li>
</ul>
<main>
<section id="sectionOne" style="height: 500px;background-color: rgb(81, 185, 245);margin-bottom: 30px;">
sectionOne
</section>
<section id="sectionTwo" style="height: 500px;background-color: rgb(172, 176, 180);margin-bottom: 30px;">
sectionTwo</section>
<section id="sectionThree" style="height: 500px;background-color: rgb(87, 216, 201);margin-bottom: 30px;">
sectionThree</section>
<section id="sectionFour" style="height: 500px;background-color: aliceblue;margin-bottom: 30px;">
sectionFour
</section>
<section id="sectionFive" style="height: 500px;background-color: rgb(180, 153, 74);margin-bottom: 30px;">
sectionFive</section>
<section id="sectionSix" style="height: 500px;background-color: rgb(96, 99, 175);margin-bottom: 30px;">
sectionSix</section>
<section id="sectionSeven" style="height: 500px;background-color: rgb(224, 70, 238);margin-bottom: 30px;">
sectionSeven</section>
<section id="sectionEight" style="height: 500px;background-color: rgb(226, 141, 101);margin-bottom: 30px;">
sectionEight</section>
</main>
</body>
<script>
</script>
</html>
三、楼层滚动(Js Css优化后的楼层滚动)
HTML、CSS代码如下
<style>
* {
padding: 0;
margin: 0;
}
main {
width: auto;
height: 100vh;
padding: 0 10px;
overflow-y: scroll;
scroll-behavior: smooth;
}
body ul {
position: fixed;
top: 50px;
right: 50px;
background-color: aliceblue;
}
ul li {
width: 100%;
height: 35px;
line-height: 35px;
text-align: center;
border-bottom: 1px solid black;
list-style: none;
}
a {
display: inline-block;
width: 100%;
height: 100%;
text-decoration: none;
}
a:hover {
color: brown;
}
</style>
<body>
<ul>
<li><a href="#sectionOne"> sectionOne</a></li>
<li><a href="#sectionTwo"> sectionTwo</a></li>
<li><a href="#sectionThree"> sectionThree</a></li>
<li><a href="#sectionFour"> sectionFour</a></li>
<li><a href="#sectionFive"> sectionFive</a></li>
<li><a href="#sectionSix"> sectionSix</a></li>
<li><a href="#sectionSeven"> sectionSeven</a></li>
<li><a href="#sectionEight"> sectionEight</a></li>
</ul>
<main>
<section id="sectionOne" style="
height: 500px;
background-color: rgb(81, 185, 245);
margin-bottom: 30px;
">
sectionOne
</section>
<section id="sectionTwo" style="
height: 500px;
background-color: rgb(172, 176, 180);
margin-bottom: 30px;
">
sectionTwo
</section>
<section id="sectionThree" style="
height: 500px;
background-color: rgb(87, 216, 201);
margin-bottom: 30px;
">
sectionThree
</section>
<section id="sectionFour" style="height: 500px; background-color: aliceblue; margin-bottom: 30px">
sectionFour
</section>
<section id="sectionFive" style="
height: 500px;
background-color: rgb(180, 153, 74);
margin-bottom: 30px;
">
sectionFive
</section>
<section id="sectionSix" style="
height: 500px;
background-color: rgb(96, 99, 175);
margin-bottom: 30px;
">
sectionSix
</section>
<section id="sectionSeven" style="
height: 500px;
background-color: rgb(224, 70, 238);
margin-bottom: 30px;
">
sectionSeven
</section>
<section id="sectionEight" style="
height: 500px;
background-color: rgb(226, 141, 101);
margin-bottom: 30px;
">
sectionEight
</section>
</main>
</body>
JS代码如下
<script>
let arr = [];
let obj = null
var sectionTags = document.querySelectorAll("section");
var main = document.querySelector("main");
var ul = document.querySelector("ul");
var aTags = document.querySelectorAll("a");
function removeColor() {
aTags.forEach((element) => {
element.style.background = "none";
});
}
function getheight() {
sectionTags.forEach((element) => {
arr.push(element.offsetTop);
});
}
function scrollMoveColor(e) {
let scrollTop = e.srcElement.scrollTop;
for (let i = 0; i < arr.length; i ) {
if (scrollTop <= arr[i]) {
removeColor();
aTags[i].style.background = "rgb(255, 170, 0)";
break;
}
}
}
getheight();
main.addEventListener("scroll", scrollMoveColor);
ul.addEventListener("click", function (e) {
if (obj) {
clearTimeout(obj)
main.removeEventListener("scroll", scrollMoveColor);
removeColor();
e.target.style.background = "rgb(255, 170, 0)";
}
obj = setTimeout(() => {
main.addEventListener("scroll", scrollMoveColor);
}, 1000);
});
</script>
总结(收工)
由于这里,只对跳转功能尽进行了展示。
后续还会将【滚动条滚动到对应的区域】对应的标题进行高粱的功能进行优化!! 💪💪
目前:超简单的楼层滚动效果已经✅
如果对代码有疑问(🤔️)的👨🎓(👩🎓),一定要记得联系作者!!!!!!
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgeiakb
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01