【方法】纯jQuery实现星巴克官网导航栏效果

前言

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

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

请各位大神指教!

 


 

官网效果图

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

 


 

效果分析

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

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

 


 

解决思路

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

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

 


  

demo代码演示

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <style>
 7             #div1{
 8                 width: 100%;
 9                 /*使图片居中*/
10                 text-align:center;
11                 /*让其固定在页面上方*/
12                 position: fixed;
13                 left: 0;
14                 top:0;
15                 background-color: white;
16             }
17             #div2{
18                 background-color: red;
19                 height: 2000px;    
20             }
21             #div1 img{
22                 width: 73px;
23                 height: 73px;
24                 padding: 15px 0;
25                 /*使大小变化有个过渡过程*/
26                 transition: all 0.5s ease;
27             }
28         </style>
29     </head>
30     <body>
31         <div id="div1">
32             <img src="https://www.starbucks.com.cn/_themes/starbucks/img/logo.svg" alt="" />
33         </div>
34         <div id="div2">hhaha </div>
35     </body>
36     <script src="JQuery/jquery-3.1.1.js"></script>
37     <script>
38         //获取最开始的滚动距离
39         var scrollBefore = $(document).scrollTop();
40         $(document).scroll(function(){
41             //获取当时的滚动距离
42             var scrollAfter=$(document).scrollTop();
43             //当滚动距离小于107的时候,导航栏是大的
44             if(scrollAfter<107){
45             $("#div1 img").css({width:"73px",height:"73px",padding:"15px 0"});
46             };
47             //当滚动距离大于107时,导航栏切换显示隐藏状态
48             if(scrollAfter>=107){
49                 //当滚动方向往下的时候,导航栏隐藏
50                 if (scrollBefore < scrollAfter) {
51                     $("#div1").slideUp("fast");
52                     //当滚动方向往上的时候,导航栏显示,并且是小的。
53                       } else {
54                     $("#div1 img").css({width:"50px",height:"50px",padding:" 5px 0"});
55                     $("#div1").slideDown("fast");
56                        };
57                      //给开始的导航距离赋值,可以进行比较
58                     scrollBefore = scrollAfter;
59                 };
60             });
61     </script>
62 </html>

 

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

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

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

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

 

 

转载于:https://www.cnblogs.com/roashley/p/7862528.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
清凉一夏 来点一杯星巴克吧! 当我们还在家中吹着空调敲着代码吃着西瓜的时候,可能你的她还在炎炎夏日下大汗淋漓,打开这个小程序,为她点上一杯冰镇的星巴克,后续的故事就不用再说了把,作为还在起跑线上的全栈的学习者,初试微信小程序,花了四天左右的时间初步的完成了这个小程序,这个小程序吸引我的真的就是颜啊(身为颜控的我),有木有觉得很美观,下面我们就一起看下这个demo吧 如果各位看官觉得还行不妨点个赞哦项目源码: GitHub 求小星星鼓励项目工具及文档1.微信web开发者工具:微信小程序官网 一款很好用的小程序编辑软件2.开发文档:微信小程序必备无敌文档 你想要的都在里面页面注册 app.json {"pages":[    "pages/index/index",     星巴克用星说 主页    "pages/detail/detail",   @all 我想对你们说    "pages/giftcard/giftcard", 礼品卡详情页 ], }项目功能已实现的功能scroll-view等基础事件tab切换及其高亮事件添加购物车的显示隐藏功能付款的显示隐藏及其高亮的功能未实现的功能门店列表(显示最近30家门店)功能地图定位功能具体功能预览1.tab切换在tab切换上,做到了大图切换和小图高亮,是不是效果还不错具体效果图:如下 这里底部闪光是因为录屏软件的问题哦_实现代码:如下                                   选择卡面                                                                                                                                                                                             使用点击事件就可以实现这些功能啦,有没有很简单 2.giftcard在点击左边一部分的时候是跳转礼品卡详情3.购物付款功能在点击右边部分的➕和➖就会修改对应的数量了,当然哦,下面的结账也会显示你所购买的数量和总价哦,是不是觉得符合现代化简约美呀这是这个小程序最闪光点也最需要思考的地方啦,仔细一看发现是不是操作后有很多小的变化,也是这小小的变化让整个小程序更美观了这是选择礼品的布局样式             <tex

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值