JS第八次笔记

83 阅读3分钟

1.操作表单元属性

(1)

image.png

<body>
  <input type="text" value="李茜茜">
  <br>
  <input type="password" value="123456">

  <script>
    //操作表单属性
    //1.value属性=>收集用户输入的值
    const uname = document.querySelector('[type=text]')
    //获取 对象.value
    //设置 对象的value属性 对象.value=值
    uname.value = '小红'

    //2.type属性=>规定input的类型
    const pwd=document.querySelector('[value=123456]')
    pwd.type='text'
  </script>
</body>
(2)

image.png

<body>
  <input type="text">
  <br>
  <input type="password" value="123456">
  <br>
  <input type="radio" checked><br>
  <button>按钮</button>
  <br>
  <select name="" id="">
    <option value="">北京</option>
    <option value="">上海</option>
    <option value="" selected>深圳</option>



    <script>
      //1.修改 单选或复选按钮的选中 checked
      const radio = document.querySelector('[type=radio]')
      //获取
      console.log(radio.checked)
      //设置 false不选中
      //radio.checked=false

      //2.禁止使用表单=>按钮
      const btn = document.querySelector('[type=button]')
      //获取
      console.log(btn.disabled)
      //设置 禁用按钮
      //btn.disabled = true

      //3.使用select设置和获取选中项
      //选中值从北京更改为深圳 因为在下拉框标签“select name”中,深圳是
      //最后一个(lasts——child),  且深圳标签已selected
      const select = document.querySelector('select option:lasts-child')
      //判断当前option是不是选中项
      console.log(option.selected)


    </script>
</body>

image.png

2.自定义属性

image.png

<body>
  <div data-index="0" data-id="abc">你好</div>
  <script>
    //自定义属性
    //设置=>在标签上 使用data-名字=“值”
    //获取 =>对象.dataset =>对象集合
    //对象.属性名 =>获取属性值
    const div = document.querySelector('div')
    console.log(div.dataset)//获取的是data-后面的属性
    console.log(div.dataset.index)
 </script>
</body>

获取的是data-后面的属性 image.png

3.定时器

image.png

(1)延迟函数
(2)间隔函数

image.png

<1>开启定时器

image.png

<script>
    //1.方法一(具名函数)
    function setName(){
       console.log("这是一段重复执行的代码")
     }
//间隔函数 语法(函数 间隔时间)
 setInterval(setName,1000)//后面的1000时间单位为ms(毫秒)
     
    //2.方法二(匿名函数)
    setInterval(function(){
      console.log("这是一段重复执行的代码")
    },1000)

</script>
<2>关闭定时器

image.png

image.png

4.案例——轮播图(自动)
<!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>综合案例-定时版轮播图</title>
  <style>
    * {
      box-sizing: border-box;
    }

    .slider {
      width: 560px;
      height: 400px;
      overflow: hidden;
      position: relative;
    }

    .slider-wrapper {
      width: 100%;
      height: 320px;
    }

    .slider-wrapper img {
      width: 100%;
      height: 100%;
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      opacity: 0;
      transition: opacity 0.5s ease-in-out;
    }

    .slider-wrapper img.active {
      opacity: 1;
    }

    .slider-footer {
      height: 80px;
      background-color: rgb(100, 67, 68);
      padding: 12px 12px 0 12px;
      position: relative;
    }

    .slider-footer .toggle {
      position: absolute;
      right: 0;
      top: 12px;
      display: flex;
    }

    .slider-footer .toggle button {
      margin-right: 12px;
      width: 28px;
      height: 28px;
      appearance: none;
      border: none;
      background: rgba(255, 255, 255, 0.1);
      color: #fff;
      border-radius: 4px;
      cursor: pointer;
    }

    .slider-footer .toggle button:hover {
      background: rgba(255, 255, 255, 0.2);
    }

    .slider-footer p {
      margin: 0;
      color: #fff;
      font-size: 18px;
      margin-bottom: 10px;
    }

    .slider-indicator {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      align-items: center;
    }

    .slider-indicator li {
      width: 8px;
      height: 8px;
      margin: 4px;
      border-radius: 50%;
      background: #fff;
      opacity: 0.4;
      cursor: pointer;
    }

    .slider-indicator li.active {
      width: 12px;
      height: 12px;
      opacity: 1;
    }
  </style>
</head>

<body>
  <div class="slider">
    <div class="slider-wrapper">
      <img src="./img/njs6.jpg" alt="" class="active" />
      <img src="./img/njs9.jpg" alt="" />
      <img src="./img/njs8.jpg" alt="" />
      <img src="./img/njs4.jpg" alt="" />
      <img src="./img/njs2.jpg" alt="" />
    </div>
    <div class="slider-footer">
      <p></p>
      <ul class="slider-indicator">
        <li class="active"></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
      </ul>
      <div class="toggle">
        <button class="prev">&lt;</button>
        <button class="next">&gt;</button>
      </div>
    </div>
  </div>
  <script>
    // 初始数据
    const sliderData = [
      { url: './img/njs6.jpg', title: 'ASAP', color: 'rgb(100, 67, 68)' },
      { url: './img/njs9.jpg', title: 'Ditto', color: 'rgb(43, 35, 26)' },
      { url: './img/njs8.jpg', title: 'OMG', color: 'rgb(36, 31, 33)' },
      { url: './img/njs4.jpg', title: 'Attention', color: 'rgb(139, 98, 66)' },
      { url: './img/njs2.jpg', title: 'Cool With U', color: 'rgb(67, 90, 92)' },
    ];

    // 获取元素
    const imgs = document.querySelectorAll('.slider-wrapper img');
    const footer = document.querySelector('.slider-footer');
    const p = document.querySelector('.slider-footer p');
    const lis = document.querySelectorAll('.slider-indicator li');

    // 计数器
    let i = 0;

    // 定时器函数
    function focusFn() {
      // 更新计数器
      i = (i + 1) % sliderData.length;

      // 获取当前对象
      const obj = sliderData[i];

      // 更换页面内容
      imgs.forEach((img, index) => {
        if (index === i) {
          img.classList.add('active');
        } else {
          img.classList.remove('active');
        }
      });

      // 更新背景颜色和文字内容
      footer.style.backgroundColor = obj.color;
      p.innerHTML = obj.title;

      // 更新指示器
      lis.forEach((li, index) => {
        if (index === i) {
          li.classList.add('active');
        } else {
          li.classList.remove('active');
        }
      });
    }

    // 初始化第一张图片
    const initialObj = sliderData[0];
    footer.style.backgroundColor = initialObj.color;
    p.innerHTML = initialObj.title;

    // 开启定时器
    let timerID = setInterval(focusFn, 1000); // 每2秒切换一次
  </script>
</body>

</html>

效果展示:

image.png

image.png

image.png

image.png

image.png