基于JS实现仿京东搜索栏随滑动透明度渐变效果


Posted in Javascript onJuly 10, 2017

废话不多说,直接上代码:

1、HTML

<header class="module-layer"> 
 <div class="module-layer-content"> 
  <div class="search-box-cover"></div> 
  <p class="layer-return"></p> 
  <h1 class="layer-head-name"> 
   <div class="pr search-box"> 
    <img class="shop-search" src="images/search.png"/> 
    <input id="shop-input" type="text" placeholder="搜索店内商品" value="" /> 
   </div> 
  </h1> 
  <p class="layer-share"></p> 
 </div> 
</header>

其中search-box-cover就是控制透明度渐变的背景

2、css

.module-layer { 
 width:100%; 
 position:fixed; 
 top:0; 
 left:0; 
 z-index:100000; 
} 
.module-layer-content { 
 position:relative; 
 min-width:320px; 
 max-width:750px; 
 width:100%; 
 margin:0 auto; 
} 
.module-layer-bg { 
 width:100%; 
 height:100%; 
 background:#000; 
 opacity:.7; 
 position:absolute; 
 top:0; 
 left:0; 
 z-index:-1; 
} 
.layer-head-name { 
 height:50px; 
 line-height:50px; 
 text-align:center; 
 padding:0 50px; 
 font-size:20px; 
} 
.layer-return,.layer-share { 
 width:50px; 
 height:50px; 
 line-height:50px; 
 text-align:center; 
 position:absolute; 
 top:0; 
 z-index:1; 
} 
.layer-return { 
 left:0; 
} 
.layer-share { 
 right:0; 
} 
.pr { 
 position:relative; 
} 
#shop-input::-webkit-input-placeholder { 
 color:#fff; 
} 
#shop-input:-moz-placeholder { 
 color:#fff; 
} 
#shop-input::-moz-placeholder { 
 color:#fff; 
} 
#shop-input:-ms-input-placeholder { 
 color:#fff; 
} 
#shop-input { 
 border:none; 
 outline:none; 
 background:transparent; 
} 
.search-box { 
 height:30px; 
 border-radius:20px; 
 top:10px; 
 overflow:hidden; 
 z-index:10; 
} 
.search-box:after { 
 content:''; 
 display:block; 
 width:100%; 
 height:30px; 
 background:#fff; 
 opacity:.5; 
 position:absolute; 
 top:0; 
 left:0px; 
 z-index:-1; 
} 
#shop-input { 
 height:28px; 
 line-height:28px; 
 font-size:16px; 
 position:absolute; 
 top:0; 
 left:30px; 
}

3、js

$(function(){ 
 var $body = $('body'); 
 var setCoverOpacity = function() { 
  $body.find('.search-box-cover').css({ 
   opacity: ((($body.scrollTop() / 150) > 0.9) ? 0.9 : ($body.scrollTop() / 150)) 
  }) 
 } 
//初始化设置背景透明度 
 setCoverOpacity(); 
//监听滚动条事件,改变透明度 
 $(window).scroll(function() { 
  setCoverOpacity(); 
 }); 
})

最终效果:

基于JS实现仿京东搜索栏随滑动透明度渐变效果基于JS实现仿京东搜索栏随滑动透明度渐变效果基于JS实现仿京东搜索栏随滑动透明度渐变效果

注意:

特别注意的一条:强制刷新,会导致页面的重新加载,所以动态加入的css样式不会存在,那么对透明背景的初始化非常重要,在网页端用户强制刷新,才不会失去透明效果。

1、

((($body.scrollTop() / 150) > 0.9) ? 0.9 : ($body.scrollTop() / 150))

此三目表达式是判断当前滚动条位置所在位置,如果位置值除以150大于0.9,就返回0.9,反之就返回那个小于等于0.9的值,将返回的值设置为背景的透明度就完成了。

2、由于滚动条的位置是动态获取的,所以设置透明度会不停改变,不用单独再做渐变的动画效果。

3、最终透明度问题,京东在最终背景设置的是0.9,所以本案例也采用的0.9,同时体验效果会更好。

4、滚动条位置导致的渐变,将150设置更大,渐变的距离会更长。

以上所述是小编给大家介绍的基于JS实现仿京东搜索栏随滑动透明度渐变效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS方法调用括号的问题探讨
Jan 24 Javascript
JavaScript控制按钮可用或不可用的方法
Apr 03 Javascript
jquery使整个div区域可以点击的方法
Jun 24 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
Sep 06 Javascript
Bootstrap源码学习笔记之bootstrap进度条
Dec 24 Javascript
VUE JS 使用组件实现双向绑定的示例代码
Jan 10 Javascript
微信小程序实现图片自适应(支持多图)
Jan 25 Javascript
基于JavaScript实现图片剪切效果
Mar 07 Javascript
Vue快速实现通用表单验证的示例代码
Jan 09 Javascript
js实现鼠标拖拽div左右滑动
Jan 15 Javascript
原生js实现日历效果
Mar 02 Javascript
vue脚手架项目创建步骤详解
Mar 02 Vue.js
jQuery实现QQ空间汉字转拼音功能示例
Jul 10 #jQuery
Underscore之Array_动力节点Java学院整理
Jul 10 #Javascript
Angular.js ng-file-upload结合springMVC的使用教程
Jul 10 #Javascript
underscore之Collections_动力节点Java学院整理
Jul 10 #Javascript
Angular.js组件之input mask对input输入进行格式化详解
Jul 10 #Javascript
underscore之Chaining_动力节点Java学院整理
Jul 10 #Javascript
Vue 2.0的数据依赖实现原理代码简析
Jul 10 #Javascript
You might like
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
PHP中的正则表达式函数介绍
2012/02/27 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
Yii2框架dropDownList下拉菜单用法实例分析
2016/07/18 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
Bootstrap 轮播(Carousel)插件
2016/12/26 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
Python实现破解猜数游戏算法示例
2017/09/25 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
python通过TimedRotatingFileHandler按时间切割日志
2019/07/17 Python
详解Python3 pickle模块用法
2019/09/16 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
详解Django配置JWT认证方式
2020/05/09 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
美容院考勤制度
2014/01/30 职场文书
活动总结怎么写
2014/04/28 职场文书
励志演讲稿800字
2014/08/21 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
欠款起诉书范文
2015/05/19 职场文书
交通事故赔偿起诉书
2015/05/20 职场文书
文书工作总结(范文)
2019/07/11 职场文书
JS + HTML 罗盘式时钟的实现
2021/05/21 Javascript
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis
win sever 2022如何占用操作主机角色
2022/06/25 Servers