# 沉浸式加下拉渐变效果
如图所示,我们要实现下拉后顶部沉浸式效果+头部渐变效果,怎么做?
![mark](http://qiniu.newthink.cc/blog/180730/K431I8hgI7.gif)
# 思路:
一:frame组区域为设置
二:每一个页面加一个状况`header`
三:JS增加window监听下划效果
四:CSS增加渐变效果
# 代码
## 一:frame组区域设置
>原理:
1、总的初始把头部隐藏,frame把高度去掉
2、重置第一个区域
3、点击第二个区域显示头部,重置高度
4、第三个高度和第二个区域的高度是一样的
```
//打开frame组
api.openFrameGroup({
name: 'meunFrame',
scrollEnabled: false,
vScrollBarEnabled : false,
hScrollBarEnabled : false,
rect: {
x: 0,
y: 0,
w: 'auto',
h: api.winHeight - $api.byId('footer').offsetHeight
},
index: 0,
frames: [{
name: 'index',
url: './index/index.html'
// ,bounces: true
}, {
name: 'trip',
url: './trip/index.html',
//bounces: true
}, {
name: 'my',
url: './my/index.html',
}]
}, function (ret, err) {
if (ret) {
var index = ret.index; //索引值
switch (index) {
case 0:
$api.text($api.byId('header'), '首页');
api.setFrameGroupAttr({
name: 'meunFrame',
rect: {
x: 0,
y: 0,
w: 'auto',
h: api.winHeight - $api.byId('footer').offsetHeight
}
});
break;
case 1:
$api.text($api.byId('header'), '行程');
$("#header").removeClass("aui-hide");
var headerPos = $api.offset(header);
api.setFrameGroupAttr({
name: 'meunFrame',
rect: {
x: 0,
y: headerPos.h,
w: 'auto',
h: api.winHeight - $api.byId('footer').offsetHeight - $api.byId('header').offsetHeight
}
});
break;
case 2:
$api.html($api.byId('header'), ' <div class="aui-title">我的</div><div class="aui-pull-right aui-btn"><span class="icon iconfont icon-kefu" onclick="Service_tel()"></span></div>');
$("#header").removeClass("aui-hide");
var headerPos = $api.offset(header);
api.setFrameGroupAttr({
name: 'meunFrame',
rect: {
x: 0,
y: headerPos.h,
w: 'auto',
h: api.winHeight - $api.byId('footer').offsetHeight - $api.byId('header').offsetHeight
}
});
break;
}
} else {
alert(JSON.stringify(err));
}
});
```
## 二:在首页加一个`header`
```
<header class="aui-bar aui-bar-nav">
888
</header>
```
## 三:JS增加window监听下划效果
> 注:需要 `statusBar` 模块儿
```
apiready = function() {
//沉浸式状态栏
var systemType = api.systemType;
var statusBar = api.require('statusBar');
if (systemType == "ios") {
if (navigator.userAgent.indexOf("iPhone") != -1) {
statusHeight = 20;
$("header").css({
"paddingTop": "20px"
});
} else if (navigator.userAgent.indexOf("iPad") != -1) {
//不处理沉浸式
}
} else {
statusBar.getStatusBarHeight(function(ret, err) {
$("header").css({
"paddingTop": ret.statusHeight
});
});
}
}
//滚动头部样式
window.addEventListener("scroll", function(e) {
var t = document.documentElement.scrollTop || document.body.scrollTop;
if (t > 100) {
$(".aui-bar-nav").removeClass("test1");
$(".aui-bar-nav").addClass("test");
} else {
$(".aui-bar-nav").removeClass("test");
$(".aui-bar-nav").addClass("test1");
}
});
```
## 四:CSS增加渐变效果
```
//不透明
.test {
background: rgba(44, 215, 222, 1) !important;
transition: all 1s;
-moz-transition: all 1s;
-webkit-transition: all 1s;
-o-transition: all 1s;
}
//透明
.test1 {
background: rgba(44, 215, 222, 0) !important;
transition: all 1s;
-moz-transition: all 1s;
-webkit-transition: all 1s;
-o-transition: all 1s;
}
//固定
.aui-bar-nav {
position: fixed !important;
top: 0;
left: 0;
background: rgba(0, 0, 0, 0);
z-index: 9999;
}
```
- 模块儿
- 极光推送
- 推送模块(客户端)
- 推送模块(服务器端)
- 苹果推送p12证书
- 检测推送是否开启
- 支付模块
- 微信支付--wxPay(客户端)
- 微信支付--wxPay(服务端)
- 支付宝支付--aliPay(客户端)
- 支付宝支付--aliPay(服务端)
- DoT模板
- 缓存模块儿
- 监听模块儿
- 设置状态栏字体颜色
- 选择城市插件
- 语音识别模块儿
- 分享
- 百度定位bMap
- 第三方登录
- QQ网站和appQQ账号统一
- 微信登录
- QQ登录
- 微博登录
- 上传图片模块
- GIT使用
- GITHUB使用
- 码云使用-公开
- 码云使用-私密
- 文档
- 关于ios数字自动识别成手机号
- 点击弹出放大图片层
- 跨win或frm执行脚本
- 上拉加载下拉刷新模块
- 安卓包名和签名怎么获取
- 文件和图片缓存机制分享
- 注册登录忘记密码
- tabBarMenu底部导航
- 跨页面执行方法
- 安卓点击返回事件
- 图片缓存
- 魅族手机apiready问题
- 沉浸式加下拉渐变效果
- 调试
- apicloud在chrome下进行手机上调试
- 手机点击PHPSTORM调试
- 报错处理
- 调试方法
- 更新
- 云修复(不建议使用)
- 版本更新
- 上传报错汇总
- IDE
- webstorm
- atom
- atom插件使用
- 插件列表
- 块儿状注释
- 列选择sublime-style-column-selection
- 标题注释docblockr
- JS压缩神器atom-minify
- 常用快捷键汇总
- 手机兼容性
- iPhone X 适配
- 加密
- 国际化
- 上传
- 签名
- 报错
- 数据类型错误