html scroll无效,解决better-scroll滚动无效问题

昨天在写一个移动端的横向滚动,引入 cube-ui 的 cube-scroll,硬是不出来效果,后来还是自己的 CSS 有问题。要想引入得经过以下几个步骤:

一、安装 cube-ui

npm install cube-ui --save

修改 package.json 并安装依赖:

...

"scripts": {

"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",

"start": "npm run dev",

"lint": "eslint --ext .js,.vue src",

"build": "node build/build.js"

},

"transformModules": {

"cube-ui": {

"transform": "cube-ui/lib/${member}",

"kebabCase": true,

"style": {

"ignore": [

"create-api",

"better-scroll",

"locale"

]

}

}

},

"dependencies": {

"cube-ui": "^1.12.5",

"vue": "^2.5.2",

"vue-router": "^3.0.1"

},

...

//还有 "devDependencies": {

"webpack-transform-modules-plugin": "^0.3.5"

}

添加 webpack.base.conf.js 配置:

//引入模块 const TransformModulesPlugin = require('webpack-transform-modules-plugin')

resolve: {

extensions: ['.js', '.vue', '.json'],

alias: {

'vue$': 'vue/dist/vue.esm.js',

'@': resolve('src'),

'common': resolve('src/common'),

'components': resolve('src/components'),

'api': resolve('src/api'),

'base': resolve('src/base'),

'cube-ui': 'cube-ui/lib'

}

},

plugins: [

// ... new TransformModulesPlugin()

],

在 index.js 中引入使用:

import Vue from 'vue'

import Cube from 'cube-ui'

Vue.use(Cube)

二、HTML 代码

ref="scroll" class="horizontal-scroll-list-wrap">

// 只显示5条

class="list-item" :key="index">

direction="horizontal",意思是指定横向滚动。

三、CSS 代码至关重要

导致不滑动一般不是 js 的问题,因为 js 是人家写好的,要考虑的是自己的样式布局是不是影响到了横向滚动,而我自己的就是这个问题。

cube-ui 文档上也强调:

2)横向滚动:内容元素的宽度必须大于容器元素。由于在默认情况下,子元素的宽度不会超过容器元素,所以需要给 Scroll 组件的 .cube-scroll-content 元素设置大于 .cube-scroll-wrapper 的宽度。

注意:任何时候如果出现无法滚动的情况,都应该首先查看内容元素.cube-scroll-content 的元素高度/宽度是否大于容器元素.cube-scroll-wrapper 的高度/宽度。这是内容能够滚动的前提条件。如果内容存在图片的情况,可能会出现 DOM 元素渲染时图片还未下载,因此内容元素的高度小于预期,出现滚动不正常的情况。此时你应该在图片加载完成后,比如 onload 事件回调中,手动调用 Scroll 组件的 refresh() 方法,它会重新计算滚动距离。 Scroll 相关常见问题可以查看 Cube-UI/Question-Answer.

.horizontal-scroll-list-wrap

display flex

align-items: center

.list-wrapper

display flex

justify-content center

.list-item

display inline-block

padding 0 10px 10px 0

.icon

img

border-radius 5px

.title

font-size 12px

这些 CSS 样式一个不能少!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\],BetterScroll是一款解决移动端各种滚动场景需求的插件,它的核心是基于iscroll实现的,并在此基础上进行了一些扩展和性能优化。它是使用纯JavaScript实现的,无依赖关系。 根据引用\[2\],在使用BetterScroll进行横向滚动时,需要传递一些特定的配置属性,例如设置scrollX为true来启用横向滚动。 根据引用\[3\],在使用BetterScroll时,有时候会遇到高度问题,只有当内部元素的高度超过了包装容器的高度时才能进行滚动。在这种情况下,可以使用nextTick方法来确保在渲染完成后再初始化滚动。 如果你遇到了无法滚动问题,并且nextTick方法无效,可能有以下几个原因: 1. 检查是否正确传递了滚动容器的引用和配置属性。确保传递给BetterScroll的参数正确无误。 2. 检查滚动容器的高度是否正确设置。如果内部元素的高度没有超过容器的高度,滚动将不会生效。 3. 确保在调用nextTick方法之前,DOM元素已经被正确渲染。如果DOM元素还没有被渲染,nextTick方法可能无效。可以尝试在mounted生命周期钩子函数中使用nextTick方法。 如果以上方法仍然无效,可能需要进一步检查代码逻辑或查看BetterScroll的文档和示例,以确定问题的具体原因。 #### 引用[.reference_title] - *1* [vue中的滚动效果: better-scroll](https://blog.csdn.net/zqlbanzhuan/article/details/127689909)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [better-scorll 横向滚动无效](https://blog.csdn.net/robot7th/article/details/92399212)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值