用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 教程 查看内容

微信小程序 - IOS 仿饿了么"我的",下拉橡皮筋效果

Rolan 2017-11-29 00:31

这个需求是在wepy交流群里有群友提到的. 一个小花样.注册mixins/** * IOS专用 顶部下拉橡皮筋效果 * 安卓的Page在到达顶部的时候,不能继续下拉...略过 * * 效果见 饿了么送餐服务 "我的" 页面 IOS环境 上下拖动 * ...

这个需求是在wepy交流群里有群友提到的. 一个小花样.

注册mixins

  1. /**
  2. * IOS专用 顶部下拉橡皮筋效果
  3. * 安卓的Page在到达顶部的时候,不能继续下拉...略过
  4. *
  5. * 效果见 饿了么送餐服务 "我的" 页面 IOS环境 上下拖动
  6. *
  7. * 下拉时, 顶部色块拉伸,上划时,顶部色块收缩.
  8. * wxml :
  9. <view style='background-color: #0000ff;min-height:50vh;z-index:-1;height:{{elastic_topHeight||50}}px;width:100%;position:fixed;top:{{elastic_top}}px;'></view>
  10. *
  11. */
  12. var obj = {
  13. onLoad(){
  14. /**获取当前是何种平台 */
  15. var SystemInfo = getApp().globalData.SystemInfo||{};
  16. this.__IS_IOS = SystemInfo.system && SystemInfo.system.toLowerCase().indexOf("ios")>=0;
  17. },
  18. onPageScroll(e) {
  19. //非ios 略过效果
  20. if (!this.__IS_IOS)return;
  21. // console.log(e)
  22. var top = e.scrollTop;
  23. if (top > 0) { //上划时, 整个view上移 , 避免因为持续上划,看到 后面的view
  24. this.setData({
  25. elastic_top: -top
  26. });
  27. return;
  28. }
  29. this.setData({ //动态设置 高度
  30. elastic_topHeight: Math.abs(top * 2)+50
  31. });
  32. }
  33. };
  34. module.exports= obj;

wxml很简单.在你的最外层增加

  1. <view style='background-color: #0000ff;min-height:50vh;z-index:-1;height:{{elastic_topHeight||50}}px;width:100%;position:fixed;top:{{elastic_top}}px;'></view>

style中颜色自定义,其他根据需要来

注意,他上拉的时候,背景色还是白色,和顶部颜色并不一样.

这种方式实现,要求你的 顶级view要有一个背景色,否则这个橡皮筋效果就会暴露出来

鲜花
鲜花 (1)
鸡蛋
鸡蛋

刚表态过的朋友 (1 人)

分享至 : QQ空间
收藏
原作者: jifsu 来自: cnblogs

相关阅读

  • Rolan 2017-11-29 11:05
    x837195936: 要做到这个效果还需要两点: 1、关闭页面自身的下拉刷新enablePullDownRefresh. 2、阻止页面的整体上下左右滑动 disableScroll ...
    厉害了
  • x837195936 2017-11-29 09:42
    要做到这个效果还需要两点:
    1、关闭页面自身的下拉刷新enablePullDownRefresh.
    2、阻止页面的整体上下左右滑动 disableScroll