基于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 15 Javascript
JS 有趣的eval优化输入验证实例代码
Sep 22 Javascript
jQuery异步获取json数据方法汇总
Dec 22 Javascript
JQuery鼠标移到小图显示大图效果的方法
Jun 10 Javascript
js实现瀑布流的三种方式比较
Jun 28 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
May 09 Javascript
动态加载js、css的实例代码
May 26 Javascript
原生js三级联动的简单实现代码
Jun 07 Javascript
javascript 数组的定义和数组的长度
Jun 07 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
Dec 16 Javascript
简单谈谈关于 npm 5.0 的新坑
Jun 08 Javascript
详细分析单线程JS执行问题
Nov 22 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面试题附答案
2009/01/07 PHP
php 404错误页面实现代码
2009/06/22 PHP
php 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
php中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
2016/04/23 PHP
php生成与读取excel文件
2016/10/14 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
2017/05/03 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
JS版元素周期表实现方法
2015/08/05 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
python实现文件分组复制到不同目录的例子
2014/06/04 Python
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
分享Python文本生成二维码实例
2016/01/06 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
python把转列表为集合的方法
2019/06/28 Python
Python中生成ndarray实例讲解
2021/02/22 Python
酒店服务与管理毕业生求职信
2013/11/02 职场文书
学生拾金不昧表扬信
2014/01/21 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
解除劳动合同协议书
2014/04/14 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书