I would like to make my navbar start out as transparent but when a user scrolls the navbar will change color / background-color. I am using a bootstrap navbar and react.
jsx code:
import React, { Component } from 'react';
import '../css/nav.scss';
import { Link, NavLink } from 'react-router-dom';
import 'react-bootstrap';
class Navbar extends Component {
state = {};
render() {
return (
<nav className="navbar sticky-top navbar-expand-lg ">
<NavLink
to="/"
class="navbar-brand"
activeClassName="navbar-brand--active"
>
Web_Env
</NavLink>
<button
class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbarNavDropdown"
aria-controls="navbarNavDropdown"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavDropdown">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link" href="#">
Create post
</a>
</li>
</ul>
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<NavLink
to="/login"
className="nav-link"
activeClassName="nav-link--active"
>
Login
</NavLink>
</li>
<li className="nav-item">
<NavLink
to="/register"
className="nav-link"
activeClassName="nav-link--active"
>
Register
</NavLink>
</li>
</ul>
</div>
</nav>
);
}
}
export default Navbar;
css code:
$color1: #aceca1;
$bgcolor1: #629460;
.navbar {
background-color: $bgcolor1 !important;
.navbar-brand {
color: lighten($color1, 10%);
font-weight: bold;
font-size: 2em;
.navbar-brand--active {
color: white;
font-weight: bold;
font-size: 2em;
}
}
.nav-link {
color: $color1;
font-size: 1.1em;
transition: 200ms;
}
.nav-link--active {
color: white !important;
transform: scale(1.1);
font-weight: 10px;
}
.nav-link:hover {
color: white !important;
transform: scale(1.1);
text-decoration: none !important;
font-weight: 10px;
}
}
I have looked at a previous post about this from 2 years ago but being a beginner I didn't really understand any of it. If possible an explanations alongside the code would help me very much.