华而不实的导航栏制作 css+js

今天我们做一个特别的导航栏,每一秒都是想不到的效果

赛博风导航栏

一、准备工作

首先准备一个文件夹来存放我们的代码,新建一个html文件和一个css文件

在html文件中,把大致的导航栏制作出来

二、样式编写 

 初始效果做出来后,我们在css文件中添加我们的样式

我们先将样式进行初始化,删除所有的默认样式,为背景添加属性

*
{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Poppins',sans-serif;
}

body
{
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: #252839;
}

 初始样式完成后,开始为导航栏添加布局(使它为竖着的布局)

ul
{
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

ul li 
{
    position: relative;
    list-style: none;
}

完成后做前面的小滑块

ul li a 
{
    position: relative;
    font-size: 3em;
    text-decoration: none;
    color: #fff2;
    letter-spacing: 0.25em;
    line-height: 1em;
    text-transform: capitalize;
}

滑块的样式完成后,设置滑块的动画样式,使滑块从左滑到右

ul li a::before
{
    content: attr(data-text);
    position: absolute;
    color: var(--cr);
    width: 0;
    overflow: hidden;
    border-right: 6px solid var(--cr);
    transition: 1s
}

/* 滑块滑动 */
ul li a:hover::before
{
    width: 100%;
    filter: drop-shadow(0 0 25px var(--cr));
}

完成后,做js部分的动画效果,使导航栏文字部分可以随机点亮

先在原来的html代码中添加一些属性和值

完成后,开始编写js

   <script>
        let text = document.querySelectorAll('ul li a').forEach(text=> 
        {
            text.innerHTML = text.innerText.split('').map
            ((letters,i)=> `<span>${letters}</span>`).join('');
            let spn = document.querySelectorAll('ul li a span').
            forEach(e => {
                let duration = Math.random() * 5;   //随机的范围
                e.style.animationDuration = 0.25+duration+'s';
                e.style.animationDelay = 0.25+duration+'s';
            })

        })
    </script>

在原先的css中添加动画的启动样式,使js能够在页面中运行

ul li a span 
{
    position: relative;
    animation: animateText linear infinite;
}

ul:hover li a span
{
    opacity: 0.15;
    animation-play-state: paused;
} 

@keyframes animateText
{
    0%,20%
    {
        color: #fff2;
        filter: drop-shadow(0 0 0 var(--cr));
    }
    21.001%,79.999%
    {
        color: var(--cr);
        filter: drop-shadow(0 0 25px var(--cr));
    }
    80%,100%
    {
        color: #fff2;
        filter: drop-shadow(0 0 0 var(--cr));
    }
}

 最后完成导航栏的制作

三、总结

这个导航栏可以增加页面的互动性,使用户可以为该页面停留下来。这次的代码中,逻辑还不够完美。在编写代码时,要注意js的逻辑。一定要把css文件引入到html文件中!!!

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,ESP8266是一款具有Wi-Fi功能的微控制器模块,它可以与Arduino UNO R3进行通信和控制。而光照传感器用于检测环境的光照强度。下面我将用华而不实的例子来说明如何使用ESP8266和Arduino UNO R3进行光照传感器的闪烁灯实验。 首先,我们需要连接ESP8266和Arduino UNO R3。将ESP8266模块的VCC引脚连接到Arduino UNO R3的5V引脚,将GND引脚连接到Arduino UNO R3的GND引脚,将ESP8266的RX引脚连接到Arduino UNO R3的TX引脚,将ESP8266的TX引脚连接到Arduino UNO R3的RX引脚。 接下来,我们需要连接光照传感器。将光照传感器的VCC引脚连接到Arduino UNO R3的5V引脚,将GND引脚连接到Arduino UNO R3的GND引脚,将光照传感器的信号引脚连接到Arduino UNO R3的A0引脚。 接下来,我们需要编写Arduino代码。首先,导入ESP8266WiFi和SoftwareSerial库。然后,在setup函数中初始化串口通信和Wi-Fi连接。在loop函数中,读取光照传感器的数值,并根据数值控制ESP8266的GPIO引脚输出高低电平,以实现闪烁灯效果。 最后,将代码上传到Arduino UNO R3中,并将ESP8266连接到Wi-Fi网络。当光照传感器检测到较强的光照时,闪烁灯会快速闪烁;当光照传感器检测到较弱的光照时,闪烁灯会慢速闪烁。 总结来说,使用ESP8266、Arduino UNO R3和光照传感器可以实现一个具有可调节闪烁频率的光照传感器闪烁灯实验。这个实验可以用于对光照强度的实时监测和视觉提醒。相信这个简单的实验可以帮助大家更好地理解ESP8266和Arduino UNO R3的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值