【HTML】再见2022!一起来写一个响应式跨年倒计时吧!(附源码)

news2024/10/6 8:36:27

在这里插入图片描述

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。


💅文章概要: 各位C站的小伙伴们,马上就要迎来我们一年一度的元旦和春节啦,值此之际,让我们一起来写一个响应式跨年倒计时吧!无论是电脑,手机还是平板都可以完美适配哦!


🤟每日一言: 保护好你的梦想,等到它开花结果的那天,它会让你俯视所有曾经看低你的人。


目录

    • 前言
    • 响应式布局介绍
    • 响应式跨年倒计时效果演示
      •  PC端效果演示
      •  手机端效果演示
      •  IPAD竖屏效果演示
      •  IPAD横屏效果演示
    • 实现思路
      •  背景的设置
        •   HTML+CSS源码
      •  上浮泡泡效果实现
        •   HTML源码
        •   CSS源码
      •  倒计时代码原理实现
        •   JAVASCRIPT源码
      •  响应式布局设计
        •   CSS源码
    • 完整源码
    • 写在最后的话


前言

在这里插入图片描述

  各位C站的小伙伴们,马上就要迎来我们一年一度的元旦和春节啦,值此之际,让我们一起来写一个响应式跨年倒计时吧!无论是电脑,手机还是平板都可以完美适配哦!


响应式布局介绍

   响应式布局 Ethan Marcotte 2010年5月份 提出的一个概念,简而言之,就是 一个网站能够兼容多个终端 ——而不是为每个终端做一个特定的版本。这个概念是为解决移动互联网浏览而诞生的。
   响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验 ,而且随着大屏幕移动设备的普及,用“大势所趋”来形容也不为过。随着越来越多的设计师采用这个技术,我们不仅看到很多的创新,还看到了一些成形的模式。

在这里插入图片描述


响应式跨年倒计时效果演示

  下面展示四种情况下的效果演示,包括 PC端手机端IPAD竖屏IPAD横屏

 PC端效果演示

在这里插入图片描述

 手机端效果演示

在这里插入图片描述

 IPAD竖屏效果演示

在这里插入图片描述

 IPAD横屏效果演示

在这里插入图片描述


实现思路

  看完效果图后,各位小伙伴们肯定很想知道实现的思路,接下来我将分步骤逐一进行讲解,如果想要获取源码的小伙伴可以跳过该部分,直接前往最后的完整源码章节!,在分布讲解种我会将HTMLCSSJAVASCRIPT三个部分全部放在同一个文件中,方便各位小伙伴们获取!
  我将实现思路分成了如下四个部分,列举如下:

  • 背景的设置
  • 上浮泡泡效果实现
  • 倒计时代码原理实现
  • 响应式布局设计

 背景的设置

  通过使用HTML和CSS可以完成整个倒计时的背景设计,背景颜色采取了渐变色的设计,更具美感搭配上浮泡泡有一种置身绿色海洋的身临其境!
在这里插入图片描述

  HTML+CSS源码

<!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">
  <title>New Year Count Down</title>
  <style>
  @import url("https://fonts.googleapis.com/css?family=Poppins&display=swap");
* {
  margin: 0;
  padding: 0;
  font-family: "Poppins", sans-serif;
}
@media screen and (min-width: 1025px) {
  body {
   background: linear-gradient(to bottom right, #50a3a2 0,#78cc6d 100%);
    background-attachment: fixed;
    background-blend-mode: hard-light;
  }

  .container {
    width: 80%;
    margin: 5% auto;
    padding: 11% 5%;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    background: linear-gradient(to bottom right, #50a3a2 0,#78cc6d 100%);
  }

  .container h2 {
    text-align: center;
    font-size: 10em;
    line-height: 0.7em;
    color: #333;
    margin-top: -80px;
  }

  .container h2 span {
    display: block;
    font-weight: 400;
    letter-spacing: 6px;
    font-size: 0.2em;
  }

  .countdouwn {
    display: flex;
    margin-top: 50px;
  }

  .countdouwn div {
    position: relative;
    width: 100px;
    height: 100px;
    line-height: 100px;
    text-align: center;
    background: #333333;
    color: #ffffff;
    margin: 0 15px;
    font-size: 3em;
    font-weight: 500;
  }

  .countdouwn div:before {
    content: "";
    position: absolute;
    bottom: -30px;
    left: 0;
    width: 100%;
    height: 35px;
    background: #ff0;
    color: #333;
    font-size: 0.35em;
    line-height: 35px;
    font-weight: 300;
  }

  .countdouwn #day:before {
    content: "Days";
  }

  .countdouwn #hour:before {
    content: "Hours";
  }

  .countdouwn #minute:before {
    content: "Minutes";
  }

  .countdouwn #second:before {
    content: "Seconds";
  }
}
</style>

</head>

<body>
	
  <div class="container">
    <h2>
      <span>Countdown to new year </span>
      <div id="Year">NA</div>
    </h2>
    <div class="countdouwn">
      <div id="day">NA</div>
      <div id="hour">NA</div>
      <div id="minute">NA</div>
      <div id="second">NA</div>
    </div>
  </div>
 
</body>

</html>


 上浮泡泡效果实现

在这里插入图片描述

  采取HTML+CSS样式设计可以设计出泡泡的样式,最后在CSS中使用@keyframes rise 可以实现泡泡的上浮

  HTML源码

  复制如下源码粘贴到<body>标签的下方
在这里插入图片描述

<div class="bubble-container">
	<div class="bubble bubble-1"></div>
	<div class="bubble bubble-2"></div>
	<div class="bubble bubble-3"></div>
	<div class="bubble bubble-4"></div>
	<div class="bubble bubble-5"></div>
	<div class="bubble bubble-6"></div>
	<div class="bubble bubble-7"></div>
	<div class="bubble bubble-8"></div>
</div>

  CSS源码

  复制如下源码粘贴到<style></style>标签之间

.bubble-container{
     position: absolute;
     width: 100%;
     height: 100%;
     z-index: 0;
     overflow: hidden;
     top:0;
     left:0;
}

.bubble-container .bubble{
     position: absolute;
     bottom: -10rem;
     width:  4rem;
     height: 4rem;
     background-color: #f1f1f1;
     border-radius: 50%;
     opacity: .5;
     animation: rise 10s infinite ease-in;
}

.bubble-container .bubble-1 {
     width: 4rem;
     height: 4rem;
     left: 10%;
     animation: 8s;
}

.bubble-container .bubble-2 {
     width: 2rem;
     height: 2rem;
     left: 20%;
     animation-duration: 5s;
     animation-delay: 1s;
}

.bubble-container .bubble-3 {
     width: 5rem;
     height: 5rem;
     left: 35%;
     animation-duration: 7s;
     animation-delay: 2s;
}

.bubble-container .bubble-4 {
     width: 8rem;
     height: 8rem;
     left: 50%;
     animation-duration: 11s;
     animation-delay: 0s;
}

.bubble-container .bubble-5 {
     width: 3.5rem;
     height: 3,5rem;
     left: 55%;
     animation-duration: 6s;
     animation-delay: 1s;
}

.bubble-container .bubble-6 {
     width: 4.5rem;
     height: 4,5rem;
     left: 65%;
     animation-duration: 8s;
     animation-delay: 3s;
}

.bubble-container .bubble-7 {
     width: 9rem;
     height: 9rem;
     left: 75%;
     animation-duration: 12s;
     animation-delay: 2s;
}

.bubble-container .bubble-8{
     width: 2.5rem;
     height: 2.5rem;
     left: 80%;
     animation-duration: 6s;
     animation-delay: 2s;
}


@keyframes rise {
     0% {
         bottom: -10rem;
         transform: translateX(0); 
     }
     50% {
         transform: translate(10rem);
     }
     100%{
         bottom: 1080px;
         transform: translateX(-20rem);
     }
}


 倒计时代码原理实现

在这里插入图片描述

  使用JAVASCRIPT嵌入到<script></script>标签之中,可以实现倒计时的效果,利用了计数器的原理获取下一年的时间和距离2023年剩余的时间

  JAVASCRIPT源码

  复制如下源码粘贴到<script></script>标签之间


    // 自动为下一年
    function newYear() {
      var Y = new Date().getFullYear() + 1
      var newDay = Y + '/1/1 00:00:00'
      var countDate = new Date(newDay);
      var now = new Date().getTime()
      gap = countDate - now;
      var second = 1000
      var minute = second * 60
      var hour = minute * 60
      var day = hour * 24

      var d = Math.floor(gap / day)
      var h = Math.floor((gap % day) / hour)
      var m = Math.floor((gap % hour) / minute)
      var s = Math.floor((gap % minute) / second)

      // 此处可删除
      d = addZero(d)
      h = addZero(h)
      m = addZero(m)
      s = addZero(s)
      // func end

      // 显示的年
      document.getElementById('Year').innerText = Y

      // 倒计时
      document.getElementById('day').innerText = d
      document.getElementById('hour').innerText = h
      document.getElementById('minute').innerText = m
      document.getElementById('second').innerText = s
    }

    // 数字小于10前面就加0
    function addZero(num) {
      return num < 10 ? '0' + num : num
    }

    setInterval(() => {
      newYear()
    }, 1000)


 响应式布局设计

在这里插入图片描述

  通过不同的媒介类型条件定义样式表规则媒介查询CSS可以更精确作用于不同的媒介类型和同一媒介的不同条件。媒介查询的大部分媒介特性都接受minmax用于表达”大于或等于””小于或等于”。如:width会有min-widthmax-width媒介查询可以被用在CSS中的@media@import规则上,也可以被用在HTMLXML中。通过这个标签属性,我们可以很方便的在不同的设备下实现丰富的界面,特别是移动设备,将会运用更加的广泛。

  CSS源码

  复制如下源码粘贴到<style></style>标签之间,便可实现多分辨率下的完美显示!

@media screen and (max-width:1024px){
  *{
    margin: 0;
    padding: 0;
  }
  html{
    background: rgb(0,21,32);
  }
  .container{
    width: 100%;
    margin: 20% 0;
    padding: 0%;
    background: rgb(0,21,32);
  }
  .container div{
    margin: 0;
    color: #fff;
    line-height: normal;
  }
  .container h2 span{
    color: #fff;
    display: block;
    text-align: center;
    font-size: 1em;
  }
  .container h2:first-child div{
    font-size: 6em;
    text-align: center;
    margin: 10% 0;
  }

  .countdouwn{
    display: flex;
    justify-content: space-around;
    margin: 0;
  }
  .countdouwn div{
    width: 20%;
    height: 13vw;
    margin: 0 10px;
    line-height: 13vw;
    font-size: 2.3em;
    position: relative;
    text-align: center;
    background: #333333;
    color: #ffffff;
    font-weight: 500;
  }
  .countdouwn div:before{
    content:'';
    position: absolute;
    bottom: -30px;
    left: 0;
    width: 100%;
    height: 30px;
    background: #aaa;
    color: #333;
    font-size: .35em;
    line-height: 35px;
    font-weight: 300;
  }
  .countdouwn #day:before{
    content: 'Days';
  }
  
  .countdouwn #hour:before{
    content: 'Hours';
  }
  
  .countdouwn #minute:before{
    content: 'Minutes';
  }
  
  .countdouwn #second:before{
    content: 'Seconds';
  }
}


完整源码

  各位小伙伴只需要复制以下所有源码然后新建一个html文件将源码复制进去,然后就可以直接运行了!

<!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">
  <title>2023 countdown</title>
  <link rel="shortcut icon" type="image/jpg" href="NY.png"/>
  <link href="https://w.wallhaven.cc/full/3z/wallhaven-3z32j3.jpg" mce_href="favicon.ico" rel="icon" type="image/x-icon"/>
  <style>
      @import url("https://fonts.googleapis.com/css?family=Poppins&display=swap");
* {
  margin: 0;
  padding: 0;
  font-family: "Poppins", sans-serif;
}
@media screen and (min-width: 1025px) {
  body {
   background: linear-gradient(to bottom right, #50a3a2 0,#78cc6d 100%);
    background-attachment: fixed;
    background-blend-mode: hard-light;
  }

  .container {
    width: 80%;
    margin: 5% auto;
    padding: 11% 5%;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    background: linear-gradient(to bottom right, #50a3a2 0,#78cc6d 100%);
  }

  .container h2 {
    text-align: center;
    font-size: 10em;
    line-height: 0.7em;
    color: #fff;
    margin-top: -80px;
  }

  .container h2 span {
    display: block;
    font-weight: 400;
    letter-spacing: 6px;
    font-size: 0.2em;
  }

  .countdouwn {
    display: flex;
    margin-top: 50px;
  }

  .countdouwn div {
    position: relative;
    width: 100px;
    height: 100px;
    line-height: 100px;
    text-align: center;
    background: #333333;
    color: #ffffff;
    margin: 0 15px;
    font-size: 3em;
    font-weight: 500;
  }

  .countdouwn div:before {
    content: "";
    position: absolute;
    bottom: -30px;
    left: 0;
    width: 100%;
    height: 35px;
    background: #ff0;
    color: #333;
    font-size: 0.35em;
    line-height: 35px;
    font-weight: 300;
  }

  .countdouwn #day:before {
    content: "Days";
  }

  .countdouwn #hour:before {
    content: "Hours";
  }

  .countdouwn #minute:before {
    content: "Minutes";
  }

  .countdouwn #second:before {
    content: "Seconds";
  }
}

.bubble-container{
     position: absolute;
     width: 100%;
     height: 100%;
     z-index: 0;
     overflow: hidden;
     top:0;
     left:0;
}

.bubble-container .bubble{
     position: absolute;
     bottom: -10rem;
     width:  4rem;
     height: 4rem;
     background-color: #f1f1f1;
     border-radius: 50%;
     opacity: .5;
     animation: rise 10s infinite ease-in;
}

.bubble-container .bubble-1 {
     width: 4rem;
     height: 4rem;
     left: 10%;
     animation: 8s;
}

.bubble-container .bubble-2 {
     width: 2rem;
     height: 2rem;
     left: 20%;
     animation-duration: 5s;
     animation-delay: 1s;
}

.bubble-container .bubble-3 {
     width: 5rem;
     height: 5rem;
     left: 35%;
     animation-duration: 7s;
     animation-delay: 2s;
}

.bubble-container .bubble-4 {
     width: 8rem;
     height: 8rem;
     left: 50%;
     animation-duration: 11s;
     animation-delay: 0s;
}

.bubble-container .bubble-5 {
     width: 3.5rem;
     height: 3,5rem;
     left: 55%;
     animation-duration: 6s;
     animation-delay: 1s;
}

.bubble-container .bubble-6 {
     width: 4.5rem;
     height: 4,5rem;
     left: 65%;
     animation-duration: 8s;
     animation-delay: 3s;
}

.bubble-container .bubble-7 {
     width: 9rem;
     height: 9rem;
     left: 75%;
     animation-duration: 12s;
     animation-delay: 2s;
}

.bubble-container .bubble-8{
     width: 2.5rem;
     height: 2.5rem;
     left: 80%;
     animation-duration: 6s;
     animation-delay: 2s;
}


@keyframes rise {
     0% {
         bottom: -10rem;
         transform: translateX(0); 
     }
     50% {
         transform: translate(10rem);
     }
     100%{
         bottom: 1080px;
         transform: translateX(-20rem);
     }
}

@media screen and (max-width:1024px){
  *{
    margin: 0;
    padding: 0;
  }
  body {
   background: linear-gradient(to bottom right, #50a3a2 0,#78cc6d 100%);
    background-attachment: fixed;
    background-blend-mode: hard-light;
  }
  .container{
    width: 100%;
    margin: 20% 0;
    padding: 0%;
   background: linear-gradient(to bottom right, #50a3a2 0,#78cc6d 100%);
  }
  .container div{
    margin: 0;
    color: #fff;
    line-height: normal;
  }
  .container h2 span{
    color:#fff;
    display: block;
    text-align: center;
    font-size: 1em;
  }
  .container h2:first-child div{
    font-size: 6em;
    text-align: center;
    margin: 10% 0;
  }

  .countdouwn{
    display: flex;
    justify-content: space-around;
    margin: 0;
     border-radius: 15px;
  }
  .countdouwn div{
    width: 20%;
    height: 13vw;
    margin: 0 10px;
    line-height: 13vw;
    font-size: 2.3em;
    position: relative;
    text-align: center;
    background: #333333;
    color: #ffffff;
    font-weight: 500;
    border-radius: 5px;
  }
  .countdouwn div:before{
    content:'';
    position: absolute;
    bottom: -30px;
    left: 0;
    width: 100%;
    height: 30px;
    background:  #ff0;
    color: #333;
    font-size: .35em;
    line-height: 35px;
    font-weight: 300;
     border-radius: 5px;
  }
  .countdouwn #day:before{
    content: 'Days';
     border-radius: 5px;
  }
  
  .countdouwn #hour:before{
    content: 'Hours';
  }
  
  .countdouwn #minute:before{
    content: 'Minutes';
  }
  
  .countdouwn #second:before{
    content: 'Seconds';
  }
}

      
  </style>
</head>

<body>
<div class="bubble-container">
	<div class="bubble bubble-1"></div>
	<div class="bubble bubble-2"></div>
	<div class="bubble bubble-3"></div>
	<div class="bubble bubble-4"></div>
	<div class="bubble bubble-5"></div>
	<div class="bubble bubble-6"></div>
	<div class="bubble bubble-7"></div>
	<div class="bubble bubble-8"></div>
</div>
	
  <div class="container">
    <h2>
      <span>Countdown to new year </span>
      <div id="Year">NA</div>
    </h2>
    <div class="countdouwn">
      <div id="day">NA</div>
      <div id="hour">NA</div>
      <div id="minute">NA</div>
      <div id="second">NA</div>
    </div>
  </div>
  <script>
    // 自动为下一年
    function newYear() {
      var Y = new Date().getFullYear() + 1
      var newDay = Y + '/1/1 00:00:00'
      var countDate = new Date(newDay);
      var now = new Date().getTime()
      gap = countDate - now;
      var second = 1000
      var minute = second * 60
      var hour = minute * 60
      var day = hour * 24

      var d = Math.floor(gap / day)
      var h = Math.floor((gap % day) / hour)
      var m = Math.floor((gap % hour) / minute)
      var s = Math.floor((gap % minute) / second)

      // 此处可删除
      d = addZero(d)
      h = addZero(h)
      m = addZero(m)
      s = addZero(s)
      // func end

      // 显示的年
      document.getElementById('Year').innerText = Y

      // 倒计时
      document.getElementById('day').innerText = d
      document.getElementById('hour').innerText = h
      document.getElementById('minute').innerText = m
      document.getElementById('second').innerText = s
    }

    // 数字小于10前面就加0
    function addZero(num) {
      return num < 10 ? '0' + num : num
    }

    setInterval(() => {
      newYear()
    }, 1000)
  </script>
</body>

</html>


写在最后的话

  本文花费大量时间介绍了如何创建一个响应式布局的跨年倒计时代码,希望能帮助到各位小伙伴,码文不易,还望各位大佬们多多支持哦,你们的支持是我最大的动力!
在这里插入图片描述

原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力! \textcolor{9c81c1}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向! \textcolor{ed7976}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富! \textcolor{98c091}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/125699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【信息学CSP-J近16年历年真题64题】真题练习与解析 第10题之公交换乘

描述 著名旅游城市 B 市为了鼓励大家采用公共交通方式出行,推出了一种地铁换乘公交 车的优惠方案: 在搭乘一次地铁后可以获得一张优惠票,有效期为 45 分钟,在有效期内可以 消耗这张优惠票,免费搭乘一次票价不超过地铁票价的公交车。在有效期内指 开始乘公交车的时间与开…

结合商业项目深入理解Go知识点

这篇文章比较硬核&#xff0c;爆肝5千字&#xff0c;把之前整理的知识点都串起来了。建议先收藏&#xff0c;慢慢看。 前言 上一篇文章 #【Go WEB进阶实战】开源的电商前后台API系统 很受大家欢迎&#xff0c;有好多小伙伴私信我问题&#xff1a;“gtoken真不错&#xff0c;能…

【SpringBoot应用篇】SpringBoot使用Aspect AOP注解实现日志管理(增强版)

【SpringBoot应用篇】SpringBoot使用Aspect AOP注解实现日志管理&#xff08;增强版&#xff09;pomLog实体类OperateLogOrderGoodLogAspect转换器ConvertGoodConvertOrderConvertAopController启动类EnableAutoOperateLog需求: 需要保存的日志内容在方法的参数中&#xff0c;并…

Elasticsearch 谷歌插件 Elasticsearch-head 使用

目录 什么是Elasticsearch-head 安装 ​编辑界面 ​编辑集群健康值的几种状态如下 解决跨域问题 基本使用 创建索引 点击概览 点击数据浏览 什么是Elasticsearch-head ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎&#x…

js的Date对象

Date 对象用于处理日期与时间。可以通过 new 关键词来定义 Date 对象。 有四种方式初始化日期: new Date(); new Date(value); new Date(dateString); new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);实例化例子&#xff1a; var …

gitlab-ci.yml关键字(二)(全局)default、stages

default 这是一个全局关键字&#xff0c;可以在全局设置某些关键字的的默认值&#xff0c;如果在job中没有定义该关键字的值&#xff0c;那么就会使用全局设置的默认值 示例 default:image: ruby:3.0rspec:script: bundle exec rspecrspec 2.7:image: ruby:2.7script: bundl…

LeetCode 598 范围求和Ⅱ

LeetCode刷题记录 文章目录&#x1f4dc;题目描述&#x1f4a1;解题思路⌨C代码&#x1f4dc;题目描述 给你一个 m x n 的矩阵 M &#xff0c;初始化时所有的 0 和一个操作数组 op &#xff0c;其中 ops[i] [ai, bi] 意味着当所有的0 < x < ai和 0 < y < bi 时&am…

力扣——环形链表

142. 环形链表 II - 力扣&#xff08;LeetCode&#xff09; 这个题是要求我们判断链表是否存在环&#xff0c;有则返回环开始的结点&#xff0c;没有则返回一个NULL&#xff1b; 废话就不说了&#xff0c;直入主题&#xff1a; /*** Definition for singly-linked list.* str…

代码快一点~生活慢一点~【python性能调试工具分享】

背景1 天下武功&#xff0c;为快不破&#xff01; 上学的时候&#xff0c;有些人考试半小时就已经把卷子写完了。有些人还没写完。 工作的时候&#xff0c;有些人一天就能把活干完了&#xff0c;有些人还没开始。 写论文的时候&#xff0c;有些人代码都写完了&#xff0c;数…

ospf不规则区域实验

r11&#xff0c;r3为运行商&#xff0c;要求全网可达 首先现在r13上配置ospf 然后配置一条缺省路由并且下发路由 抓取流量 [r13]acl 2000 [r13-acl-basic-2000]rule permit source any [r13]int g0/0/1 [r13-GigabitEthernet0/0/1]nat outbound 2000 下一步实现ospf100 里面…

Ant Design入门

目录 一&#xff1a;什么是Ant Design&#xff1f; 二&#xff1a;开始使用 三&#xff1a;布局 四&#xff1a;表格 一&#xff1a;什么是Ant Design&#xff1f; Ant Design是阿里蚂蚁金服团队基于React开发的ui组件&#xff0c;主要用于中后台系统的使用。 官网&#x…

【技术】5G技术的应用场景及发展趋势

5G是具有高速率、低时延和大连接特点的新一代宽带移动通信技术。5G系统基于大带宽和大规模天线方案&#xff0c;能实现亚米级高精度定位。 据《5G经济社会影响白皮书》可知&#xff0c;按照2020年5G才大规模商用算起&#xff0c;预计2020年至2025年期间&#xff0c;中国5G发展将…

抓包工具wiresharke及抓包流程

背景&#xff1a;公司的系统在生产环境运行一段时间之后&#xff0c;通过skywalking监控工具发现时不时会有接口调用耗时很长的情况出现。且监控到的数据和华为云ELB的监控日志不匹配&#xff0c;为了验证是否是由华为云ELB转发延迟导致&#xff0c;决定在生产上抓包验证&#…

【应用】博图SCL语言之抢答器应用

使用博图的SCL语言来完成多人抢答器的应用案例。 文章目录 目录 文章目录 前言 一、控制要求和I/O分配 1.控制要求 2.I/O分配 3.具体场景 二、编写 1.建立变量 2.编写 1.四路抢答器互锁 2.抢答提示指示灯 3.提前抢答和超时不抢答 4.完善 三、效果 1.仿真效果 2.虚拟工厂效果 …

IPO OC 系列模拟信号隔离转换模块0-1mA /0-10mA/0-20mA/ 4-20mA/0-75mV/0-2.5V/0-5V/0-10V

概述 IPO OC 系列模拟信号隔离放大器是一种将输入信号隔离放大、转换成按比例输出的直流信号混合集成厚模电路。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等需要电量隔离测控的行业。该模块内部嵌入了一个高效微功率的电源&#xff0c;可以向输入端和输出端…

缅怀致敬 继往开来 | 萨师煊教授诞辰100周年纪念主题活动在京举行

2022年12月27日是我国数据库学科奠基人——萨师煊教授诞辰100周年纪念日。为缅怀萨师煊先生对我国数据库领域做出的突出贡献&#xff0c;弘扬萨师煊先生敢为人先、严谨治学的高尚品格&#xff0c;“萨师煊教授诞辰100周年纪念活动”27日在北京举行。本次纪念活动由中国人民大学…

云原生丨手把手教你使用zabbix监控postgresql数据库(超详细讲解)

文章目录一、前言二、什么是zabbix三、zabbix安装步骤四、监控postgresql实现步骤一、前言 对于运维人员来说&#xff0c;监控是非常重要的&#xff0c;因为如果想要保证线上业务整体能够稳定运行&#xff0c;那么我们则需要实时关注与其相关的各项指标是否正常。 而一个业务…

数据结构-图

1、图的基本概念 &#xff08;1&#xff09;定义 图是一种较为复杂的非线性结构。 图就是由顶点的有穷非空集合和顶点之间的边组成的集合。通常表示为G(V,E)&#xff0c;其中&#xff0c;G表示一个图&#xff0c;V表示顶点的集合&#xff0c;E表示边的集合。 &#xff08;2&…

当年谷歌为什么退出中国?

《时代》周刊中&#xff0c;百度公司创始人兼CEO李彦宏成为封面人物&#xff0c;成为中国互联网登《时代》的第一人。 而专访中的一段话&#xff0c;却让一段往事再次成为了舆论热议的焦点。专访中&#xff0c;李彦宏表示&#xff0c;谷歌当年退出中国是因为迫于百度给予的市场…

高可用软件什么意思?哪些高可用软件好用?

你知道高可用软件什么意思吗&#xff1f;哪些高可用软件好用&#xff1f;这里我们小编就给大家简单回答一下这两个问题。希望能对大家有用。 高可用软件什么意思&#xff1f; 所谓高可用是指系统无中断地执行其功能的能力&#xff1b;因此高可用软件是指具备处理能力&#xff…