前言

大冬天的没得玩,只能和代码玩。

所以就无聊研究了一下星巴克官网,在我看来应该是基本还原吧~

请各位大神指教!


官网效果图

要写的就是最上方的会闪现的白色条条


效果分析

1、在滚动条往下拉到一定距离后,往下拉导航栏消失。

2、当滚动条往上拉的时候,导航栏出现,并且拉到最上方的时候,导航栏效果是放大的。


解决思路

1、首先要监听滚动条的滚动方向。判断滚动方向,然后让导航栏发生隐藏显示事件。

2、 在滚动一定距离内,放大和缩小导航栏的大小。可以观察出导航栏的大小是因为Logo图片大小变化而引起的。这时候导航栏的高度可以让其自适应。


demo代码演示

 <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
#div1{
width: 100%;
/*使图片居中*/
text-align:center;
/*让其固定在页面上方*/
position: fixed;
left: 0;
top:0;
background-color: white;
}
#div2{
background-color: red;
height: 2000px;
}
#div1 img{
width: 73px;
height: 73px;
padding: 15px 0;
/*使大小变化有个过渡过程*/
transition: all 0.5s ease;
}
</style>
</head>
<body>
<div id="div1">
<img src="https://www.starbucks.com.cn/_themes/starbucks/img/logo.svg" alt="" />
</div>
<div id="div2">hhaha </div>
</body>
<script src="JQuery/jquery-3.1.1.js"></script>
<script>
//获取最开始的滚动距离
var scrollBefore = $(document).scrollTop();
$(document).scroll(function(){
//获取当时的滚动距离
var scrollAfter=$(document).scrollTop();
//当滚动距离小于107的时候,导航栏是大的
if(scrollAfter<107){
$("#div1 img").css({width:"73px",height:"73px",padding:"15px 0"});
};
//当滚动距离大于107时,导航栏切换显示隐藏状态
if(scrollAfter>=107){
//当滚动方向往下的时候,导航栏隐藏
if (scrollBefore < scrollAfter) {
$("#div1").slideUp("fast");
//当滚动方向往上的时候,导航栏显示,并且是小的。
} else {
$("#div1 img").css({width:"50px",height:"50px",padding:" 5px 0"});
$("#div1").slideDown("fast");
};
//给开始的导航距离赋值,可以进行比较
scrollBefore = scrollAfter;
};
});
</script>
</html>

有点粗糙,不要嫌弃,旁边的菜单和登录没写,在变换的时候也改变了位置,加到里面就行。

我就偷了点懒,只写了Logo图片。

其实代码并不复杂,难的就是你怎么分析他的效果。

把他的效果分析的越简单,你写起来就简单!

【方法】纯jQuery实现星巴克官网导航栏效果的更多相关文章

  1. 【分享】纯jQuery实现星巴克官网导航栏效果

    前言 大冬天的没得玩,只能和代码玩. 所以就无聊研究了一下星巴克官网,在我看来应该是基本还原吧~ 请各位大神指教! 官网效果图 要写的就是最上方的会闪现的白色条条 效果分析 1.在滚动条往下拉到一定距 ...

  2. 利用JQ实现的,高仿 彩虹岛官网导航栏(学习HTML过程中的小记录)

    利用JQ实现的,高仿 彩虹岛官网导航栏(学习HTML过程中的小记录)   作者:王可利(Star·星星) 总结: 今天学习的jQ类库的使用,代码重复的比较多需要完善.严格区分大小写,在 $(" ...

  3. 基于jQuery仿迅雷影音官网幻灯片特效

    分享一款基于jQuery仿迅雷影音官网幻灯片特效迅.雷影音官网jQuery幻灯片特效是一款带左右箭头,索引按钮切换的jQuery幻灯片代码.效果图如下: 在线预览   源码下载 实现的代码. html ...

  4. jQuery粘性跟随滚动条滚动的导航栏源代码下载

    jQuery粘性跟随滚动条滚动的导航栏源代码下载 作者:网页模板 大小:0.005MB 点击次数:3494 发布时间:2014-03-07 12:55 分享到:0 特效介绍 jQuery粘性跟随滚动条 ...

  5. jQuery Validate (摘自官网)

    jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证 ...

  6. python官网导航翻译

  7. 云南农职《JavaScript交互式网页设计》 综合机试试卷④——蔚蓝网导航栏

    一.语言和环境 实现语言:javascript.html.css. 开发环境:HBuilder. 二.题目(100分) 1.功能需求: 布局出顶部导航栏目 鼠标放到新手入门显示对象的下拉列表 鼠标移开 ...

  8. jQuery实现侧边导航栏效果

    效果图: 效果体验:http://keleyi.com/keleyi/phtml/jqmenu/2.htm 以下是完整代码: <!DOCTYPE html> <html> &l ...

  9. 如何用jQuery实现在鼠标滚动后导航栏保持固定

    要实现如下效果,鼠标滚动后,上方导航栏置顶固定 关键html代码: <div class="header-bottom"> <div class="co ...

随机推荐

  1. 第218天:Angular---模块和控制器

    1.使用NG实现双边数据绑定 所有需要ng管理的代码必须被包裹在一个有ng-app指令的元素中ng-app是ng的入口,表示当前元素的所有指令都会被angular管理(对每一个指令进行分析和操作) & ...

  2. BZOJ5322 JXOI2018排序问题

    对于一个序列,重排后有序的概率显然是∏cnti!/n!,其中cnti为第i种数出现次数.要使概率最小,显然应该让各种数字尽量平均分配.剩下的是div2BC左右的大讨论. #include<ios ...

  3. 腾讯下载的视频qlv格式转化为MP4格式

    最近在看腾讯视频的时候发现下载下来的视频格式都是qlv格式,且不能用其他播放器播放,甚是恼怒,网上找了很多方法都很繁琐,于是自己写了一个小程序来处理这个问题.把下载下来的qlv格式转化为MP4格式 首 ...

  4. Smallest Minimum Cut HDU - 6214(最小割集)

    Smallest Minimum Cut Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Oth ...

  5. BZOJ 3787: Gty的文艺妹子序列

    3787: Gty的文艺妹子序列 Time Limit: 50 Sec  Memory Limit: 256 MBSubmit: 186  Solved: 58[Submit][Status][Dis ...

  6. 【uoj129】 NOI2015—寿司晚宴

    http://uoj.ac/problem/129 (题目链接) 题意 给出2~n这n-1个数,求选2个集合,使得从两集合中任意各选取1个数出来它们都互质.求方案数. Solution PoPoQQQ ...

  7. Libssh认证绕过CVE-2018-10933漏洞复现

    0x00 漏洞描述 libssh 0.6 及以上的版本,在服务端的代码实现中存在身份认证绕过漏洞.在向服务端认证的流程中,攻击者通过将 SSH2_MSG_USERAUTH_REQUEST 消息替换为  ...

  8. 为smokeping添加日志开启debug

    用包管理工具安装smokeping没有自带日志输出,为了定位问题开启日志就成为第一需求. 1.修改smokeping的配置 # vim /etc/smokeping/config.d/General ...

  9. [THUSC 2016] 补退选 (Trie树)

    link $solution:$ $Trie$树很显然吧,那么如何去处理每次询问.对于$Trie$树的每个节点放一个$vector$表示其若有$v$个人的最小时间. #include<iostr ...

  10. Unity ZTest深度测试 & ZWrite深度写入

    Shader深度渲染队列Queue预定义值:Background(1000).Geometry(2000).AlphaTest(2450).Transparent(3000).Overlay(4000 ...