微信小程序,仿微信,下拉显示小程序效果,非常丝滑

这篇具有很好参考价值的文章主要介绍了微信小程序,仿微信,下拉显示小程序效果,非常丝滑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微信小程序,仿微信,下拉显示小程序效果,非常丝滑,小程序,微信小程序,微信

1. 视图层

使用到了微信小程序的movable-view(可移动的视图容器)和movable-view的可移动区域。

微信小程序文档

<!--wxml-->
<view style="position: relative;" class="page-container">
  <view>
    二楼内容
  </view>
  <movable-area class="area-style">
    <movable-view disabled="{{disabled}}" bindchange="changeMove" bindtouchend="touchend" bindtouchstart="touchstart" y="{{y}}" class="view-style br" direction="vertical">
      一楼内容
    </movable-view>
  </movable-area>
</view>

3. css

注意:移动区域一定要大于可移动视图容器,否则将无法移动
我这里 .area-style设置200vh .view-style设置100vh
这里有个细节:
当移动区域到最下方时,继续往下滑动,移动区域将会回弹到顶部,
解决方法:
1.设置:移动区域高度 = 可移动区域高度 + 可移动返回高度,
2.通过js控制:在最低点下滑无效即可

/* wxss */
.page-container{
  height: 100vh;
  overflow: hidden;
  background-color: #aaa;
  text-align: center;
  font-size: 24px;
  font-weight: 500;
  padding-top: 20px;
}
.area-style {
  height: 200vh;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
}

.view-style {
  width: 100%;
  height: 100vh;
  background-color: #fafafa;
  text-align: center;
  font-size: 24px;
  font-weight: 500;
  padding-top: 20px;
}

5. js

通过js控制y值,进而实现下滑和上划动画打开/关闭效果。

注意:如果在一楼或者二楼使用到了scroll-view,那么需要在y=minY 或y=maxY的时候,动态控制scroll-view是否可滑动即可。

// ts
Page({

  /**
   * 页面的初始数据
   */
  data: {
    y: 0, // 一楼(可滑动块)距离顶部的距离
    minY: 0, // 一楼(可滑动块)距离顶部的最小距离
    maxY: 0,// 一楼(可滑动块)距离顶部的最大距离
    endY: 0,// 滑动结束是y的值
    startY: 0, // 滑动开始时y的值(要么等于minY,要么等于maxY)
    threshold: 100, // 滑动阀值(指 滑动超过此值一段距离,才会打开或者关闭,否则弹回原来的状态)
    disabled: false, // 是否禁止滑动
  },
  // 滑动过程中,把每次滑动的当前值,赋值给endY
  changeMove(e: any) {
    this.setData({
      endY: e.detail.y
    })
  },
  // 滑动结束
  touchend() {
    const { startY, endY, maxY, minY, threshold } = this.data
    let value;
    // 判断向下滑动
    if (endY > startY && endY - startY > threshold) {
      // 触发下滑,页面打开二楼
      value = maxY
      // 触发下滑成功,设置震动反馈
      wx.vibrateShort({ type: 'heavy' })
    } else {
      // 未触发下滑,页面回弹到一楼
      value = minY
    }
    // 判断上划
    if (startY > endY && startY - endY < threshold) {
      // 触发上滑,页面回到一楼
      value = maxY
    }
    this.setData({
      y: value
    })
  },
  // 滑动开始
  touchstart() {
    this.setData({
      startY: this.data.y
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad() {
    // 获取屏幕高度
    const res = await wx.getSystemInfo()
    // 设置最大顶部距离(-200,目的是让一楼漏出头,方便上划,或者点击)
    this.setData({
      maxY: res.screenHeight - 200
    })
  },
})

持续优化,欢迎一起讨论。文章来源地址https://www.toymoban.com/news/detail-612237.html

到了这里,关于微信小程序,仿微信,下拉显示小程序效果,非常丝滑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序做登录密码显示隐藏效果

     在编辑器和苹果手机上面显示就是正常的大小,在安卓手机上面黑点就非常大,需要单独调   安卓手机显示比较大  wxml 注意:在html中的input是通过切换type的属性值来实现隐藏显示的 在微信小程序的input里面type没有password属性 是通过password属性的true或者false来设置是否为密

    2024年02月12日
    浏览(42)
  • 微信小程序数字键盘(仿微信转账键盘)

    微信小程序 input 自带数字输入键盘,不过是直接调用的系统键盘,无法个性化。 代码中使用使用了 Vant Weapp Vant UI小程序版,这里就不介绍相关安装说明了,大家自行安装Vant Weapp。 json 用到的组件 wxml 结构 js 内容 wxss 样式

    2024年02月15日
    浏览(25)
  • 微信小程序做登录密码显示隐藏效果 并解决安卓手机端隐藏密码时小黑点显示过大问题

     在编辑器和苹果手机上面显示就是正常的大小,在安卓手机上面黑点就非常大,需要单独调   安卓手机显示比较大  wxml 注意:在html中的input是通过切换type的属性值来实现隐藏显示的 在微信小程序的input里面type没有password属性 是通过password属性的true或者false来设置是否为密

    2024年02月15日
    浏览(69)
  • 【微信小程序插件】下拉刷新、下拉加载

    今天在优化小程序的列表时候,想要把原生的 scroll-view 组件替换成一个下拉刷新的组件,然后就找了一下,果然有大神已经封装好。coolui-scroller 就是这样满足需求的一款插件,但是微信官网给出的描述以及安装引入的方式,会造成依赖安装失败,报错: 构建npm提示错误,未

    2024年02月08日
    浏览(70)
  • 微信小程序下拉选择

    微信小程序中下拉框选择一般的交互方式有以下两种 直接下拉选择 点击选择框后,弹出浮层进行选择 下边分别介绍两种方式的实现。在微信小程序中,这两种实现都需要修改三个文件 js 文件:下拉选择逻辑的具体实现 wxml 文件:下拉组件引入、定义 wxss 文件:下拉框样式设

    2024年02月16日
    浏览(34)
  • 微信小程序实现下拉筛选

    不多说直接上代码 1、WXML代码: 2、 WXSS代码: 3、JS代码:

    2024年02月16日
    浏览(39)
  • 微信小程序实现下拉刷新

    (1)把\\\"backgroundTextStyle\\\":“light\\\"改为\\\"backgroundTextStyle”:“dark” (2)添加\\\"enablePullDownRefresh\\\":true,开启下拉刷新。 1.在app.js中增加两个生命周期函数 1、首先在页面的json文件中添加设置:  “enablePullDownRefresh”: true  2、在js文件中写一个onRefresh()生命周期: 3、在onPullDownRefresh

    2024年02月13日
    浏览(29)
  • Android版仿微信朋友圈图片拖拽返回效果,漫谈MySQL权限安全

    图片控件效果 使用步骤: 1.activity主题设为透明 true 2.初始化 DragCloseHelper dragCloseHelper = new DragCloseHelper(this); 3.如果是共享元素启动的页面,需要如下设置(强烈建议和共享元素一起使用,否则是没有灵魂的) dragCloseHelper.setShareElementMode(true); 4.设置需要进行拖拽的View/ViewGroup,

    2024年04月15日
    浏览(28)
  • 【微信小程序】下拉刷新功能实现

    微信小程序开发系列 在开发微信小程序中经常会需要下拉页面进行更新要页面数据的功能,微信小程序提供了onPullDownRefresh函数。该函数作用是监听用户下拉动作。 监听用户下拉刷新事件。 需要在app.json的window选项中或页面配置中开启enablePullDownRefresh: 可以通过wx.startPullD

    2024年02月12日
    浏览(32)
  • uniapp微信小程序 --下拉菜单

    就是原生写这个本来就是一件很简单的事情,但是uniapp里面不支持selct,他封装了东西应该是,插件市场试了好几个也不太行。最后还是找到一个博主的写的很好,记录一下。 这是封装好的需要什么样式自己调整 使用 博主地址附上https://www.cnblogs.com/OrochiZ-/p/15910440.html

    2024年03月26日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包