JS-定时器-间歇函数(一)

这篇具有很好参考价值的文章主要介绍了JS-定时器-间歇函数(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

• 定时器函数介绍

定时器函数在开发中的使用场景

  • 网页中经常会需要一种功能:每隔一段时间需要自动执行一段代码,不需要我们手动去触发
  • 例如:网页中的倒计时
  • 要实现这种需求,需要定时器函数
  • 定时器函数有两种,今天我先讲间歇函数

JS-定时器-间歇函数(一),js,javascript,开发语言,ecmascript

• 定时器函数基本使用

定时器函数可以开启和关闭定时器

  • 开启定时器

JS-定时器-间歇函数(一),js,javascript,开发语言,ecmascript

作用:每隔一段时间调用这个函数 ,间隔时间单位是毫秒 

JS-定时器-间歇函数(一),js,javascript,开发语言,ecmascript

 文章来源地址https://www.toymoban.com/news/detail-798132.html

  • 关闭定时器 

JS-定时器-间歇函数(一),js,javascript,开发语言,ecmascript

 

案例:

案例1:阅读注册协议

需求:按钮60秒之后才可以使用
分析:
①:开始先把按钮禁用(disabled 属性)
②:一定要获取元素
③:函数内处理逻辑

  • 秒数开始减减
  • 按钮里面的文字跟着一起变化
  • 如果秒数等于0 停止定时器 里面文字变为 同意 最后 按钮可以点

JS-定时器-间歇函数(一),js,javascript,开发语言,ecmascript

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <textarea name="" id="" cols="30" rows="10">
        用户注册协议
        欢迎注册成为京东用户!在您注册过程中,您需要完成我们的注册流程并通过点击同意的形式在线签署以下协议,请您务必仔细阅读、充分理解协议中的条款内容后再点击同意(尤其是以粗体或下划线标识的条款,因为这些条款可能会明确您应履行的义务或对您的权利有所限制)。
        【请您注意】如果您不同意以下协议全部或任何条款约定,请您停止注册。您停止注册后将仅可以浏览我们的商品信息但无法享受我们的产品或服务。如您按照注册流程提示填写信息,阅读并点击同意上述协议且完成全部注册流程后,即表示您已充分阅读、理解并接受协议的全部内容,并表明您同意我们可以依据协议内容来处理您的个人信息,并同意我们将您的订单信息共享给为完成此订单所必须的第三方合作方(详情查看
    </textarea>
    <br>
    <button class="btn" disabled>我已经阅读用户协议(60)</button>

    <script>

        //1 获取按钮对象
        const btn = document.querySelector('.btn')
        //2 开始定时器
        let i = 5
        let itv = setInterval(function () {
            btn.innerHTML = `我已经阅读用户协议(${--i})`

            // 3 停止定时器
            if (i === 0) {
                clearInterval(itv)
                btn.disabled = false
            }

        }, 1000)

    </script>
</body>

</html>

案例2:轮播图定时变换图片

需求:每隔一秒钟切换一个图片
分析:
①:准备一个数组对象,里面包含详细信息(素材包含)
②:获取元素
③:设置定时器函数
设置一个变量++
找到变量对应的对象
更改图片、文字信息
激活小圆点:移除上一个高亮的类名,当前变量对应的小圆点添加类
④:处理图片自动复原从头播放(放到变量++后面,紧挨)
如果图片播放到最后一张, 就是大于等于数组的长度
则把变量重置为0

JS-定时器-间歇函数(一),js,javascript,开发语言,ecmascript

<!DOCTYPE html>
<html lang="zh_CN">

<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;
    }

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

    .slider-wrapper img {
      width: 100%;
      height: 100%;
      display: block;
    }

    .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="./images/slider01.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>
        <li></li>
        <li></li>
        <li></li>
      </ul>
      <div class="toggle">
        <button class="prev">&lt;</button>
        <button class="next">&gt;</button>
      </div>
    </div>
  </div>
  <script>
    // 1. 初始数据
    const sliderData = [
      { url: './images/slider01.jpg', title: '对人类来说会不会太超前了?', color: 'rgb(100, 67, 68)' },
      { url: './images/slider02.jpg', title: '开启剑与雪的黑暗传说!', color: 'rgb(43, 35, 26)' },
      { url: './images/slider03.jpg', title: '真正的jo厨出现了!', color: 'rgb(36, 31, 33)' },
      { url: './images/slider04.jpg', title: '李玉刚:让世界通过B站看到东方大国文化', color: 'rgb(139, 98, 66)' },
      { url: './images/slider05.jpg', title: '快来分享你的寒假日常吧~', color: 'rgb(67, 90, 92)' },
      { url: './images/slider06.jpg', title: '哔哩哔哩小年YEAH', color: 'rgb(166, 131, 143)' },
      { url: './images/slider07.jpg', title: '一站式解决你的电脑配置问题!!!', color: 'rgb(53, 29, 25)' },
      { url: './images/slider08.jpg', title: '谁不想和小猫咪贴贴呢!', color: 'rgb(99, 72, 114)' },
    ]

    //开始定时器 
    let i = 0
    setInterval(function () {
   
      //2 获取图片对象
      const img = document.querySelector('.slider-wrapper img')
      // 修改对象的src属性   图片对象的src属性 === 数组随机对象中的url属性
      img.src = sliderData[i].url

      //3 获取p对象
      const p = document.querySelector('.slider-footer p')
      p.innerHTML = sliderData[i].title

      //4 获取li对象,并移除其他的active属性(循环方式)
      // const list = document.querySelectorAll(`.slider-indicator li`)
      // for(let i = 0;i<list.length;i++){
      //   list[i].classList.remove('active')
      // }
      //排他思想的方式
      document.querySelector('.slider-indicator .active').classList.remove('active')

      const li = document.querySelector(`.slider-indicator li:nth-child(${i + 1})`)
      li.classList.add('active')
   
      i++
     console.log(i)
      if(i === 8){
        //如果i=8时(最后一张图片),将i重置为0
        i = 0
      }
     
    }, 1500)

    // //1 生成一个随机数
    // let random = parseInt(Math.random()*sliderData.length)

    // //2 获取图片对象
    // const img = document.querySelector('.slider-wrapper img')
    // // 修改对象的src属性   图片对象的src属性 === 数组随机对象中的url属性
    // img.src = sliderData[random].url

    // //3 获取p对象
    // const p = document.querySelector('.slider-footer p')
    // p.innerHTML = sliderData[random].title

    // //4 获取li对象,并修改css
    // const li = document.querySelector(`.slider-indicator li:nth-child(${random+1})`)
    // li.classList.add('active')


  </script>
</body>

</html>

案例3: 电子时钟

要求:在网页上显示一个时钟,秒针,分针。时针可以旋转

JS-定时器-间歇函数(一),js,javascript,开发语言,ecmascript

<!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>Document</title>

  <style>
    .main {
      position: relative;
      width: 600px;
      height: 600px;
      margin: 100px auto;
      background: url(./images/clock.jpg) no-repeat;
    }

    .hour,
    .minute,
    .second {

      width: 30px;
      height: 600px;

    }

    .hour {
      position: absolute;
      left: 50%;
      margin-left: -15px;
      background: url(./images/hour.png);
    }

    .minute {
      position: absolute;
      left: 50%;
      margin-left: -15px;
      background: url(./images/minute.png);
      transform: rotate(270deg);
    }

    .second {
      position: absolute;
      left: 50%;
      margin-left: -15px;
      background: url(./images/second.png);
      transform: rotate(60deg);
    }

    .rotate6 {
      transform: rotate(6deg);
    }
  </style>
</head>

<body>

  <div class="main">
    <div class="hour"></div>
    <div class="minute"></div>
    <div class="second"></div>
  </div>


  <script>
    let deg = 0
    let conut = 0
    //定时器
     
    var mynow = new Date();//默认的获取的是当前时间
    //通过调用日期对象的方法来重新获取当前的日期时间
    let hourTime = mynow.getHours();//获取小时
    let minuteTime = mynow.getMinutes();//获取分钟
    let secondTime = mynow.getSeconds();//获取秒
    const second = document.querySelector('.second')
    second.style.transform = `rotate(${secondTime * 6}deg)`

    const minute = document.querySelector('.minute')
    minute.style.transform = `rotate(${minuteTime * 6}deg)`

    const hour = document.querySelector('.hour')
    hour.style.transform = `rotate(${hourTime * 30}deg)`

    setInterval(function () {
      //1 每过一秒钟,秒针旋转6度
      // 1.1获取秒针元素
      deg += 6
      const second = document.querySelector('.second')
      second.style.transform = `rotate(${deg}deg)`
      if (deg >= 360) {
        deg = 0
        //2 秒针转一圈===分针转6度
        const minute = document.querySelector('.minute')
        conut++
        if (minuteTime >= 60) {
          minuteTime = 1
        }else{
          minuteTime++
        }
        minute.style.transform = `rotate(${minuteTime * 6}deg)`
      }

      // 3时针转动
      if (minuteTime === 60) {
        if (hourTime >= 12) {
          hourTime = 1
        } else {
          hourTime++
        }

        const hour = document.querySelector('.hour')
        hour.style.transform = `rotate(${hourTime * 30}deg)`
      }

    }, 1000)

  </script>
</body>

</html>

 

 

 

 

到了这里,关于JS-定时器-间歇函数(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js实现定时器

    用原生js实现一个倒计时效果.最下面有全部源码,需要自取 js语法 : setTimeout :定时器 document.getElementById :Document的方法 getElementById()返回一个匹配特定 ID的元素。由于元素的 ID 在大部分情况下要求是独一无二的,这个方法自然而然地成为了一个高效查找特定元素的方法。 remove

    2024年02月11日
    浏览(76)
  • 使用Js定时器来定时跳转

    🍎道阻且长,行则将至。🍓 Js小记🍀 记录:想实现在5秒后跳转到指定页面,使用到 JS定时器 和 Location 对象。 有两种定时器: setTimeout 和 setInterval ,一个是在指定时间结束后执行一次,另一个是根据指定时间循环。 Location 对象是 JavaScript 对地址栏封装的对象。可以通过操

    2023年04月08日
    浏览(46)
  • JS 定时器setInterval()

    过多的就不描述了,可以直接参考官方文档: 官方文档:https://developer.mozilla.org/en-US/docs/Web/API/setInterval 参考文档:https://www.jianshu.com/p/55b4eb04b1d3 直接上干货 setInterval(参数1,参数2) setInterval(方法名, 1000 * 60 * 1); 描述:定时执行 间隔执行 注意: 1.参数1可以是一个匿名函数 也可以是

    2024年02月13日
    浏览(57)
  • 关于JS定时器的整理

    在JS中定时器有非常大的作用,例如: 执行延迟操作:使用setTimeout可以在一定的延迟后执行特定的代码。这对于需要在一定时间后执行某些操作的情况非常有用,例如延迟显示提示信息、执行动画效果等。 定期刷新数据:使用 setInterval 可以定期执行某段代码,例如定时从服

    2024年02月12日
    浏览(39)
  • BOM/定时器/js执行机制

                 

    2023年04月25日
    浏览(41)
  • js:定时器setInterval、clearInterval的使用

    定时器:可以在固定时间间隔,重复调用一个函数 文档 https://developer.mozilla.org/zh-CN/docs/Web/API/setInterval 常用的语法 为了避免this指向问题,一般使用箭头函数 输出结果

    2024年02月04日
    浏览(47)
  • js中的定时器 setTimeout()和setInterval()

    JavaScript 定时器,有时也称为“计时器”,用来在经过指定的时间后执行某些任务,类似于我们生活中的闹钟。 在 JavaScript 中,我们可以利用定时器来延迟执行某些代码,或者以固定的时间间隔重复执行某些代码。例如,您可以使用定时器定时更新页面中的广告或者显示一个

    2024年02月14日
    浏览(52)
  • JavaScript中两种定时器和清除定时器的使用

    ​ 定时器就是在一段特定的时间后执行某段程序代码。 以指定的时间间隔(时间单位为毫秒)调用一次函数的定时器。 轮循定时器是以指定的时间间隔(时间单位为毫秒)重复调用一个函数的定时器。 clearTimeout(timeoutID) :清除只执行一次的定时器(setTimeout函数)。 timeoutID 为

    2024年02月13日
    浏览(47)
  • JavaScript定时器

    JavaScript定时器有两种, setTimeout():指定时间后执行一段代码(延迟执行)。 setInterval():每隔一段时间执行一段代码(间隔执行)。 1、setTimeout() 定时器 语法: setTimeout()方法用于设置一个定时器,该定时器在定时器到期后执行调用函数。 具体用法: 定时五秒钟出现弹窗‘

    2024年02月07日
    浏览(44)
  • JavaScript的定时器用法详解

    ●在 js 里面,有两种定时器,倒计时定时器 和 间隔定时器 ○倒计时定时器也叫一次性定时器或者叫延时定时器 ○间隔定时器也叫间歇定时器或者叫反复性定时器 倒计时定时器 ●倒计时多少时间以后执行函数 ●语法: setTimeout(要执行的函数,多长时间以后执行) ●会在你设

    2024年02月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包