WEBAPI-日期对象, DOM节点

日期对象

实例化

ECMAScript 中内置了获取系统时间的对象 Date,使用 Date 时与之前学习的内置对象 console 和 Math 不同,它需要借助 new 关键字才能使用

<script>
    //日期对象,掌握日期对象,可以让网页显示日期
    //实例化 new
    //得到当前时间
    const d1=new Date()
    console.log(d1);
    //字符串 指定时间日期
    const d2=new Date('2022-5-1 6:6:6' )
    console.log(d2);
    //数字制定日期时间
    const d3=new Date(2022,1,1,6,6,6)
    console.log(d3);
    // console.log(d1.toLocaleDateString() );当地时间
  </script>

常见的日期对象 

const re=n.getFullYear() //获取年份

const re=n.getMonth()+1//获取月份 月份要加1

const re =n.getDate ()//获取日期

const re=n.getDay() //获取星期

const re =n.getHours()//获取小时

const re=n.getMinutes()//获取分钟

const re =n.getSeconds()//获取秒数

<script>
    //获得日期对象
    const n=new Date()
    //使用方法
// const re=n.getFullYear() //获取年份
// const re=n.getMonth()+1//获取日期
// const re =n.getDate ()//获取日期
// const re=n.getDay() //获取星期
// const re =n.getHours()//获取小时
// const re=n.getMinutes()//获取分钟
// const re =n.getSeconds()//获取秒数
console.log(re);

//set 设置
n.setFullYear(2222)

console.log(n);

  //   console.log(date.getFullYear());
  //   console.log(date.getMonth()+1);
  //  console.log(date.getDate());//星期几
  </script>

 显示格式化时间

<!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>
</head>
<style>
  div{
    margin: auto;
    border-radius: 28%;
    width: 800px;
    height: 150px;
    background-color: paleturquoise;
    font-size: 35px;
    text-align: center;
    line-height: 150px;
  }
</style>
<body>
 
  <div></div>
 <script>
    showTime()
     // 定时器
     setInterval(function () {
      showTime()
    }, 1000)
    function showTime() {
      //  获取div
      const div = document.querySelector('div')
      // 创建 
      const n = new Date()

      // 获取信息
      let year = n.getFullYear()
      let month = n.getMonth() + 1
      let day = n.getDate()
      let hour = n.getHours()
      let min = n.getMinutes()
      let second = n.getSeconds()

      // 补0
      month = month < 10? '0'+ month :month
      day = day < 10? '0'+ day :day
      hour = hour < 10? '0'+ hour : hour
      min = min < 10? '0'+ min : min
      second = second < 10? '0'+ second :second

      // 字符串拼接
      const str = `${year}-${month}-${day} ${hour}:${min}:${second}`
      div.innerHTML = str
    }
   
  </script> 

</body>
</html>

时间戳

 <script>
    const n =new Date()
    //获取时间戳
    //getTime
    const re =n.getTime()
    console.log(re);
  </script>

获得时间戳

   获取时间戳 getTime()

  const re= date.getTime()

    2.+new Date

   const re= +new Date()

    3.Date.now()

<script>
     const n=new Date()

  //   获取时间戳 getTime()
  // const re= date.getTime()
  //   2.+new Date
  //  const re= +new Date()
  //   3.Date.now()
  const re= Date.now();//当前时间戳
    console.log(re);
  </script>

倒计时案例 


<!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>
    .countdown {
      width: 240px;
      height: 305px;
      text-align: center;
      line-height: 1;
      color: #fff;
      background-color: brown;
      /* background-size: 240px; */
      /* float: left; */
      overflow: hidden;
    }

    .countdown .next {
      font-size: 16px;
      margin: 25px 0 14px;
    }

    .countdown .title {
      font-size: 33px;
    }

    .countdown .tips {
      margin-top: 80px;
      font-size: 23px;
    }

    .countdown small {
      font-size: 17px;
    }

    .countdown .clock {
      width: 142px;
      margin: 18px auto 0;
      overflow: hidden;
    }

    .countdown .clock span,
    .countdown .clock i {
      display: block;
      text-align: center;
      line-height: 34px;
      font-size: 23px;
      float: left;
    }

    .countdown .clock span {
      width: 34px;
      height: 34px;
      border-radius: 2px;
      background-color: #303430;
    }

    .countdown .clock i {
      width: 20px;
      font-style: normal;
    }
  </style>
</head>

<body>
  <div class="countdown">
    <p class="next">今天是2222年2月22日</p>
    <p class="title">下班倒计时</p>
    <p class="clock">
      <span id="hour">00</span>
      <i>:</i>
      <span id="minutes">25</span>
      <i>:</i>
      <span id="second">20</span>
    </p>
    <p class="tips">18:30:00下课</p>
  </div>
  <script>
   
    const hour=document.querySelector('#hour')
    const minutes=document.querySelector('#minutes')
    const second=document.querySelector('#second')
  
     // 定时器
   const timer= setInterval(function () {
      showTime()
    }, 1000)
    showTime()
    function showTime(){
      //创建时间
    //结束时间
  const end =new Date('2022-4-22 18:30:00')
  //开始时间
  const start =new Date()
  const val= end.getTime() - start.getTime()
  // console.log(val);
  let h= parseInt(val /1000 /60 / 60)
  let m=parseInt(val / 1000 / 60 % 60)
  let s=parseInt(val/1000 % 60)

  h = h < 10? '0'+ h : h
  m= m < 10? '0'+m :m
      s = s < 10? '0'+ s :s
  // console.log(s);
  hour.innerHTML=h
  minutes.innerHTML=m
  second.innerHTML=s
  //时间到了停止定时器
  if(val <=0){
clearInterval(timer)
  hour.innerHTML='00'
  minutes.innerHTML='00'
  second.innerHTML='00'
  } 
}
    
  </script>
</body>

</html>

DOM节点 

查找节点

 查找父节点

 元素.parentNode

<!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>
</head>
<body>
  <div>
    <p>段落</p>
    <h2>标题</h2>
    <span>111</span>
  </div>
    <script>
      const span=document.querySelector('span')
      //找父级div
      // span.parentNode
      console.log(span.parentNode);
    </script>
  
</body>
</html>

 查找子节点

元素.childNodes  所有的儿子 包括空格

元素.children  所有的元素子节点

<!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>
</head>
<body>
  <div>
  <p>段落</p>
  <h2>标题</h2>
  <span>111</span>
</div>
<script>
     const div=document.querySelector('div')
     console.log(div.childNodes);//所有的儿子 包括空格
     console.log(div.children);//所有的元素子节点
</script>
</body>
</html>

查找兄弟关系 

  上一个元素兄弟

     span.previousElementSibling

下一个元素兄弟

    span.nextElementSibling

<!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>
</head>
<body>
  <div>
    <p>段落</p>
    <h2>标题</h2>
    <span>111</span>
    <i>1111</i>
  </div>
  <script>
     const span=document.querySelector('span')
     //兄弟关系
    //  上一个元素兄弟
    //  span.previousElementSibling
    console.log(span.previousElementSibling);
    // 下一个元素兄弟
    // span.nextElementSibling
    console.log(span.nextElementSibling);
  </script>
</body>
</html>

创建节点 

createElement()

追加节点

1. 追加节点 插入到父元素的最后一个子元素

      父元素.appendChild(需要添加的子元素)

2.  插入节点

      父.appendChild(新的.旧的)

<!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>
</head>
<body>
  <input type="button" value="点击">
  <div>
    <h1>123</h1>
  </div>
  <script>
    const btn=document.querySelector('input')
    const div=document.querySelector('div')
    const h1=document.querySelector('h1')
    btn.addEventListener('click',function(){
      const newP=document.createElement('p')

      // 追加节点 插入到父元素的最后一个子元素
      // 父元素.appendChild(需要添加的子元素)
      div.appendChild(newP)

      // 插入节点
      // 父.appendChild(新的.旧的)
      div.insertBefore(newP,h1)
      newP.innerHTML='娃哈哈'
    })
  </script>
</body>
</html>

克隆节点 

克隆谁,先找到谁

    克隆   元素.cloneNode(true)//克隆元素以及所以子节点 //false克隆本身

默认值为 false

<!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>
</head>
<body>
  <input type="button" value="点击">
  <div class="box" title="'图片">
    <img src="./学成在线重构/images/course02.png" alt="">
    <h2>标题</h2>
</div>
  <script>
    // 克隆谁,先找到谁
    // 克隆   元素.cloneNode(true)//克隆元素以及所以子节点 //false克隆本身
    const btn=document.querySelector('input')
    const div=document.querySelector('div')
  btn.addEventListener('click', function () {
    //负直节点
  const newDiv=div.cloneNode(true)
  //追加到body的最后
  document.body.appendChild(newDiv)
  })
  </script>
</body>
</html>

删除节点

删除元素 :父.removeChild(子)

<!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>
</head>
<body>
  <input type="button" value="点击">
  <div>
    <img src="./学成在线重构/images/course02.png" alt="">
  </div>
  
  <script>
    //删除元素 :父.removeChild(子)
    const btn=document.querySelector('input')
    const img=document.querySelector('img')
  btn.addEventListener('click', function () {
   img.parentNode.removeChild(img)
  })
  </script>
</body>
</html>

移动元素 

<!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>
</head>
<body>
  <input type="button" value="点击">
  <div>
    <img src="./学成在线重构/images/course02.png" alt="">
  </div>
  <p></p>
  <script>
    const btn=document.querySelector('input')
    const img=document.querySelector('img')
  btn.addEventListener('click', function () {
    document.querySelector('p').appendChild(img)
  })
  </script>
</body>
</html>

M端事件 

移动端事件

  <script>
    // 给文档监听事件
    //  touchstart  按下触发
 document.addEventListener('touchstart',function(){
   console.log('按下');
 })
//touchmove  滑动触发
 document.addEventListener('touchmove',function(){
   console.log('滑动');
 })
  //touchend  松开触发
  document.addEventListener('touchend',function(){
   console.log('松开');
 }) 
    </script>

 案例

重绘和回流

重绘不一定会影响回流,回流一定会影响重绘

页面发生改变  回流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值