javascript - 在导航栏中单击时如何更改背景内容?
问题描述
我正在尝试创建一个带有背景视频的网站。我的想法是将背景视频作为横幅,每次用户在导航栏中更改类别时,背景视频和正文内容都会更改。
到目前为止,我已经设法使用一些滑块按钮来更改视频,但我真的不想要它们。我希望用户单击导航栏并自动更改视频。如果用户单击类别 1,则显示视频 1,如果他单击类别 2,则显示视频 2,依此类推。
任何人都可以帮我一些想法吗?我附上我的 HTML 和 JS:
//MENU RESPONSIVE
const menuBtn = document.querySelector(".menu-btn");
const navigation = document.querySelector(".navigation");
menuBtn.addEventListener("click", () => {
menuBtn.classList.toggle("active");
navigation.classList.toggle("active");
});
//Video Slider Nav
const btnsSlide = document.querySelectorAll(".nav-btn");
const slides = document.querySelectorAll(".video-slide");
const contents = document.querySelectorAll(".content");
let sliderNav = function (manual) {
btnsSlide.forEach((btn) => {
btn.classList.remove("active")
});
slides.forEach((slide) => {
slide.classList.remove("active")
});
contents.forEach((content) => {
content.classList.remove("active")
});
btnsSlide[manual].classList.add("active");
slides[manual].classList.add("active");
contents[manual].classList.add("active");
}
btnsSlide.forEach((btn, i) => {
btn.addEventListener("click", () => {
sliderNav(i);
})
});
inicio.forEach((btn, i) => {
btn.addEventListener("click", () => {
sliderNav(i);
})
});
<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>Website</title>
<script src="https://kit.fontawesome.com/f17ab486c8.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<header>
<a href="#" class="brand"><img src="img/logo.png" alt="" width="30%"></a>
<div class="menu-btn"></div>
<div class="navigation">
<div class="navigation-items">
<a href="#">Category 1</a>
<a href="#">Category 2</a>
<a href="#">Category 3</a>
</div>
</div>
</header>
<section class="home" id="home">
<video class="video-slide active" src="img/01.mp4" autoplay muted loop></video>
<video class="video-slide active" src="img/02.mp4" autoplay muted loop></video>
<video class="video-slide" src="img/03.mp4" autoplay muted loop></video>
<div class="content active">
<h1>Title<br><span>1</span></h1>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Eos veniam labore consequatur, ab perferendis
vero aliquid provident temporibus eius, iste optio. Quia aliquam temporibus obcaecati perferendis,
voluptatem necessitatibus accusamus ipsum.</p>
<a href="#">Learn more</a>
</div>
<div class="content">
<h1>Title<br><span>2</span></h1>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Eos veniam labore consequatur, ab perferendis
vero aliquid provident temporibus eius, iste optio. Quia aliquam temporibus obcaecati perferendis,
voluptatem necessitatibus accusamus ipsum.</p>
<a href="#">Read More</a>
</div>
<div class="slider-navigation">
<div class="nav-btn"></div>
<div class="nav-btn"></div>
</div>
</section>
<script src="script.js"></script>
</body>
解决方案
推荐阅读
- android - Android:通过 android >=11 中的反射访问非 sdk(制造商提供的库)API
- netsuite - SuiteScript - 从“供应商”中搜索加入“术语”
- reactjs - 如何在 Create React App SPA 中选择性地呈现代码?
- c++ - 如何使用 ifstream 获取文件中的最新更改?
- r - 平均R中的不同列
- sql - SQL:您如何计算设施的占用率/使用中的数量?
- arrays - 为什么我不能迭代在 C 中返回的字符串?
- javascript - 如何将 Ajax 请求发送到同一服务器的不同 url
- java - 如何在android studio中保存seekbar值?
- opencv - 如何修复 gocv 上的 GLCM 调用