基于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控制div及网页相关属性的代码
Dec 19 Javascript
Jquery图片滚动与幻灯片的实例代码
Apr 08 Javascript
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
Jul 31 Javascript
dedecms页面如何获取会员状态的实例代码
Mar 15 Javascript
jQuery在header中设置请求信息的方法
Mar 06 Javascript
JavaScript之class继承_动力节点Java学院整理
Jul 03 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
Aug 17 Javascript
详解微信JS-SDK选择图片遇到的坑
Aug 15 Javascript
深入解析koa之异步回调处理
Jun 17 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
Aug 21 Javascript
JS面向对象之单选框实现
Jan 17 Javascript
微信浏览器左上角返回按钮监听的实现
Mar 04 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
用Socket发送电子邮件
2006/10/09 PHP
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
一个php导出oracle库的php代码
2009/04/20 PHP
php实现上传图片文件代码
2015/07/19 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
javascript 写类方式之七
2009/07/05 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
jquery实现倒计时效果
2015/12/14 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
python实现文本去重且不打乱原本顺序
2016/01/26 Python
Python高级用法总结
2018/05/26 Python
Python函数返回不定数量的值方法
2019/01/22 Python
Python小进度条显示代码
2019/03/05 Python
python里运用私有属性和方法总结
2019/07/08 Python
Python 读取位于包中的数据文件
2020/08/07 Python
Python -m参数原理及使用方法解析
2020/08/21 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
2020/07/20 HTML / CSS
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
.NET现在共支持多少种语言
2014/02/26 面试题
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python