better-scroll滚动插件

better-scroll技术总结 需要实现的功能: 1 从首页跳进列表页,传入index参数,nav要根据index值滚动到对应的dom位置 2 点击 nav => 触发点击的dom滚动到顶部,(每次点击nav,data和title都需要初始化滚动位置) 3 data数据更新,title数据更新 4 点击 title => title 可以横向滚动,data数据也要滚动到与title对应的数据位置 npm: n... 阅读详情

1 介绍

better scroll是一个用于滚动的第三方插件,主要用作移动端的页面滚动,具有基础滚动功能和下拉刷新、上拉加载和局部滚动等高级功能

1.1 安装

安装方式推荐直接npm安装,可以安装核心功能,其他功能作为插件安装,也可以选择全量安装

// 核心安装
npm install @better-scroll/core
// 全量安装
npm install better-scroll

1.2 引入

// 全量
import BetterScroll from 'better-scroll'

// 核心
import BScroll from '@better-scroll/core'
// or
var BScroll = require('@better-scroll/scroll')

1.3 使用

基本规则就是:wrapper中为需要滚动的页面,在BScroll的第一个参数中传递的就是该标签的引用,其下默认滚动第一个元素,也可以设置成其他元素。

基础滚动

import BScroll from '@better-scroll/core'
let bs = new BScroll('.wrapper', {
  // ...... 详见配置项
})

在vue中使用:

<template>
  <div class="core-specified-content-container">
    <div class="scroll-wrapper" ref="scroll">
      <div class="ignore-content">
        The Blue area is not taken as BetterScroll's content
      </div>
      <div class="scroll-content">
        <div class="scroll-item" v-for="n in nums" :key="n">{{n}}</div>
      </div>
    </div>
  </div>
</template>

在生命周期的mount中:

mounted:{
	init(){
		window.bs = this.bs = new BScroll(this.$refs.scroll, {
          specifiedIndexAsContent: 1,
          probeType: 3
        })
	}
}

必须保证包裹容器大小为固定:

.scroll-wrapper {
  height: 400px;
  overflow: hidden;
  border: 1px solid #42b983;
}

probeType设置3为一直监听滚动,包括惯性滑动;设置为2只在点击滑动时监听滚动,不包括惯性滑动。入参为窗口左上角坐标。滚动的时候相当于窗口从页面顶部往下走。
specifiedIndexAsContent为设置滚动元素,1表示内容中的第二个元素

注意:如果在滚动内容中存在默认无点击事件的标签,如div,如果给其绑定点击事件,则触发不了,需要将BScroll的属性:click:true这样设置才行

2 高级功能

2.1 上拉加载(触底加载)

该事件名称:pullingUp,触发:底部上拉距离超过阈值

  import BetterScroll from '@better-scroll/core'
  import Pullup from '@better-scroll/pull-up'

  BetterScroll.use(Pullup)
  const bs = new BetterScroll('.wrapper', { // 第一个参数可以是一个类或者是选择器document.querySelector(选择)
    pullUpLoad: true
  })

  bs.on('pullingUp', () => {
    await fetchData()
    bs.finishPullUp() // 该函数一调用就可以立即触发下一次,所以可以搞个延时setTimeout
  })

2.2 下拉加载(顶部刷新)

该事件名称:pullingDown,触发:顶部下拉距离超过阈值

  import BetterScroll from '@better-scroll/core'
  import Pulldown from '@better-scroll/pull-down'

  BetterScroll.use(Pulldown)
  const bs = new BetterScroll('.wrapper', {
    pullDownRefresh: true
  })

  bs.on('pullingDown', () => {
    await fetchData()
    bs.finishPullDown() // 该函数一调用就可以立即触发下一次,所以可以搞个延时setTimeout
  })

3 bug

3.1 滚动区域bug

在使用滚动组件时发现滚动区域未完全可滚动,滚动区域过小,原因是better scroll组件加载完成时会对目标子组件进行可滚动区域计算(保存在:scrollerHeight),当当前元素为完全加载时(存在异步请求),可滚动区域是小于真是可滚动区域的

解决办法:重新计算可滚动区域大小:调用better scroll组件的:refresh()方法

3.2 使用该滚动插件后sticky属性失效

由于插件是使用transform.translate方法来改变显示区域,所以,即使元素动态改成了fixed,依然不会固定住!
这里建议使用相同的两个组件,当原组件到达顶部位置,则显示出新的组件,该组件和原组件状态做好同步,并放置好位置。要注意的是,在vue中获取元素方法:this.$refs.xxx.$el。但是如果页面中有图片的话,由于图片是异步加载,所以可能此时获取到的高度是不准的,图片还没加载完成。

滚动插件【better-scroll】 使用better-scroll实现界面滚动效果 阅读详情

相关推荐

Better-Scroll移动端滚动插件

1. BetterScroll 是什么 BetterScroll 是一款重点解决移动端(已支持 PC)各种滚动场景需求的插件。 BetterScroll 的核心是借鉴的 iscroll 的实现,它的 API 设计基本兼容 iscroll,在 iscroll 的基础上又扩展了一些 feature 以及做了一些性能优化。 BetterScroll 是使用纯 JavaScript 实现的,这意味着它是无依赖的。 2. BetterScroll 的安装 npm 安装:npm install bet

weixin_44908855的博客 555

Vue 之 better-scroll 详解

观看更佳:传送门 better-scroll 是什么 better-scroll 是一款重点解决移动端(已支持 PC)各种滚动场景需求的插件。它的核心是借鉴的 iscroll 的实现,它的 API 设计基本兼容 iscroll,在 iscroll 的基础上又扩展了一些 feature 以及做了一些性能优化。 better-scroll 是基于原生 JS 实现的,不依赖任何框架。它编译后的代码大小是 63kb,压缩后是 35kb,gzip 后仅有 9kb,是一款非常轻量的 JS lib。 起步 学习使用.

wzg0817的博客 2万+

vue3 无限下拉滚动插件vue3-infinite-scroll-better 使用详解

支持Vue3的滚动加载插件,所有用法和vue-infinite-scroll一致。并解决了一些bug。

绝对零度的博客 5408

BetterScroll2.0:完美的移动端滚动组件

在日常开发中,触摸滑动成为移动应用程序中不可或缺的交互方式。为了提供流畅、自然和高效的滑动体验,许多开发者选择使用开源库来简化开发过程。其中,BetterScroll 因其强大的功能和灵活的定制能力而备受关注。本文将深入探讨 BetterScroll 的工作原理、功能特点以及如何将其应用于实际项目中。

流绪@微梦 5226

OpenVox 8FXO板卡驱动安装记录

OpenVox A800P和A1200P的板卡驱动安装及问题解决方法

clliu的专栏 2463

CVAT本地部署保姆级教程:用Docker Compose在Ubuntu上5分钟搞定你的私有数据标注平台

本文提供CVAT本地部署的保姆级教程,详细讲解如何在Ubuntu系统上使用Docker Compose快速搭建私有数据标注平台。从环境准备、Docker配置到CVAT部署全流程,涵盖硬件要求、性能优化及安全加固等关键步骤,帮助开发团队5分钟内完成高效、安全的标注环境搭建。

weixin_42619742的博客 383

betterScroll基本使用和封装

betterscroll基本用法,解决betterscroll无法滚动问题,给内部content元素高度添加监视器,正确获取content高度

m0_62421844的博客 3463

【网络原理】HTTP 请求 (Request)详解

【网络原理】HTTP 请求 (Request)详解,认识URLquery string关于 URL encode, GET方法,POST 方法,GET 和 POST 的区别,User-Agent (简称 UA),Referer,Cookie

ZXT的博客 1万+

在react中使用better-scroll滚动插件

在react中使用better-scroll滚动插件 最近公司使用react项目中有一些滚动的效果需要有一些插件来支持,比如iScroll,或者react-scroll,最后还是选择了better-scroll文档比较友好。 进入正题: 首先当然是npm安装啦 npm install better-scroll --save 安装完成后开始使用 首先在要用到的组件引入better-scroll ...

weixin_43623017的博客 2万+

【具身算法】VLA算法-Diffusion Policy

《扩散策略:多模态机器人控制的新方法》摘要 本文提出了一种基于扩散模型的机器人控制策略(DiffusionPolicy),用于解决视觉运动控制中的多模态行为、高维动作空间和训练稳定性问题。该方法利用去噪扩散概率模型(DDPM)生成动作序列,通过迭代优化处理复杂动作分布,显著提升了性能。实验表明,在15项机器人操作任务中,扩散策略平均性能提升46.9%,有效解决了传统显式/隐式策略的局限性。其核心优势在于:1)优雅建模多模态动作分布;2)适应高维动作空间;3)训练过程稳定。未来工作将探索与强化学习的结合及计算

puzhinan7781的博客 1390

机器学习势能(MLPs) 第一章 基础理论与核心概念 第二章 数据生成与训练集构建

密度泛函理论(DFT)作为现代计算材料科学的基石,通过求解Kohn-Sham方程在电子结构层面提供可靠的势能面信息。然而,其计算复杂度随体系电子数呈O(N3) 至O(N4) 增长,对于包含数百个原子的体系,单点计算往往需消耗数小时至数天的计算资源。这一瓶颈严重限制了分子动力学模拟的时间尺度,传统DFT-MD通常仅能覆盖皮秒量级,远不足以观测扩散、相变等慢动力学过程。经验力场通过解析函数形式描述原子间相互作用,实现了经典力学的计算效率,但其参数化过程高度依赖物理直觉与经验调参。

VectorShift的博客 182

前端滚动插件:better-scroll

better-scroll 是什么 better-scroll 是一款重点解决移动端(已支持 PC)各种滚动场景需求的插件。它的核心是借鉴的 iscroll 的实现,它的 API 设计基本兼容 iscroll,在 iscroll 的基础上又扩展了一些 feature 以及做了一些性能优化。 better-scroll 是基于原生 JS 实现的,不依赖任何框架。它编译后的代码大小是 63kb,压缩后...

WanFengZhou 1208

SAP Fiori 会话超时全解析:从 Launchpad 到 Identity Authentication 的统一策略

SAP Fiori会话超时机制解析与配置策略 本文深入探讨SAP Fiori项目中的会话超时机制,分析其对系统安全和用户体验的双重影响。文章系统拆解了SAP Fiori Launchpad与SAP Cloud Identity Services之间的会话超时工作原理,重点介绍了两种超时机制:服务器驱动的超时(通过SESSION_TIMEOUT_STOP_DATA_REFRESH参数控制)和UI驱动的超时(通过SESSION_TIMEOUT_INTERVAL_IN_MINUTES参数控制)。文中结合制造业产线

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 213

better-scroll 滚动插件better-scroll无法滚动

better-scroll 是一款重点解决移动端(已支持 PC)各种滚动场景需求的插件。它的核心是借鉴的 iscroll 的实现,它的 API 设计基本兼容 iscroll,在 iscroll 的基础上又扩展了一些 feature 以及做了一些性能优化。 项目中遇到了BScroll是使用了 better-scroll 插件。 遇到问题: 内容无法滚动 问题原因: 排查语法写的没问题,问题出在获取dom right-header-table 。 项目中存在多个重名right-header-table

u013017173的博客 494

DNA图谱分析:自动分析DNA图谱中的变异YOLOv5、YOLOv8、YOLOv10

YOLO(You Only Look Once)是一种基于卷积神经网络(CNN)的目标检测模型,因其高效的检测速度和优异的精度而广泛应用于计算机视觉任务。一次性检测:与传统的目标检测方法不同,YOLO通过回归方法同时预测多个边界框和类别信息,从而实现高效的目标检测。高精度与高速度:YOLO在检测精度和速度之间找到了平衡,适用于实时目标检测任务。

YOLO 730

零基础学习simulink-- 基于自适应模糊PID控制的直流电机速度控制系统

通过上述代码实现,您可以逐步创建和搭建一个基于自适应模糊PID控制的直流电机速度控制系统。该系统能够根据电机的状态和误差实时调整PID参数,确保电机速度稳定在设定范围内。自适应模糊PID控制具有较强的鲁棒性和适应性,能够在存在不确定性和扰动的情况下提供快速且精确的控制性能。Simulink提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。直流电机建模:建立直流电机的动态模型,包括电枢电压、电流、转速和负载扭矩。自适应模糊PID控制器设计。

amy_mhd的博客 413

滚动插件better-scroll

这几天学习vue看到一个不错的滚动插件better-scroll 可以达到手机原生滚动的效果 官网:http://ustbhuangyi.github.io/better-scroll/doc/ github:https://github.com/ustbhuangyi/better-scroll 安装命令: npm install better-scroll -S scrip...

Bright2017的博客 392

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

better-scroll移动端滚动插件的使用

今天分享一下better-scroll插件的使用 最近在做coderwhy老师的移动端商城项目,用到了better-scroll插件,下面介绍一下它的用法。 一、下载 可以去GitHub或者gitee上面搜索better-scroll进行下载 在vue项目中,可直接使用 npm install better-scroll 进行安装 js文件下载地址:https://unpkg.com/better-scroll@2.4.1/dist/better-scroll.js 二、滚动 2.1原生滚动 接下来介绍一下

XUMINGRUNDEJIE的博客 769

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

VUE 滚动插件(better-scroll)

1. 概述 1.1 说明 better-scroll是一款重点解决移动端(已支持PC)各种滚动场景需求的插件。例如淘宝聚划算中的类型选择(女装/家纺/生鲜美食等),没有滚动条显示却实现了滚动功能。 1.2 better-scroll安装   npm install better-scroll --save 安装至项目中 1.3 better-scroll使用   bette...

S_mile1992的博客 399

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

六、Vue中使用滚动插件:better-scroll

1.安装插件 cnpm install better-scroll --save 2.使用 (1)是元素符合规范   要想使用 better-scroll 这个插件,必须保证元素符合下列规则: <div class="wrapper"> <ul class="content"> <li>...</li> <li>.....

panchang199266的博客 1036

记vue中如何使用better-scroll滚动插件

这款插件是基于iscroll插件做的重新封装,改善了一些bug,增加了一些拓展功能,有兴趣的小伙伴们可以自行下载体验体验。 很多人已经用过 better-scroll,我收到反馈最多的问题是: better-scroll 初始化了, 但是没法滚动。 不能滚动是现象,我们得搞清楚这其中的根本原因。在这之前,我们先来看一下浏览器的滚动原理: 浏览器的滚动条大家都会遇到,当页面内容的高度超过视...

weixin_43330752的博客 915

Vue中Better-scroll滚动插件的基本使用

在移动端设计页面滚动时,往往希望它出现一定的效果,比如惯性滚动、弹簧效果等,那么原生的滚动就显得有些平淡了,这里推荐一下Better-scroll插件,它是在iscroll的基础上创新的,并且近期一直在更新,还是很适合使用的 一.那么接下来看一下它的基本使用: BScroll中,父容器中只能嵌套一个元素,通常我们会把这个父容器的类取名为wrapper,一个wrapper中只能包含一个元素,而包含的元素内部可以嵌套多个元素 父容器wrapper需要设置一定的高度,即height。此外通过overflow:h

weixin_42738354的博客 926

滚动条插件better-scroll(BScroll)的使用

移动端中滚动条插件better-scroll(BScroll)的使用 定义: better-scroll 是一款重点解决移动端(已支持 PC)各种滚动场景需求的插件。它的核心是借鉴的 iscroll 的实现,它的 API 设计基本兼容 iscroll,在 iscroll 的基础上又扩展了一些 feature 以及做了一些性能优化。 better-scroll 是基于原生 JS 实现的,不依赖任何框...

weixin_43799793的博客 5857

滚动条插件better-scroll的使用

它的核心是借鉴的 iscroll 的实现,它的 API 设计基本兼容 iscroll,在 iscroll 的基础上又扩展了一些 feature 以及做了一些性能优化。它编译后的代码大小是 63kb,压缩后是 35kb,gzip 后仅有 9kb,是一款非常轻量的 JS lib。better-scroll是基于父元素固定高度,溢出才滚动的,所以父元素务必定高,否则无法滚动。官网:http://ustbhuangyi.github.io/better-scroll/

m0_49515138的博客 798

iscroll自定义滚动库与better-scroll滚动插件

iScroll页面滚动、better-scroll滚动插件

努力、拼搏、奋进 1121

vue中的滚动条插件better-scroll

s 1、准备工作在项目中安装better-scroll:npm install --save better-scroll1组件中引入插件import BScroll from "better-scroll";12、开始使用插件dom结构&lt;div class="bscroll" ref="bscroll"&gt; &lt;div class="bscroll-container"&gt

。 5646
上一篇: 前后台联动实现网页点击文件下载功能
下一篇: Vue知识点
天落枫
博客等级 码龄10年 91粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值