智能小程序 Ray 开发实践——视图容器组件 ScrollView 介绍

本文详细介绍了Ray.js库中的ScrollView组件,包括其滚动方向控制、滚动条位置设置、自定义下拉刷新功能以及各种事件处理函数。提供了示例代码以展示如何在小程序中使用这些属性。
摘要由CSDN通过智能技术生成

ScrollView

滚动容器

导入

import { ScrollView } from '@ray-js/ray';

属性说明

属性类型默认值说明

支持

平台

scrollXbooleanfalse允许横向滚动涂鸦、微信
scrollYbooleanfalse允许纵向滚动涂鸦、微信
scrollTopnumber设置竖向滚动条位置涂鸦、微信
scrollLeftnumber设置横向滚动条位置涂鸦、微信
scrollWithAnimationboolean在设置滚动条位置时使用动画过渡涂鸦、微信
upperThresholdnumber50距顶部/左边多远时,触发 onScrollToUpper 事件涂鸦、微信
lowerThresholdnumber50距底部/右边多远时,触发 onScrollToLower 事件涂鸦、微信
refresherEnabledbooleanfalse开启自定义下拉刷新 @ray-js/ray>=0.9.3涂鸦、微信
refresherThresholdnumber45设置自定义下拉刷新阈值 @ray-js/ray>=0.9.3涂鸦、微信
refresherDefaultStylestring'black'设置自定义下拉刷新默认样式,支持设置 black、white、none, none 表示不使用默认样式 @ray-js/ray>=0.9.3涂鸦、微信
refresherBackgroundstring'#FFF'设置自定义下拉刷新区域背景颜色 @ray-js/ray>=0.9.3涂鸦、微信
refresherTriggeredbooleanfalse设置当前下拉刷新状态,true 表示下拉刷新已经被触发,false 表示下拉刷新未被触发 @ray-js/ray>=0.9.3涂鸦、微信
onRefresherpullingfunc(event: { type: 'refresherpulling'; origin: any })自定义下拉刷新控件被下拉时触发 @ray-js/ray>=0.9.3涂鸦、微信
onRefresherrefreshfunc(event: { type: 'refresherrefresh'; origin: any })自定义下拉刷新被触发时触发 @ray-js/ray>=0.9.3涂鸦、微信
onRefresherrestorefunc(event: { type: 'refresherrestore'; origin: any })自定义下拉刷新被复位时触发 @ray-js/ray>=0.9.3涂鸦、微信
onRefresherabortfunc(event: { type: 'refresherabort'; origin: any })自定义下拉刷新被中止时触发 @ray-js/ray>=0.9.3涂鸦、微信
onScrollToUpperfunc(event: { type: 'scrolltoupper'; direction: 'top' or'left'; origin: any })滚动到顶部/左边时触发涂鸦、微信
onScrollToLowerfunc(event: { type: 'scrolltolower'; direction: 'bottom' or 'right'; origin: any })滚动到底部/右边时触发涂鸦、微信
onScrollfunc(vent: { type: 'scroll'; scrollLeft: number; scrollTop: number; scrollHeight: number; scrollWidth: number; deltaX: number; deltaY: number; origin: any })滚动时触发涂鸦、微信

👉 立即免费领取开发资源,体验涂鸦 MiniApp 小程序开发。 

 

示例代码

HorizontalScroll
import React from 'react';
 
import { ScrollView, View } from '@ray-js/components';
 
function hls() {
  return Math.floor(Math.random() * 55) + 200;
}
 
function randomColor() {
  return `rgb(${hls()},${hls()},${hls()})`;
}
 
function onScroll(event: any, type: string) {
  console.log(event, type);
}
 
function onScrollToLower() {
  console.log('触【底】了');
}
 
function onScrollToUpper() {
  console.log('触【顶】了');
}
 
const itemStyle = {
  width: '200rpx',
  height: '667rpx',
  display: 'inline-block',
};
 
export default function HorizontalScroll() {
  return (
    <ScrollView
      style={{
        width: '702rpx',
        height: '667rpx',
        backgroundColor: '#fff',
        whiteSpace: 'nowrap',
      }}
      scrollX
      onScroll={(event) => onScroll(event, 'X')}
      onScrollToLower={onScrollToLower}
      onScrollToUpper={onScrollToUpper}
    >
      <View style={{ backgroundColor: randomColor(), ...itemStyle }} />
      <View style={{ backgroundColor: randomColor(), ...itemStyle }} />
      <View style={{ backgroundColor: randomColor(), ...itemStyle }} />
      <View style={{ backgroundColor: randomColor(), ...itemStyle }} />
      <View style={{ backgroundColor: randomColor(), ...itemStyle }} />
      <View style={{ backgroundColor: randomColor(), ...itemStyle }} />
      <View style={{ backgroundColor: randomColor(), ...itemStyle }} />
      <View style={{ backgroundColor: randomColor(), ...itemStyle }} />
      <View style={{ backgroundColor: randomColor(), ...itemStyle }} />
      <View style={{ backgroundColor: randomColor(), ...itemStyle }} />
      <View style={{ backgroundColor: randomColor(), ...itemStyle }} />
      <View style={{ backgroundColor: randomColor(), ...itemStyle }} />
    </ScrollView>
  );
}

VerticalScroll
import React from 'react';
 
import { ScrollView, View } from '@ray-js/components';
 
function hls() {
  return Math.floor(Math.random() * 55) + 200;
}
 
function randomColor() {
  return `rgb(${hls()},${hls()},${hls()})`;
}
 
function onScroll(event: any, type: string) {
  console.log(event, type);
}
 
function onScrollToLower() {
  console.log('触【底】了');
}
 
function onScrollToUpper() {
  console.log('触【顶】了');
}
 
export default function VerticalScroll() {
  return (
    <ScrollView
      style={{ width: '702rpx', height: '667rpx', backgroundColor: '#fff' }}
      scrollY
      scrollTop={100}
      onScroll={(event) => onScroll(event, 'Y')}
      onScrollToUpper={onScrollToUpper}
      onScrollToLower={onScrollToLower}
    >
      <View style={{ height: '200rpx', backgroundColor: randomColor() }} />
      <View style={{ height: '200rpx', backgroundColor: randomColor() }} />
      <View style={{ height: '200rpx', backgroundColor: randomColor() }} />
      <View style={{ height: '200rpx', backgroundColor: randomColor() }} />
      <View style={{ height: '200rpx', backgroundColor: randomColor() }} />
      <View style={{ height: '200rpx', backgroundColor: randomColor() }} />
      <View style={{ height: '200rpx', backgroundColor: randomColor() }} />
      <View style={{ height: '200rpx', backgroundColor: randomColor() }} />
      <View style={{ height: '200rpx', backgroundColor: randomColor() }} />
      <View style={{ height: '200rpx', backgroundColor: randomColor() }} />
      <View style={{ height: '200rpx', backgroundColor: randomColor() }} />
      <View style={{ height: '200rpx', backgroundColor: randomColor() }} />
    </ScrollView>
  );
}

👉 立即免费领取开发资源,体验涂鸦 MiniApp 小程序开发。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IoT砖家涂拉拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值