废话不多说,直接上代码:
<强> 1,HTML 强>
& lt;头类="模块层"比; & lt; div类=癿odule-layer-content”比; & lt; div类=" search-box-cover "祝辞& lt;/div> & lt; p class=" layer-return”祝辞& lt;/p> & lt; h2类=發ayer-head-name”比; & lt; div类=肮厮阉骺颉北? & lt; img类=" shop-search " src=" https://www.yisu.com/zixun/images/search.png "/比; & lt;输入id=" shop-input " type=" text "占位符=八阉鞯昴谏唐? value="/比; & lt;/div> & lt;/h2> & lt; p class=" layer-share”祝辞& lt;/p> & lt;/div> & lt;/header>>之前其中search-box-cover就是控制透明度渐变的背景
<强> 2,css 强>
.module-layer { 宽度:100%; 位置:固定; 上图:0; 左:0; z - index: 100000; } .module-layer-content { 位置:相对; min-width: 320 px; max-width: 750 px; 宽度:100%; 保证金:0汽车; } .module-layer-bg { 宽度:100%; 高度:100%; 背景:# 000; 透明度:7; 位置:绝对的; 上图:0; 左:0; z - index: 1; } .layer-head-name { 高度:50 px; 行高:50 px; text-align:中心; 填充:0 50 px; 字体大小:20 px; } .layer-return。layer-share { 宽度:50 px; 高度:50 px; 行高:50 px; text-align:中心; 位置:绝对的; 上图:0; z - index: 1; } .layer-return { 左:0; } .layer-share { 右:0; } .pr { 位置:相对; } # shop-input: -webkit-input-placeholder { 颜色:# fff; } # shop-input: -moz-placeholder { 颜色:# fff; } # shop-input: -moz-placeholder { 颜色:# fff; } # shop-input: -ms-input-placeholder { 颜色:# fff; } # shop-input { 边界:没有; 大纲:没有; 背景:透明; } .search-box { 高度:30 px; border - radius: 20 px; 上图:10 px; 溢出:隐藏; z - index: 10; } .search-box:{后 内容:”; 显示:块; 宽度:100%; 高度:30 px; 背景:# fff; 透明度:5; 位置:绝对的; 上图:0; 左:0 px; z - index: 1; } # shop-input { 高度:28 px; 行高:28 px; 字体大小:16 px; 位置:绝对的; 上图:0; 左:30 px; }<强> 3,js 强>
$(函数(){ var身体=美元(身体的); var setCoverOpacity=function () { body.find美元(.search-box-cover) . css ({ 透明度:((($ body.scrollTop()/150)比;0.9)& # 63;0.9:body.scrollTop ()/150)) }) }//初始化设置背景透明度 setCoverOpacity ();//监听滚动条事件,改变透明度 $(窗口).scroll(函数(){ setCoverOpacity (); }); })最终效果:
((($ body.scrollTop()/150)比;0.9)& # 63;0.9:body.scrollTop ()/150))
此三目表达式是判断当前滚动条位置所在位置,如果位置值除以150大于0.9,就返回0.9,反之就返回那个小于等于0.9的值,将返回的值设置为背景的透明度就完成了。
2,由于滚动条的位置是动态获取的,所以设置透明度会不停改变,不用单独再做渐变的动画效果。
3,最终透明度问题,京东在最终背景设置的是0.9,所以本案例也采用的0.9,同时体验效果会更好。
4,滚动条位置导致的渐变,将150年设置更大,渐变的距离会更长。
以上所述是小编给大家介绍的基于JS实现仿京东搜索栏随滑动透明度渐变效果,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!