基于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 相关文章推荐
Javascript 中介者模式实例
Dec 16 Javascript
js 创建快捷方式的代码(fso)
Nov 19 Javascript
Jquery知识点一 Jquery的ready和Dom的onload的区别
Jan 15 Javascript
利用javascript数组长度循环数组内所有元素
Dec 27 Javascript
javascript中的throttle和debounce浅析
Jun 06 Javascript
jQuery对象初始化的传参方式
Feb 26 Javascript
jQuery中(function($){})(jQuery)详解
Jul 15 Javascript
快速解决处理后台返回json数据格式的问题
Aug 07 Javascript
Vue 实现分页与输入框关键字筛选功能
Jan 02 Javascript
详解vue或uni-app的跨域问题解决方案
Feb 21 Javascript
Jquery 获取相同NAME 或者id删除行操作
Aug 24 jQuery
Vue时间轴 vue-light-timeline的用法说明
Oct 29 Javascript
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
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
Ext JS 4官方文档之三 -- 类体系概述与实践
2012/12/16 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
js实现自定义路由
2017/02/04 Javascript
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
2018/11/26 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
JavaScript队列结构Queue实现过程解析
2020/03/07 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
详解python并发获取snmp信息及性能测试
2017/03/27 Python
Python多重继承的方法解析执行顺序实例分析
2018/05/26 Python
pandas删除指定行详解
2019/04/04 Python
python for循环remove同一个list过程解析
2019/08/14 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
Python enumerate() 函数如何实现索引功能
2020/06/29 Python
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
资产评估专业学生的自我鉴定
2013/11/14 职场文书
买房子个人收入证明
2014/01/16 职场文书
幼儿园教师国培感言
2014/02/02 职场文书
教师评语大全
2014/04/28 职场文书
教师学习八项规定六项禁令思想汇报
2014/09/27 职场文书
团代会邀请函
2015/02/02 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫