【每日一练】142—页面旋转显示导航栏效果的实现

outside_default.png

今天这个效果,不是纯CSS实现的,它借助了点JavaScript技能,不过,你不懂JavaScript也没有关系,先跟着练习,一边练习一边查看相关知识点就好了。

在这个练习,我们主要是想跟大家一起来练习JavaScript中的getElementById这个方法,它是JavaScript中非常重要的一个方法,也是每个学习JavaScript的小伙伴必须要掌握的方法。

当然,也是比较基础的知识,希望大家都会。

现在,我们还是一起来看一下今天练习的最终效果:

outside_default.png

HTML代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css" integrity="sha512-1PKOgIY59xJ8Co8+NE6FZ+LOAZKjy+KY8iq0G4B3CyeY6wYHN3yt9PW0XpSriVlkMXe40PTKnXrLnZ9+fkDaog==" crossorigin="anonymous" />
    <link rel="stylesheet" href="style.css" />
    <title>【每日一练】142—页面旋转导航的实现</title>
  </head>
  <body>
    <div class="container">
      <div class="circle-container">
        <div class="circle">
          <button id="close">
            <i class="fas fa-times"></i>
          </button>
          <button id="open">
            <i class="fas fa-bars"></i>
          </button>
        </div>
      </div>


      <div class="content">
        <h1>什么是ChatGPT</h1>
        <small>web前端开发公众号</small>
        <p>最近,ChatGPT火的不行呀,关于学习如何使用它以及开发新应用的,也非常多。今天我们就一起来聊一聊这个火遍全网的机器人。
        其实,对于那些不熟悉GAN 的人来说,它们是一种神经网络,它使用两个相互竞争的网络——一个生成器和一个鉴别器——来创建逼真的输出。生成器创建假输出,而鉴别器则试图区分假输出和真实数据之间的区别。通过这个来回过程,GAN 能够产生与真实数据无法区分的输出。


ChatGPT 采用了这一概念并将其应用于基于文本的对话。它使用 GAN 生成对输入文本的响应,使其能够与人类进行听起来自然的对话。


但这里有一个问题——ChatGPT 的回应只是在切线上触及现实。虽然它们听起来很有说服力,但它们最终是 GAN 的虚构创作。


这听起来像是一个缺点,但它实际上使 ChatGPT 非常有用。因为它不受现实的约束,ChatGPT 可以参与完全想象的对话并提供创造性的、开箱即用的响应。</p>
        <h3>ChatGPT</h3>
        <img src="chatgpt01.jpg" />
        <p>最近,ChatGPT火的不行呀,关于学习如何使用它以及开发新应用的,也非常多。今天我们就一起来聊一聊这个火遍全网的机器人。
           其实,对于那些不熟悉GAN 的人来说,它们是一种神经网络,它使用两个相互竞争的网络——一个生成器和一个鉴别器——来创建逼真的输出。生成器创建假输出,而鉴别器则试图区分假输出和真实数据之间的区别。通过这个来回过程,GAN 能够产生与真实数据无法区分的输出。


ChatGPT 采用了这一概念并将其应用于基于文本的对话。它使用 GAN 生成对输入文本的响应,使其能够与人类进行听起来自然的对话。


但这里有一个问题——ChatGPT 的回应只是在切线上触及现实。虽然它们听起来很有说服力,但它们最终是 GAN 的虚构创作。


这听起来像是一个缺点,但它实际上使 ChatGPT 非常有用。因为它不受现实的约束,ChatGPT 可以参与完全想象的对话并提供创造性的、开箱即用的响应。</p>
      </div>
    </div>


    <nav>
      <ul>
        <li><i class="fas fa-home"></i><a href="http://www.webqdkf.com"> 主页</a></li>
        <li><i class="fas fa-user-alt"></i><a href="http://www.webqdkf.com"> 关于</a></li>
        <li><i class="fas fa-envelope"></i><a href="http://www.webqdkf.com"> 联系</a></li>
      </ul>
    </nav>
    <script src="script.js"></script>
  </body>
</html>

CSS代码:

* {
  box-sizing: border-box;
}


body {
  font-family: 'Lato', sans-serif;
  background-color: #333;
  color: #222;
  overflow-x: hidden;
  margin: 0;
}


.container {
  background-color: #fafafa;
  transform-origin: top left;
  transition: transform 0.5s linear;
  width: 100vw;
  min-height: 100vh;
  padding: 50px;
}


.container.show-nav {
  transform: rotate(-20deg);
}


.circle-container {
  position: fixed;
  top: -100px;
  left: -100px;
}


.circle {
  background-color: #00A6BC;
  height: 200px;
  width: 200px;
  border-radius: 50%;
  position: relative;
  transition: transform 0.5s linear;
}


.container.show-nav .circle {
  transform: rotate(-70deg);
}


.circle button {
  cursor: pointer;
  position: absolute;
  top: 50%;
  left: 50%;
  height: 100px;
  background: transparent;
  border: 0;
  font-size: 26px;
  color: #fff;
}


.circle button:focus {
  outline: none;
}


.circle button#open {
  left: 60%;
}


.circle button#close {
  top: 60%;
  transform: rotate(90deg);
  transform-origin: top left;
}


.container.show-nav + nav li {
  transform: translateX(0);
  transition-delay: 0.3s;
}


nav {
  position: fixed;
  bottom: 40px;
  left: 0;
  z-index: 100;
}


nav ul {
  list-style-type: none;
  padding-left: 30px;
}


nav ul li {
  text-transform: uppercase;
  color: #fff;
  margin: 40px 0;
  transform: translateX(-100%);
  transition: transform 0.4s ease-in;
}


nav ul li i {
  font-size: 20px;
  margin-right: 10px;
}


nav ul li + li {
  margin-left: 15px;
  transform: translateX(-150%);
}


nav ul li + li + li {
  margin-left: 30px;
  transform: translateX(-200%);
}


nav a{
  color: #fafafa;
  text-decoration: none;
  transition: all 0.5s;
}


nav a:hover {
  color: #00A6BC;
  font-weight: bold;
}


.content img {
  max-width: 100%;
}


.content {
  max-width: 1000px;
  margin: 50px auto;
}


.content h1 {
  margin: 0;
}


.content small {
  color: #555;
  font-style: italic;
}


.content p {
  color: #333;
  line-height: 1.5;
}

JS代码:

const open = document.getElementById('open')
const close = document.getElementById('close')
const container = document.querySelector('.container')


open.addEventListener('click', () => container.classList.add('show-nav'))


close.addEventListener('click', () => container.classList.remove('show-nav'))

写在最后

以上就是每日一练的全部内容,希望今天的小练习对你有用,如果你觉得有帮助的话,请点赞我,关注我,并将它分享给你身边做开发的朋友,也许能够帮助到他。

我是杨小爱,我们明天见。

推荐阅读

【每日一练】01~100练大合集汇总

学习更多技能

请点击下方公众号

outside_default.png

outside_default.png

outside_default.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值