Navbar是每个前端心手都会练习到的部分,本日任务另外添加一个小小的效果:下拉网页时改变Navbar样式。实作请参考CodePen
JS部分其实很简单:就是在window挂上监听器,监听scroll行为。
如果scroll在Y轴的长度达到预期的数字,就改变nav的属性。
const nav = document.querySelector('.nav')
window.addEventListener('scroll', fixNav)
function fixNav() {
// 若视窗在Y轴的移动长度大於nav高度+150px时,就为nav加上.active选择器
if(window.scrollY > nav.offsetHeight + 150) {
nav.classList.add('active')
} else {
nav.classList.remove('active')
}
}
您可以在codepen当中console.log window.scrollY和nav.offsetHeight,查看实际的触发点是否符合程序码:
SCSS部分(节录)
这里有运用伪元素和z-index属性,做出一个滤镜效果,让文字从背景跳出来。
.mainTitle {
background-image: url('https://images.pexels.com/photos/450035/pexels-photo-450035.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260');
background-repeat: no-repeat;
background-size: cover;
background-position: bottom center;
height: 100vh;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
position: relative;
margin-bottom: 20px;
z-index: -2;
h1 {
font-size: 46px;
margin: -20px 0 20px;
}
p {
font-size: 20px;
letter-spacing: 1px;
}
&::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
z-index: -1;
}
}
>>: 【DAY 6】沟通 0 距离 - Micorsoft Teams 的应用技巧
前言 铁人赛进入第十九天,今天要来讲讲如何用Docker 打造程序开发环境 Docker 的维基百科...
前言 这篇介绍 DOM Event Listener - 事件监听 (总觉得监听这个翻译很有抓奸的画...
今天是第三十天!!首先先给我一个拥抱!! 很感谢我自己这麽有毅力的连续发文三十天,其实学习的时间不只...
前言 [Day 24] LIFF ScanCode曾提过liff.scanCode()因技术问题,功...
本篇文章同步发表在 HKT 线上教室 部落格,线上影音教学课程已上架至 Udemy 和 Youtu...