JS——webAPIs(1)

本文详细介绍了JavaScript中的随机数生成、元素属性修改(包括样式、表单、自定义属性)、定时器使用、轮播图实现、抽奖功能以及注册倒计时的代码示例,展示了JavaScript在前端开发中的实际应用。
摘要由CSDN通过智能技术生成

一、知识点

1.随机函数

//N~M的随机数
function getRandom(N,M){
      return Math.floor(Math.random()*(M-N+1))+N
    }
//数组Arr取随机项
const random=Math.floor(Math.random()*Arr.length)

2.修改基础属性

3.修改样式属性

// 修改样式-通过style修改 多组单词采取小驼峰命名
    box.style.width='500px'
    box.style.backgroundColor='lightpink'
    //修改背景图
    const random=getRandom(1,10)
    document.body.style.backgroundImage=`url(./images/desktop_${random}.jpg)`
// 修改样式-通过类名className修改
    //可以添加类名,给div绑定了.box,覆盖原来的类名
    div.className='nav box'
// 修改样式-通过类名classList添加
    const box=document.querySelector('.box')
    //追加类
    box.classList.add('active')
    //删除类
    box.classList.remove('box')
    //切换类(有就删,没有就加上)
    box.classList.toggle('box')
    //查找是否包含类(包含则返回true,不包含返回false)
    box.classList.contains('box')
    

4.修改表单属性

 //修改表单属性
    const uname=document.querySelector('input')
    uname.value='我要买电脑'
    uname.type='password'

    const ipt=document.querySelector('input')
    ipt.checked=false //默认true,勾选

    const btn=document.querySelector('button')
    btn.disabled=true //默认false,不禁用

5.修改自定义属性

// 修改自定义属性
    const one=document.querySelector('div')
    console.log(one.dataset.id)
    console.log(one.dataset.spm)

6.定时器

    //间歇函数(函数,时间ms)
    function fn(){
      console.log('一秒执行一次')
    }
    //打开定时器,返回序号值
    let n=setInterval(fn,1000)//n=1
    let m=setInterval(fn,1000)//m=2
    //关闭定时器
    clearInterval(n)

二、综合案例

1.轮播图(刷新随机)

    // 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)' },
    ]
    // 2. 获取随机对象
    const random=parseInt(Math.random()*sliderData.length)
    // 3. 把对应数据渲染到标签里
    const img=document.querySelector('.slider-wrapper img')
    img.src=sliderData[random].url
    const p=document.querySelector('.slider-footer p')
    p.innerHTML=sliderData[random].title
    const footer=document.querySelector('.slider-footer')
    footer.style.backgroundColor=sliderData[random].color
    // 4. 小圆点变换
    const li=document.querySelector(`.slider-indicator li:nth-child(${random + 1})`)
    li.classList.add('active')

 2.轮播图定时器版(自动遍历)

    // 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)' },
    ]
    // 2. 获取元素
    let i = 0
    const img=document.querySelector('.slider-wrapper img')
    const p=document.querySelector('.slider-footer p')
    const footer=document.querySelector('.slider-footer')
    // 3. 开启定时器
    let n = setInterval(function() {
      i++
      // 无缝衔接位置
      if (i >= sliderData.length){
        i = 0
      }
      img.src=sliderData[i].url
      p.innerHTML=sliderData[i].title
      footer.style.backgroundColor=sliderData[i].color
      // 先删除以前带active类名的li
      document.querySelector('.slider-indicator .active').classList.remove('active')
      // 只让当前li加active
      document.querySelector(`.slider-indicator li:nth-child(${i + 1})`).classList.add('active')
    }, 1000)

3.抽奖

    const personArr=['zjl','ldh','zxc','pink','zxy']
    //一等奖
    const random1=Math.floor(Math.random()*personArr.length)
    const one=document.querySelector('#one')
    one.innerHTML=personArr[random1]
    personArr.splice(random1,1)//删除当前
    //二等奖
    const random2=Math.floor(Math.random()*personArr.length)
    const two=document.querySelector('#two')
    two.innerHTML=personArr[random2]
    personArr.splice(random2,1)//删除当前
    //三等奖
    const random3=Math.floor(Math.random()*personArr.length)
    const three=document.querySelector('#three')
    three.innerHTML=personArr[random3]
    personArr.splice(random3,1)//删除当前

4.注册倒计时

const btn=document.querySelector('.btn')
        let i = 5
        let n = setInterval(function(){
            i--
            btn.innerHTML=`我已经阅读用户协议(${i}s)`
            if(i === 0){
                clearInterval(n)
                btn.disabled=false
                btn.innerHTML='同意'
            }
        },1000)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值