基于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的eval JSON object问题
Nov 15 Javascript
javascript深入理解js闭包
Jul 03 Javascript
如何解决Jquery库及其他库之间的$命名冲突
Sep 15 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
Feb 13 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
Apr 10 Javascript
关于JavaScript中的this指向问题总结篇
Jul 23 Javascript
Mongoose中document与object的区别示例详解
Sep 18 Javascript
详解vue中this.$emit()的返回值是什么
Apr 07 Javascript
解决vuex刷新状态初始化的方法实现
Aug 15 Javascript
JsonProperty 的使用方法详解
Oct 11 Javascript
vue自定义标签和单页面多路由的实现代码
May 03 Javascript
vue中如何添加百度统计代码
Dec 19 Vue.js
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中用hash实现的数组
2011/07/17 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
jQuery 定时局部刷新(setInterval)
2010/11/19 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
jQuery插件slick实现响应式移动端幻灯片图片切换特效
2015/04/12 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
2017/09/22 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
vue使用微信扫一扫功能的实现代码
2020/04/11 Javascript
vue+springboot+element+vue-resource实现文件上传教程
2020/10/21 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
2020/11/10 Javascript
Python中几个比较常见的名词解释
2015/07/04 Python
Python书单 不将就
2017/07/11 Python
Python Socket实现简单TCP Server/client功能示例
2017/08/05 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
python+selenium小米商城红米K40手机自动抢购的示例代码
2021/03/24 Python
《第一次抱母亲》教学反思
2014/04/16 职场文书
家长对孩子的评语
2014/04/18 职场文书
中秋晚会策划方案
2014/06/12 职场文书
2014年单位法制宣传日活动总结
2014/11/01 职场文书
Python深度学习之Pytorch初步使用
2021/05/20 Python
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技