基于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 相关文章推荐
jQuery删除一个元素后淡出效果展示删除过程的方法
Mar 18 Javascript
jQuery拖拽插件gridster使用指南
Apr 21 Javascript
JQuery中DOM加载与事件执行实例分析
Jun 13 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
Jun 19 Javascript
简单解析JavaScript中的__proto__属性
May 10 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
Jan 19 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
Apr 13 Javascript
vue.js实现备忘录功能的方法
Jul 10 Javascript
vuex操作state对象的实例代码
Apr 25 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
May 16 Javascript
VUE前后端学习tab写法实例
Aug 06 Javascript
JavaScript使用表单元素验证表单的示例代码
Aug 20 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自动加载方式集合
2016/04/04 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
Javascript中的数学函数
2007/04/04 Javascript
CCPry JS类库 代码
2009/10/30 Javascript
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
Javascript中Promise的四种常用方法总结
2017/07/14 Javascript
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
vue表单数据交互提交演示教程
2019/11/13 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
零基础写python爬虫之爬虫编写全记录
2014/11/06 Python
python paramiko模块学习分享
2017/08/23 Python
Python从零开始创建区块链
2018/03/06 Python
详解Python if-elif-else知识点
2018/06/11 Python
Python Pandas实现数据分组求平均值并填充nan的示例
2019/07/04 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
浅析python,PyCharm,Anaconda三者之间的关系
2019/11/27 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
公司清洁工岗位职责
2013/12/14 职场文书
大型会议接待方案
2014/03/01 职场文书
就业意向协议书
2015/01/29 职场文书
统计员岗位职责
2015/02/11 职场文书
redis哨兵常用命令和监控示例详解
2021/05/27 Redis
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis