基于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编程语言的编码规范
Oct 21 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
Apr 08 Javascript
JS中如何设置readOnly的值
Dec 25 Javascript
JS检测输入字符是否包含非法字符的示例代码
Feb 11 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
Sep 05 Javascript
JavaScript实现的经典文件树菜单效果
Sep 08 Javascript
JavaScript基础知识及常用方法总结
Jan 10 Javascript
Bootstrap入门书籍之(三)栅格系统
Feb 17 Javascript
js获取所有checkbox的值的简单实例
May 30 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
Oct 15 jQuery
js中的数组对象排序分析
Dec 11 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
Apr 08 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开发中常用的字符串操作函数
2011/02/08 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
Js 时间间隔计算的函数(间隔天数)
2011/11/15 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
详解开源的JavaScript插件化框架MinimaJS
2017/10/26 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
使用VScode 插件debugger for chrome 调试react源码的方法
2019/09/13 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
Python脚本处理空格的方法
2016/08/08 Python
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
python3+PyQt5实现文档打印功能
2018/04/24 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
python学习--使用QQ邮箱发送邮件代码实例
2019/04/16 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
Python while true实现爬虫定时任务
2020/06/08 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
shell程序中如何注释
2012/02/17 面试题
总监职责范文
2013/11/09 职场文书
揭牌仪式主持词
2014/03/19 职场文书
六年级学生评语
2014/04/22 职场文书
培训科主任岗位职责
2014/08/08 职场文书
奖励通知
2015/04/22 职场文书
对学校的意见和建议
2015/06/04 职场文书
素质教育学习心得体会
2016/01/19 职场文书
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android