HTML+CSS+JavaScript:实现京东官网固定导航栏

news2024/9/24 19:23:10

一、需求

在京东官网首页,只要页面滚动到京东秒杀倒计时的位置,顶部的导航栏就会自动出现且固定在窗口最上方,如下图

 我们将模仿京东官网的效果,做一个简易的固定导航栏,如下图

二、代码素材

以下是缺失JS部分的代码,感兴趣的小伙伴可以自己先试试

<!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>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        .content {
            overflow: hidden;
            width: 1000px;
            height: 3000px;
            background-color: pink;
            margin: 0 auto;
        }

        .backtop {
            display: none;
            width: 50px;
            left: 50%;
            margin: 0 0 0 505px;
            position: fixed;
            bottom: 60px;
            z-index: 100;
        }

        .backtop a {
            height: 50px;
            width: 50px;
            background: url(./images/bg2.png) 0 -600px no-repeat;
            opacity: 0.35;
            overflow: hidden;
            display: block;
            text-indent: -999em;
            cursor: pointer;
        }

        .header {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 80px;
            background-color: purple;
            text-align: center;
            color: #fff;
            line-height: 80px;
            font-size: 30px;
            transition: all .3s;
        }

        .sk {
            width: 300px;
            height: 300px;
            background-color: skyblue;
            margin-top: 500px;
        }
    </style>
</head>

<body>
    <div class="header">我是顶部导航</div>
    <div class="content">
        <div class="sk">秒杀模块</div>
    </div>
    <div class="backtop">
        <img src="./images/close2.png" alt="">
        <a href="javascript:;"></a>
    </div>
    <script>
       
    </script>
</body>

</html>

三、算法思路

1、获取相关的元素->document.querySelector()

2、获取京东秒杀倒计时距离窗口顶部的距离->offsetTop

3、注册页面滚动事件,检测页面滚动距离->

window.addEventListener('scroll',()=>{ }) 、document.documentElement.scrollTop

4、如果页面滚动到倒计时的位置,修改顶部导航的CSS属性,使之显现。(配合CSS的样式transition: all .3s;可让导航栏在三面之内平滑地滑动显现出来)

四、完整代码

<!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>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        .content {
            overflow: hidden;
            width: 1000px;
            height: 3000px;
            background-color: pink;
            margin: 0 auto;
        }

        .backtop {
            display: none;
            width: 50px;
            left: 50%;
            margin: 0 0 0 505px;
            position: fixed;
            bottom: 60px;
            z-index: 100;
        }

        .backtop a {
            height: 50px;
            width: 50px;
            background: url(./images/bg2.png) 0 -600px no-repeat;
            opacity: 0.35;
            overflow: hidden;
            display: block;
            text-indent: -999em;
            cursor: pointer;
        }

        .header {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 80px;
            background-color: purple;
            text-align: center;
            color: #fff;
            line-height: 80px;
            font-size: 30px;
            transition: all .3s;
        }

        .sk {
            width: 300px;
            height: 300px;
            background-color: skyblue;
            margin-top: 500px;
        }
    </style>
</head>

<body>
    <div class="header">我是顶部导航</div>
    <div class="content">
        <div class="sk">秒杀模块</div>
    </div>
    <div class="backtop">
        <img src="./images/close2.png" alt="">
        <a href="javascript:;"></a>
    </div>
    <script>
        const header=document.querySelector('.header')
        const sk=document.querySelector('.sk')
        header.style.top='-80px'
        window.addEventListener('scroll',()=>{
            header.style.top=document.documentElement.scrollTop>=sk.offsetTop?'0px':'-80px'
        })
    </script>
</body>

</html>

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

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

相关文章

你应该知道的关于PCB布线的31条建议

1、走线长度应包含过孔和封装焊盘的长度。 2、布线角度优选135角出线方式&#xff0c;任意角度出线会导致制版出现工艺问题。 图1 PCB布线的角度 3、布线避免直角或者锐角布线&#xff0c;导致转角位置线宽变化&#xff0c;阻抗变化&#xff0c;造成信号反射&#xff0c;如图2…

AVL/B-/+ Tree查找

文章目录 0 树表的查找1 二叉排序树1.1 二叉排序树的操作1.1.1 二叉排序树的存储1.1.2 二叉排序树的递归查找1.1.3 二叉排序树的插入1.1.4 二叉排序树的生成1.1.5 二叉排序树的删除 1.2 二叉排序树的查找性能分析 2 平衡二叉树&#xff08;AVL树&#xff09;2.1 失衡二叉排序树…

WEB:web2

背景知识 代码审计 题目 由上述可知&#xff0c;这段代码定义了一个函数encode&#xff0c;接受一个字符串参数$str&#xff0c;并返回对其进行加密后的结果 加密算法包括&#xff1a; 使用strrev函数将字符串进行翻转&#xff1b;对翻转后的每个字符&#xff0c;将其ASCII值…

【playbook】Ansible的脚本----playbook剧本

Ansible的脚本----playbook剧本 1.playbook剧本组成2.playbook剧本实战演练2.1 实战演练一&#xff1a;给被管理主机安装Apache服务2.2 实战演练二&#xff1a;使用sudo命令将远程主机的普通用户提权为root用户2.3 实战演练三&#xff1a;when条件判断指定的IP地址2.4 实战演练…

企业如何制定数字化管理决策方案

数字化管理决策是指通过利用数字技术和数据分析来辅助和支持管理决策的过程。它利用计算机、互联网和其他技术来收集、分析和解释大量的数据&#xff0c;从而帮助管理者做出更准确、更有效的决策。 数字化管理决策的关键 数据收集与分析&#xff1a;数字化管理决策依赖于数据…

FreeRTOS之队列

什么是队列&#xff1f; 队列又称消息队列&#xff0c;是一种常用于任务间通信的数据结构&#xff0c;队列可以在任务与任务间、中断和任 务间传递信息。 关于队列的几个名词&#xff1a; 队列项目&#xff1a;队列中的每一个数据&#xff1b; 队列长度&#xff1a;队列能够…

PHP生成动态小程序二维码自定义路径和参数

PHP生成动态小程序二维码自定义路径和参数 小程序路径src 参数params http://test.com?srcindex/index/index&paramsstore_id10<?php $src$_GET[src]; $params$_GET[params];doPageNewQr($src,$params); function doPageNewQr($src,$params){//配置APPID、APPSECRET$A…

品牌触点:特别关注消费者的关键接触点

品牌触点&#xff1a;特别关注消费者的关键接触点 有个专门岗位&#xff1a;触点经理 打造品牌是超级工程 关键触点要持久不断地努力 很受启发 趣讲大白话&#xff1a;让消费者见一次喜欢一次 【趣讲信息科技240期】 **************************** 品牌触点是品牌与消费群体接触…

2023-将jar包上传至阿里云maven私有仓库(云效制品仓库)

一、背景介绍 如果要将平时积累的代码工具jar包&#xff0c;上传至云端&#xff0c;方便团队大家一起使用&#xff0c;一般的方式就是上传到Maven中心仓库&#xff08;但是这种方式步骤多&#xff0c;麻烦&#xff0c;而且上传之后审核时间比较长&#xff0c;还不太容易通过&a…

Spring 6【数据绑定之类型转换(Type Conversion)】(十一)-全面详解(学习总结---从入门到深化)

目录 数据绑定之类型转换(Type Conversion) 数据绑定之类型转换(Type Conversion) 1.PropertyEditor 在Spring框架3.0之前并没有提供类型转换器&#xff0c;而是使用JDK原生的java.beans.PropertyEditor进行类型转换&#xff08;提供了PropertyEditor接口的几个实现类&#x…

指令调度(Instruction Scheduling)

指令调度&#xff08;Instruction Scheduling&#xff09; 指令调度的约束基本机器模型基本块调度全局调度 指令调度是为了提高指令级并行&#xff08;ILP&#xff09;&#xff0c;对于超长指令字&#xff08;VLIW, Very Long Instruction Word&#xff09;和多发射系统&#x…

Jvm的一些技巧

反编译字节码文件 找到对应的class文件所在的目录&#xff0c;使用javap -v -p 命令 查询运行中某个Java进程的Jvm参数 【案例】查询 MethodAreaDemo 这个类运行过程中&#xff0c;初始的元空间大小 MetaspaceSize jps 查询 Java 进程的进程ID ![在这里插入图片描述](https…

GRACE数据反演的新理解

一、问题提出 “重力恢复与气候实验”&#xff08;GRACE&#xff09;为监测地球系统内全球大尺度质量变化提供了一种新途径。自2002年3月发射以来&#xff0c;GRACE一直在生成时间变化的重力场模型&#xff0c;这些模型可用于量化与全球气候变化相关的地球系统不同组成部分内的…

【C++11】——类的新功能

目录 1. 默认成员函数 2. 类成员变量初始化 3. 强制生成默认函数的关键字default 4. 禁止生成默认函数的关键字delect 5. 继承和多态的final与override关键字 6. 测试案例 1. 默认成员函数 原来C类中&#xff08;C11之前&#xff09;&#xff0c;有6个默认成员函数&…

管理类联考——写作——素材篇——论证有效性分析——常见逻辑谬误

批判性思维常见逻辑谬误 有些错误出现在我们澄清或定义某个观点的时候&#xff0c;有些错误出现在我们收集证据或者用证据和理由支撑某个观点的时候&#xff0c;有些错误出现在我们尝试从证据得出结论的时候&#xff0c;有些错误甚至出现在我们评估他人的观点或者理由的时候。…

Drools用户手册翻译——第四章 Drools规则引擎(八)drools中的事实传播模式和议程评估过滤器

甩锅声明&#xff1a;本人英语一般&#xff0c;翻译只是为了做个笔记&#xff0c;所以有翻译错误的地方&#xff0c;错就错了&#xff0c;如果你想给我纠正&#xff0c;就给我留言&#xff0c;我会改过来&#xff0c;如果懒得理我&#xff0c;就直接划过即可。 drools中的事实…

微信小程序开发每日一写--5

按钮的使用和底层逻辑的实现&#xff08;暂未成功&#xff09; WXML&#xff1a; <button class"bth1"type"primary" >按钮</button>JS&#xff1a; // index.js // 获取应用实例 //const app getApp() Page({/*bthTapHandler(e){//按钮的…

C动态内存分配

&#x1f388;对比一般内存分配和动态内存分配 &#x1f308;一般内存分配 int val 20; char arr[10] {0};特点&#xff1a; ①大小是固定的&#xff0c;一旦分配好就无法改变&#xff08;数组必须指定大小后编译器才能分配空间&#xff09; ②分配的空间具体放置什么类型的…

ffmpeg批量分割视频解决视频前几秒黑屏的问题解决

echo 请输入视频地址&#xff1a; set /p fp echo 请输入开始时间&#xff1a; set /p st echo 请输入结束时间&#xff1a; set /p et echo 请输入分片时间&#xff1a; set /p sgt echo 注意&#xff1a;循环范围参数要空格。 for /l %%i in (%st%, %sgt%, %et%) do call :aa…

【Spring AOP学习】AOP的组成 SpringAOP的实现和实现原理

目录 一、认识SpringAOP 1、AOP是什么&#xff1f; 2、AOP的功能 3、AOP的组成&#xff08;重要&#xff09; 二、SpringAOP的实现 &#x1f337;1、添加Spring AOP框架支持 &#x1f337;2、定义切面和切点 &#x1f337; 3、定义通知 3.1 完成代码实现 3.2 具体通知…