微笑小程序使用view-scroll下拉触底不执行

微笑小程序使用view-scroll下拉触底不执行,第1张

当viewscroll使用onReachBottom函数时,下拉触底如果不执行,可能是由于你的页面在滚动到底部之前一直处于快速滚动状态,它会导致小程序页面无法检测到触底函数。可以尝试让viewscroll慢慢地滚动,这样就能够触发onReachBottom函数。

在小程序中没有DOM *** 作的方法,所以获取不到相应的DOM节点进行高度设置。

解决方案

1css方案

<view class="{{isFold 'flod':'extend' }}" bindtap="flodFn">

我是一个很长的文字

</view>

flod{

//折叠样式

}

extend{

//展开样式

}

flodFn:function(){

thissetData({

isFold: !thisisFold

});

}

2动态渲染方案

<view bindtap="flodFn">

<view wx:if="{{isFold}}" >

我是一个很长的文字

</view>

<view wx:else>

我是一个很长的文字

</view>

</view>

flodFn:function(){

thissetData({

isFold: !thisisFold

});

}

高级

如果是列表,需要结合复杂数据处理,建议阅读

组件说明:

可滚动视图区域。

组件用法:

纵向滚动用法

Tip:

使用竖向滚动时,需要给一个固定高度,通过 WXSS 设置 height,否则无法滚动。

当滚动到顶部时会触发bindscrolltoupper事件(具体可留意GIF输出)

当滚动到底部时会触发bindscrolltolower事件(具体可留意GIF输出)

效果图:

wxml

<scroll-view scroll-y="true" style="height: 200px;" bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll" scroll-into-view="{{toView}}" scroll-top="{{scrollTop}}">

    <view id="green" class="scroll-view-item bc_green"></view>

    <view id="red"  class="scroll-view-item bc_red"></view>

    <view id="yellow" class="scroll-view-item bc_yellow"></view>

    <view id="blue" class="scroll-view-item bc_blue"></view>

</scroll-view>

<view class="btn-area">

      <button size="mini" bindtap="tap">click me to scroll into view </button>

      <button size="mini" bindtap="tapMove">click me to scroll</button>

</view>

js

var order = ['red', 'yellow', 'blue', 'green', 'red']

Page({

  data: {

    toView: 'green',

    scrollTop: 100,

    scrollLeft: 0

  },

  //滚动条滚到顶部的时候触发

  upper: function(e) {

    consolelog(e)

  },

  //滚动条滚到底部的时候触发

  lower: function(e) {

    consolelog(e)

  },

  //滚动条滚动后触发

  scroll: function(e) {

    consolelog(e)

  },

  //点击按钮切换到下一个view

  tap: function(e) {

    for (var i = 0; i < orderlength; ++i) {

      if (order[i] === thisdatatoView) {

        thissetData({

          toView: order[i + 1]

        })

        break

      }

    }

  },

  //通过设置滚动条位置实现画面滚动

  tapMove: function(e) {

    thissetData({

      scrollTop: thisdatascrollTop + 10

    })

  }

})

css

scroll-view_H{

  white-space: nowrap;

}

scroll-view-item{

  height: 200px;

}

scroll-view-item_H{

  display: inline-block;

  width: 100%;

  height: 200px;

}

横向滚动用法

Tip:

横向滚动无法使用scroll-into-view属性。

当滚动到最左边时会触发bindscrolltoupper事件(具体可留意GIF输出)

当滚动到最右边时会触发bindscrolltolower事件(具体可留意GIF输出)

效果图:

wxml

<scroll-view class="scroll-view_H" scroll-x="true" style="width: 100%"  bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll"  scroll-left="{{scrollLeft}}">

    <view id="green" class="scroll-view-item_H bc_green"></view>

    <view id="red"  class="scroll-view-item_H bc_red"></view>

    <view id="yellow" class="scroll-view-item_H bc_yellow"></view>

    <view id="blue" class="scroll-view-item_H bc_blue"></view>

</scroll-view>

js

var order = ['red', 'yellow', 'blue', 'green', 'red']

Page({

  data: {

    toView: 'green',

    scrollTop: 100,

    scrollLeft: 0

  },

  //滚动条滚到顶部的时候触发

  upper: function(e) {

    consolelog(e)

  },

  //滚动条滚到底部的时候触发

  lower: function(e) {

    consolelog(e)

  },

  //滚动条滚动后触发

  scroll: function(e) {

    consolelog(e)

  },

  //点击按钮切换到下一个view

  tap: function(e) {

    for (var i = 0; i < orderlength; ++i) {

      if (order[i] === thisdatatoView) {

        thissetData({

          toView: order[i + 1]

        })

        break

      }

    }

  },

  //通过设置滚动条位置实现画面滚动

  tapMove: function(e) {

    thissetData({

      scrollLeft: thisdatascrollLeft + 10

    })

  }

})

wxss

scroll-view_H{

  white-space: nowrap;

}

scroll-view-item{

  height: 200px;

}

scroll-view-item_H{

  display: inline-block;

  width: 100%;

  height: 200px;

}

主要属性:

属性类型默认值描述

scroll-xBooleanfalse允许横向滚动

scroll-yBooleanfalse允许纵向滚动

upper-thresholdNumber50距顶部/左边多远时(单位px),触发 scrolltoupper 事件

lower-thresholdNumber50距底部/右边多远时(单位px),触发 scrolltolower 事件

scroll-topNumber设置竖向滚动条位置

scroll-leftNumber设置横向滚动条位置

scroll-into-viewString值应为某子元素id,则滚动到该元素,元素顶部对齐滚动区域顶部

bindscrolltoupperEventHandle滚动到顶部/左边,会触发 scrolltoupper 事件

bindscrolltolowerEventHandle滚动到底部/右边,会触发 scrolltolower 事件

bindscrollEventHandle滚动时触发,eventdetail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY}

不能。

因为在页面onLoad里面设置定时器,超过多少时间webview的bindload没触发,销毁掉webview,控制显示优化显示的部分,所以微信小程序不可以监控webview链接的变化。

微信小程序是小程序的一种,是一种不需要下载安装即可使用的应用。

以上就是关于微笑小程序使用view-scroll下拉触底不执行全部的内容,包括:微笑小程序使用view-scroll下拉触底不执行、微信小程序 view的高度是被内容撑开的 怎么获取它的高度、微信小程序之scroll-view可滚动视图区域等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10162139.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存