京东页面(黏性定位的实现)

前言:

本文章将分享一些我这周在制作京东页面的实现部分,页面表面大体和京东页面差不多,在里面加了一点script,但是很容易理解,希望大家看到可以有所收获,如果我有哪部分写的不太好,欢迎大家来跟我交流!

🥰个人主页:心.c

🥳文章专题:京东页面制作

🙈欢迎大家点赞❤️收藏💞

a399d2f28e90430a9cc8fb0f366ceb84.jpg

京东

关于这个页面,我想分享一下页面中头部的黏性定位,这个定位实现是我自己写的,关于script是本人在AL上搜的,希望可以对大家有帮助,大家有不清楚的地方都欢迎随时来问我.

HTML

下面HTML代码中是视频中关于鼠标滚动时出现的头部搜索区域和头部导航区域,

大致就是当页面高度达到一定位置时,头部的黏性定位就会弹出来,然后加上一些动画(animation),设置时间和位置就可以更加自然的显示出来

<!-- 设置黏性定位区域 -->
    <div class="noface-search" id="stickyElement">
        <div class="wrapper">
            <div class="init-logo"><img src="./images/logo2.png" alt=""></div>
            <div class="init-search">
                <div class="search-box">
                    <input type="text" placeholder="请输入关键字">
                    <div class="photo-btn"><span class="iconfont icon-xiangji"></span></div>
                    <div class="search-btn"><span class="iconfont icon-sousuo"></span></div>
                </div>
                <div class="cart">
                    <i class="iconfont icon-gouwu"></i>
                    <a href="#">我的购物车</a>
                    <div><span>0</span></div>
                </div>

            </div>
        </div>


    </div>

    <!-- 设置黏性导航区域 -->
    <div class="noface-nav" id="stickyElement1">
        <div class="wrapper">
            <div class="content_nav">
                <ul>
                    <li class="active"><a href="#">
                            <div>
                                <h3>精选</h3>
                            </div><span>猜你喜欢</span>
                        </a></li>
                    <div class="thread"></div>
                    <li class="normal"><a href="#">
                            <h3>智能先锋</h3><span>大电器械</span>
                        </a></li>
                    <div class="thread"></div>
                    <li class="normal"><a href="#">
                            <h3>居家优品</h3><span>品质生活</span>
                        </a></li>
                    <div class="thread"></div>
                    <li class="normal"><a href="#">
                            <h3>超市百货</h3><span>百货生鲜</span>
                        </a></li>
                    <div class="thread"></div>
                    <li class="normal"><a href="#">
                            <h3>时尚达人</h3><span>美妆穿搭</span>
                        </a></li>
                    <div class="thread"></div>
                    <li class="normal"><a href="#">
                            <h3>进口好物</h3><span>京东国际</span>
                        </a></li>
                </ul>
            </div>
        </div>
    </div>

 CSS

关于顶部导航区域的css样式和下面content导航中的css共用的一个,也因为css样式几乎完全一样就多了个黏性碰撞,没有其他什么变化,所以这里就不展示了;关于下面的css样式,大家可以参考,如果有什么问题可以私信我

.wrapper {
    margin: 0 auto;
    width: 1190px;
}

/* 设置黏性搜索区域 */
.noface-search {
    padding: 0 20px;
    height: 51px;
    background-color: #ffffff;
    position: -webkit-sticky;
    position: sticky;
    top: 0px;
    /* 距离顶部的距离 */
    border-bottom: 3px solid #e22525;
    z-index: 300;
    /* 确保粘性元素在其他内容上方 */
    display: none;
    /* 初始隐藏 */
    animation: ease1 0.8s ease;
}

.noface-search .init-logo img {
    height: 48px;
    width: 125px;
    background-size: cover;
}

@keyframes ease1 {
    from {
        transform: translateY(-50px);
    }

    to {
        transform: translateY(0px);
    }
}

.noface-search .wrapper {
    display: flex;


}

.init-search {
    margin-top: 7px;
    padding-left: 150px;
    display: flex;
}

.init-search .search-box {
    position: relative;
    display: flex;
    width: 487px;
    height: 36px;
    border: 2px solid #e53232;
    margin-right: 30px;
}

.init-search .search-box input {
    flex: 1;
    border: 0;
    background-color: transparent;
    outline: none;
    padding-left: 15px;
}

.init-search .search-box input::placeholder {
    font-size: 12px;
    color: #c0c0c0;
}

.init-search .photo-btn .iconfont {
    position: absolute;
    left: 388px;
    top: -8px;
    font-size: 30px;
    color: #c4c4c4;
    cursor: pointer;
}

.init-search search-box {
    position: relative;
    display: flex;
    width: 487px;
    height: 30px;
    border: 2px solid #cb5050;
    margin-right: 20px;
}

.init-search .search-box input {
    flex: 1;
    border: 0;
    background-color: transparent;
    outline: none;
    padding-left: 15px;
}

.init-search .search-box input::placeholder {
    font-size: 12px;
    color: #c0c0c0;
}

.init-search .photo-btn .iconfont {
    position: absolute;
    left: 388px;
    top: -8px;
    font-size: 30px;
    color: #c4c4c4;
    cursor: pointer;
}

.init-search .search-box .search-btn {
    text-align: right;
    right: -58px;
    width: 58px;
    background-color: #cb5050;
    text-align: center;
    cursor: pointer;
}

.init-search .search-btn .iconfont {
    color: #ffffff;
    font-size: 30px;
    line-height: 32px;
}

.init-search .cart {
    position: relative;
    width: 131px;
    height: 36px;
    border: #e9e9e9 1px solid;
    line-height: 32px;
    text-align: center;
}

.init-search .cart .iconfont {
    font-size: 30px;
    color: #cb5050;
    vertical-align: middle;
}

.init-search .cart a {
    font-size: 11px;
    color: #cb5050;
}

.init-search .cart div {
    padding: 1px 5px;
    position: absolute;
    top: 2px;
    left: 33px;
    height: 13px;
    border-radius: 7px;
    background-color: #cb5050;


}

.init-search .cart div span {
    display: block;
    margin-top: -10px;
    color: #fff;
    font-size: 8px;
}

/* 设置黏性导航区域 */
.noface-nav {
    padding: 0 20px;
    height: 61px;
    background-color: #ffffff;
    position: -webkit-sticky;
    position: sticky;
    top: 51px;
    /* 距离顶部的距离 */
    z-index: 233;
    /* 确保粘性元素在其他内容上方 */
    display: none;
    /* 初始隐藏 */
    animation: change 0.7s ease;
}

@keyframes change {
    from {
        transform: translateY(-54px);
    }

    to {
        transform: translateY(0px);
    }
}

script

这个是我自己直接引入修改了高度,如果大家有更加合适的当然可以

    <script>
        window.onscroll = function () { scrollFunction() };

        function scrollFunction() {
            // 当滚动高度大于等于500像素时显示粘性元素,否则隐藏
            if (document.body.scrollTop > 600 || document.documentElement.scrollTop > 600) {
                document.getElementById("stickyElement").style.display = "block";
            } else {
                document.getElementById("stickyElement").style.display = "none";
            }
            if (document.body.scrollTop > 900 || document.documentElement.scrollTop > 900) {
                document.getElementById("stickyElement1").style.display = "block";
            } else {
                document.getElementById("stickyElement1").style.display = "none";
            }

        }
    </script>

到这里我的分享就结束了,如果大家想要了解更多或者想要小编的源码,都可以在评论区里面私信我哦! 欢迎大家和我一起探讨 ! ! !

71c26b58b7de4632a7b9b8756f7a4203.jpeg

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WEB后端复习——JSP、EL、JSTL

JSP:Java Serve Pages(Java服务器页面) 运行在服务器的脚本、在静态网页HTML代码中嵌入java 优势特点 1.被编译后可以多次直接运行&#xff0c;代码执行效率高&#xff08;一次加载、多次可用&#xff09; 2.动态代码封装&#xff0c;组件可重用性高&#xff08;JavaBean EJ…

dell服务器安装ubuntu18.04桌面版教程

目录 一、制作U盘启动盘 1.镜像下载地址&#xff1a; 2.制作U盘启动盘 二、服务器进入bios一系列设置 1.插入U盘启动盘 2.开机过程按F11键&#xff0c;进入Boot Manager &#xff0c;点击 3.点击点击One-shot BIOS Boot Menu 4.进入boot menu ,找到U盘&#xff08;一般…

实现二叉树的基本操作

博主主页: 码农派大星. 关注博主带你了解更多数据结构知识 1我们先来模拟创建一个二叉树 public class TestBinaryTreee {static class TreeNode{public char val;public TreeNode left;public TreeNode right;public TreeNode(char val) {this.val val;}}public TreeNode …

weblogic 任意文件上传 CVE-2018-2894

一、漏洞简介 在 Weblogic Web Service Test Page 中存在一处任意文件上传漏洞&#xff0c; Web Service Test Page 在"生产模式"下默认不开启&#xff0c;所以该漏洞有一定限制。利用该 漏洞&#xff0c;可以上传任意 jsp 文件&#xff0c;进而获取服务器权限。 二…

C++ | Leetcode C++题解之第76题最小覆盖子串

题目&#xff1a; 题解&#xff1a; class Solution { public:unordered_map <char, int> ori, cnt;bool check() {for (const auto &p: ori) {if (cnt[p.first] < p.second) {return false;}}return true;}string minWindow(string s, string t) {for (const au…

体验MouseBoost PRO,让Mac操作更高效

还在为Mac的右键功能而烦恼吗&#xff1f;试试MouseBoost PRO for Mac吧&#xff01;这款强大的鼠标右键增强软件&#xff0c;能让你通过简单操作即可激活多种实用功能&#xff0c;让你的工作变得更加轻松。其高度定制化的设计&#xff0c;更能满足你的个性化需求。赶快下载体验…

超详细 springboot 整合 Mock 进行单元测试!本文带你搞清楚!

文章目录 一、什么是Mock1、Mock定义2、为什么使用3、常用的Mock技术4、Mokito中文文档5、集成测试和单元测试区别 二、API1、Mockito的API2、ArgumentMatchers参数匹配3、OngoingStubbing返回操作 三、Mockito的使用1、添加Maven依赖2、InjectMocks、Mock使用3、SpringbootTes…

Apache Flume事务

Apache Flume 中的事务处理是指 Flume Agent 在处理事件流时的一种机制&#xff0c;用于确保数据的可靠传输和处理。 1. 事务概述&#xff1a; Flume 中的事务是指一组事件的传输和处理&#xff0c;这些事件在传输过程中要么全部成功完成&#xff0c;要么全部失败&#xff0…

Scratch四级:第07讲 编程数学02

第07讲 编程数学02 教练&#xff1a;老马的程序人生 微信&#xff1a;ProgrammingAssistant 博客&#xff1a;https://lsgogroup.blog.csdn.net/ 讲课目录 常考的数学问题项目制作&#xff1a;“求最大公约数”项目制作&#xff1a;“求最小公倍数”项目制作&#xff1a;“早餐…

EasyRecovery数据恢复软件2024最新免费无需激活版下载

EasyRecovery数据恢复软件是一款功能强大、操作简便的数据恢复工具&#xff0c;旨在帮助用户解决各种数据丢失问题。无论是由于误删除、格式化、磁盘损坏还是其他原因导致的数据丢失&#xff0c;EasyRecovery都能提供有效的恢复方案。以下是对EasyRecovery软件功能的详细介绍。…

免疫优化算法(Immune Optimization Algorithm)

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 算法背景 免疫算法是一种模拟生物免疫系统的智能优化算法。想象一下&#xff0c;当我们的身体遇到病毒或细菌侵袭时&#xff0c;免疫系统会启动…

Qt---事件

一、Qt中的事件 鼠标事件 鼠标进入事件enterEvent 鼠标离开事件leaveEvent 鼠标按下mousePressEvent ( QMouseEvent ev) 鼠标释放mouseReleaseEvent 鼠标移动mouseMoveEvent ev->x()&#xff1a;坐标 ev->y()&#xff1a;y坐标 ev->bu…

系统服务(22年国赛)—— Mail邮件服务部署

前言&#xff1a;原文在我的博客网站中&#xff0c;持续更新数通、系统方面的知识&#xff0c;欢迎来访&#xff01; 系统服务&#xff08;22年国赛&#xff09;—— Mail邮件服务部署https://myweb.myskillstree.cn/119.html 目录 题目 AppSrv&#xff08;已做好DNS配置&a…

Kotlin: ‘return‘ is not allowed here

报错&#xff1a;以下函数的内部函数return语句报错 Kotlin: return is not allowed here fun testReturn(summary: (String) -> String): String {var msg summary("summary收到参数")println("test内部调用参数&#xff1a;>结果是 &#xff1a;${msg…

Python多线程与互斥锁模拟抢购余票的示例

一、示例代码&#xff1a; from threading import Thread from threading import Lock import timen 100 # 共100张票def task():global nmutex.acquire() # 上锁temp ntime.sleep(0.1)n temp - 1print(购票成…

【计算机毕业设计】基于SSM++jsp的公司员工信息管理系统【源码+lw+部署文档+讲解】

目录 1 绪论 1.1 研究背景 1.2 目的和意义 1.3 论文结构安排 2 相关技术 2.1 SSM框架介绍 2.2 B/S结构介绍 2.3 Mysql数据库介绍 3 系统分析 3.1 系统可行性分析 3.1.1 技术可行性分析 3.1.2 经济可行性分析 3.1.3 运行可行性分析 3.2 系统性能分析 3.2.1 易用性指标 3.2.2 可…

大屏分辨率适配插件v-scale-screen

前言&#xff1a;大屏分辨率适配繁多&#xff0c;目前我认为最简单且问题最少的的方案就是使用v-scale-screen插件&#xff0c;无需考虑单位转换&#xff0c;position定位也正常使用。 1. 效果 填充满屏幕的效果 保持宽高比的效果 2. 插件原理 原理是通过css transfom 实现…

【计算机毕业设计】基于微信小程序的校园二手数码交易平台

随着 计算机技术的成熟&#xff0c;互联网的建立&#xff0c;如今&#xff0c;PC平台上有许多关于校园二手数码交易方面的应用程序&#xff0c;但由于使用时间和地点上的限制&#xff0c;用户在使用上存在着种种不方便&#xff0c;而开发一款基于微信小程序的校园二手数码交易平…

【计算机毕业设计】基于微信小程序的校园综合服务

随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;校园综合服务被用户普遍使用&#xff0c;为方便用户能够可以随时…

深度学习之GAN网络

目录 关于GAN网络 关于生成模型和判别模型 GAN网路的特性和搭建步骤&#xff08;以手写字体识别数据集为例&#xff09; 搭建步骤 特性 GAN的目标函数&#xff08;损失函数&#xff09; 目标函数原理 torch.nn.BCELoss&#xff08;实际应用的损失函数&#xff09; 代码…