基于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导出table到excel同时兼容FF和IE示例
Sep 03 Javascript
ActiveX控件与Javascript之间的交互示例
Jun 04 Javascript
jQuery焦点图轮播特效代码分享(3款)
Sep 05 Javascript
浅析javaScript中的浅拷贝和深拷贝
Feb 15 Javascript
详解VueJs前后端分离跨域问题
May 24 Javascript
3种vue路由传参的基本模式
Feb 22 Javascript
vue微信分享到朋友圈 vue微信发送给好友
Nov 28 Javascript
JavaScript中的&quot;=、==、===&quot;区别讲解
Jan 22 Javascript
详解VS Code使用之Vue工程配置format代码格式化
Mar 20 Javascript
微信小程序wx.request拦截器使用详解
Jul 09 Javascript
JS document内容及样式操作完整示例
Jan 14 Javascript
JavaScript判断数据类型有几种方法及区别介绍
Sep 02 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
php写的带缓存数据功能的mysqli类
2012/09/06 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
基于mootools插件实现遮罩层新手引导
2012/05/24 Javascript
javascript动态加载三
2012/08/22 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
阿里云ecs服务器中安装部署node.js的步骤
2016/10/08 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
在Python中定义和使用抽象类的方法
2016/06/30 Python
代码分析Python地图坐标转换
2018/02/08 Python
Python3实现购物车功能
2018/04/18 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
2018/08/22 Python
python如何读取bin文件并下发串口
2019/07/05 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
2020/10/21 Python
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
String s = new String(“xyz”);创建了几个String Object?
2015/08/05 面试题
银行开业庆典方案
2014/02/06 职场文书
2014春晚主持词
2014/03/25 职场文书
司法所长先进事迹
2014/06/02 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
先进教师事迹材料
2014/12/16 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
教你怎么用python实现字符串转日期
2021/05/24 Python
MySQL的安装与配置详细教程
2021/06/26 MySQL
代码复现python目标检测yolo3详解预测
2022/05/06 Python