js对css类操作示例1

环境:vscode , live-server , 火狐


主要是在html中设置

,在css中描述该类,如:
.modal { position: absolute; top: 50%; left: 50%; }
通过js控制css中类来实现页面变化的效果
如: xxxx.addEventListener('click', function () { console.log('xxxxx 按钮被点击了'); modal.classList.add('hidden'); overlay.classList.add('hidden'); });


一个例子来源bilibil Udemy排名第一的JavaScript课程,实现按钮点击弹出新页面和关闭该新页面
js对css类操作示例1_第1张图片
js对css类操作示例1_第2张图片
点击关闭,恢复原样


代码中起作用的的地方在于:js添加了hidden类,hidden类的作用是display=none,添加该类则页面不显示,去除该类则页面显示。

index.html (06-modal)

DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <link rel="stylesheet" href="style.css" />
    <title>Modal windowtitle>
  head>
  <body>
    <button class="show-modal">Show modal 1button>
    <button class="show-modal">Show modal 2button>
    <button class="show-modal">Show modal 3button>

    <div class="modal hidden">
      <button class="close-modal">×button>
      <h1>I'm a modal window h1>
      <p>
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
        tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
        veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
        commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
        velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
        occaecat cupidatat non proident, sunt in culpa qui officia deserunt
        mollit anim id est laborum.
      p>
    div>
    <div class="overlay hidden">div>

    <script src="script.js">script>
  body>
html>

css

* {
  margin: 0;
  padding: 0;
  box-sizing: inherit;
}

html {
  font-size: 62.5%;
  box-sizing: border-box;
}

body {
  font-family: sans-serif;
  color: #333;
  line-height: 1.5;
  height: 100vh;
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  background: linear-gradient(to top left, #28b487, #7dd56f);
}

.show-modal {
  font-size: 2rem;
  font-weight: 600;
  padding: 1.75rem 3.5rem;
  margin: 5rem 2rem;
  border: none;
  background-color: #fff;
  color: #444;
  border-radius: 10rem;
  cursor: pointer;
}

.close-modal {
  position: absolute;
  top: 1.2rem;
  right: 2rem;
  font-size: 5rem;
  color: #333;
  cursor: pointer;
  border: none;
  background: none;
}

h1 {
  font-size: 2.5rem;
  margin-bottom: 2rem;
}

p {
  font-size: 1.8rem;
}

/* -------------------------- */
/* CLASSES TO MAKE MODAL WORK */
.hidden {
  display: none; /* 被隐藏的原因 */
}

.modal {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 70%;

  background-color: white;
  padding: 6rem;
  border-radius: 5px;
  box-shadow: 0 3rem 5rem rgba(0, 0, 0, 0.3);
  z-index: 10;
}

.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(3px);
  z-index: 5;
}

js

'use strict';

const modal = document.querySelector('.modal');
const overlay = document.querySelector('.overlay');
const btnCloseModel = document.querySelector('.close-modal');
const btnsOpenModel = document.querySelectorAll('.show-modal');
console.log(btnsOpenModel);

for (let i = 0; i < btnsOpenModel.length; i++) {
  //   console.log(btnsOpenModel[i]);
  btnsOpenModel[i].addEventListener('click', function () {
    console.log('Button clicked 按钮被点击了');
    modal.classList.remove('hidden');
    overlay.classList.remove('hidden');
  });
}

btnCloseModel.addEventListener('click', function () {
  console.log('xxxxx 按钮被点击了');
  modal.classList.add('hidden');
  overlay.classList.add('hidden');
});

// overlay 叠加层
overlay.addEventListener('click',function(){
  modal.classList.add('hidden');
  overlay.classList.add('hidden');
})

// 对于以上两种都是想让页面关闭,使用函数,避免重复代码
const closeModal = function(){
  modal.classList.add('hidden');
  overlay.classList.add('hidden');
}

你可能感兴趣的:(笔记,css,javascript,前端)