JS实现导航栏的透明渐变

这次给大家带来JS实现导航栏的透明渐变,JS实现导航栏透明渐变的注意事项有哪些,下面就是实战案例,一起来看一下。

mui内置有H5版本的透明渐变导航控件,教程参考mui官网;透明渐变导航是一种解决滚动条通顶的变通方案,相比双webview,具有更高的性能和更好的动画效果;

下面通过本文给大家分享基于原生JS实现 MUI导航栏透明渐变效果,具体内容详情如下所示:

首先声明:由于backgroundColor的值采用的是RGBA,IE8及以下不支持,所以此效果不支持IE8及以下的浏览器

css代码

body,p,h1{margin: 0;}.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;  background-color: rgba(255, 0, 0, 0.9);}.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;}.fixed-layer{  height: 100%;  display: none;  z-index: 100001;}.relative-layer{height: 100%;}.layer-content{  padding:3%;  position: relative;  top: 20%;}.layer-close{  width: 2rem;  height: 2rem;  position: absolute;  top:3%;  right: 3%;}.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;}.shop-search {  width:16px;  height:16px;  position:absolute;  top:7px;  left:6px;}.layer-return{  background: url(images/return.png) no-repeat center center/12px 20px;}.layer-share{  background: url(images/share.png) no-repeat center center/20px 30px;}a { -webkit-tap-highlight-color: transparent; -webkit-touch-callout: none; -webkit-user-select: none;}.module-content{  min-width: 320px;  max-width: 750px;  width: 100%;  margin: 0 auto;  background: #fff;}.module-content p:first-child img{margin-top: 0;}.module-content p img{  display: block;  width: 100%;  margin-top: 10px;}

登录后复制

HTML代码

JS实现导航栏的透明渐变

JS实现导航栏的透明渐变

JS实现导航栏的透明渐变

JS实现导航栏的透明渐变

JS实现导航栏的透明渐变

JS实现导航栏的透明渐变

JS实现导航栏的透明渐变

JS实现导航栏的透明渐变

登录后复制

JS代码

(function(){  //获取滚动条当前位置  function getScrollTop(){     var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0;     if(document.body){       bodyScrollTop = document.body.scrollTop;     }     if(document.documentElement){       documentScrollTop = document.documentElement.scrollTop;     }     scrollTop = (bodyScrollTop - documentScrollTop > 0) ? bodyScrollTop : documentScrollTop;     return scrollTop;   }  //获取CSS样式  function getStyle(element, attr){    if(element.currentStyle){      return element.currentStyle[attr];    }else{      return window.getComputedStyle(element,null)[attr];    }  }  //获取原始backgroundColor值  var color = getStyle(document.getElementsByClassName('module-layer-content')[0],'backgroundColor');  //取到RGB  var colorRgb = color.substring(0,color.lastIndexOf(',') + 1);  //取到A  var colorA = color.substring(color.lastIndexOf(',') + 1,color.length - 1);  //对A判断,如果最终值小于0.9,直接设置为1  if(colorA  colorA) ? colorA : (getScrollTop() / 550)) + ')';  }  //初始化函数  setCoverOpacity();  //绑定滚动监听事件  window.addEventListener('scroll',setCoverOpacity,false);}())

登录后复制

注意:

不兼容IE8及以下的IE浏览器;

550是滚动条到达位置的最终透明度,此处根据需要自定义;

CSS终背景颜色的RGBA的A是最终透明度

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

mint-ui loadmore上拉加载与下拉刷新冲突处理方法

在ES6里模板字符串使用详解

以上就是JS实现导航栏的透明渐变的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2772152.html

(0)
上一篇 2025年3月8日 13:10:43
下一篇 2025年3月1日 17:52:36

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Vue.js移动端组件库使用方法

    这次给大家带来Vue.js移动端组件库使用方法,Vue.js移动端组件库使用的注意事项有哪些,下面就是实战案例,一起来看一下。 Mint UI 包含丰富的 css 和 JS 组件,能够满足日常的移动端开发需要。通过它,可以快速构建出风格统一…

    编程技术 2025年3月8日
    200
  • js字符串indexof与search使用时有什么区别

    这次给大家带来js字符串indexof与search使用时有什么区别,js字符串indexof与search使用的注意事项有哪些,下面就是实战案例,一起来看一下。 现js的使用中,很多人对于indexof方法以及search方法的区别都不是…

    编程技术 2025年3月8日
    200
  • JSONP的实现原理

    这次给大家带来JSONP的实现原理,使用JSONP的注意事项有哪些,下面就是实战案例,一起来看一下。 JSONP的实现原理 相信很多从事前后端分离的人对于JSONP也是经常接触的,不过很多新手对于JSONP,不知道怎么去实现以及它的实现原理…

    编程技术 2025年3月8日
    200
  • js中apply与call使用详解(附代码)

    这次给大家带来js中apply与call使用详解(附代码),js中apply与call使用的注意事项有哪些,下面就是实战案例,一起来看一下。 你可以直接看例子,也可以先读一下介绍: call和apply是为了动态改变this而出现的,当一个…

    编程技术 2025年3月8日
    200
  • js实现数字变化

    这次给大家带来js实现数字变化,js实现数字变化的注意事项有哪些,下面就是实战案例,一起来看一下。 $.fn.countTo = function (options) { options = options || {};//当options…

    编程技术 2025年3月8日
    200
  • js封装操作class步奏详解

    这次给大家带来js封装操作class步奏详解,js封装操作class的注意事项有哪些,下面就是实战案例,一起来看一下。 一、添加class function addClass(ele,cName) { var arr = ele.class…

    编程技术 2025年3月8日
    200
  • 怎么操作Node.js发送邮件

    这次给大家带来怎么操作Node.js发送邮件,操作Node.js发送邮件的注意事项有哪些,下面就是实战案例,一起来看一下。 var nodemailer = require(“nodemailer”);var mailTitle=’http…

    编程技术 2025年3月8日
    200
  • Two.js做出物体环绕动画

    这次给大家带来Two.js做出物体环绕动画,Two.js做出物体环绕动画的注意事项有哪些,下面就是实战案例,一起来看一下。 Two.js 是面向现代 Web 浏览器的一个二维绘图 API。Two.js 可以用于多个场合:SVG,Canvas…

    编程技术 2025年3月8日
    200
  • two.js怎样实现动画功能

    这次给大家带来two.js怎样实现动画功能,two.js实现动画功能的注意事项有哪些,下面就是实战案例,一起来看一下。 什么是two.js? Two.js 是面向现代 Web 浏览器的一个二维绘图 API。Two.js 可以用于多个场合:S…

    编程技术 2025年3月8日
    200
  • JS实现图片放大镜效果使用案例

    这次给大家带来JS实现图片放大镜效果使用案例,JS实现图片放大镜效果的注意事项有哪些,下面就是实战案例,一起来看一下。 前  言   我们大家经常逛各种电商类的网站,商品的细节就需要用到放大镜,这个大家一定不陌生,今天我们就做一个图片放大镜…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论