基于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中的私有成员
Sep 18 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
Nov 12 Javascript
js内存泄露的几种情况详细探讨
May 31 Javascript
js 调用父窗口的具体实现代码
Jul 15 Javascript
jquery中post方法用法实例
Oct 21 Javascript
2014年最火的Node.JS后端框架推荐
Oct 27 Javascript
jQuery选择器全集详解
Nov 24 Javascript
js实现左侧网页tab滑动门效果代码
Sep 06 Javascript
vue实现文件上传功能
Aug 13 Javascript
vue项目中使用Svg的方法
Oct 24 Javascript
vue项目中常见问题及解决方案(推荐)
Oct 21 Javascript
JavaScript数组及常见操作方法小结
Nov 13 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
基于mysql的论坛(5)
2006/10/09 PHP
利用PHP实现智能文件类型检测的实现代码
2011/08/02 PHP
PHP模板解析类实例
2015/07/09 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
javascript的渐进增强与平稳退化浅谈
2013/11/12 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
jQuery图片渐变特效的简单实现
2016/06/25 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
JS中超越现实的匿名函数用法实例分析
2019/06/21 Javascript
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
python 识别图片中的文字信息方法
2018/05/10 Python
python实现屏保计时器的示例代码
2018/08/08 Python
Python wxPython库Core组件BoxSizer用法示例
2018/09/03 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
pytorch的batch normalize使用详解
2020/01/15 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
Python把图片转化为pdf代码实例
2020/07/28 Python
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
会计电算化专业个人的自我评价
2013/11/24 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
一位农村小子的自荐信
2014/04/07 职场文书
初中班级口号
2014/06/09 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js