vue滚动条下拉翻页(Vue中利用better-scroll组件实现横向滚动功能)
类别:编程学习 浏览量:2716
时间:2022-01-17 01:35:51 vue滚动条下拉翻页
Vue中利用better-scroll组件实现横向滚动功能About
最近在学习vue的过程中,仿照去哪儿网的移动端写了个小项目,旨在实践和巩固基础知识,但是今天发现去哪儿的首页上有一个组件用户体验较差,即一个横向列表使用浏览器的原生滚动实现,列表滚动起来较为生涩,很难受,于是乎决定由better-scroll重写这个组件。
better-scroll介绍
better-scroll是黄轶大神(没错,我学长)写的基于i-scroll的一个滚动组件,项目地址:https://github.com/ustbhuangyi/better-scroll
一、滚动的实现原理
better-scroll的滚动原理和浏览器原生滚动原理是一样的,当子盒子的高度大于父盒子的高度,就会出现纵向滚动:
同理,如果子盒子的宽度大于父盒子的宽度,那么就会出现横向滚动 ( 根本原理 )。
二、在Vue中使用better-scroll
在Vue中使用better-scroll最需要注意的点就是必须等到页面渲染完成再去执行BScroll的实例化,因为better-scroll必须要得到滚动区域的尺寸和父盒子的尺寸,来计算出是否能滚动,所以我们必须要对Vue的生命周期有一定的了解。
这里是一个小demo,通过这个demo你将会了解到如何使用better-scroll
<template> <li class="wrapper" ref="wrapper"> // 在vue中获取dom元素最简便的方法就是利用 this.$refs <ul class="content"> <li>...</li> <li>...</li> ... </ul> </li> </template> <script> import BScroll from 'better-scroll' //导入better-scroll export default { mounted() { this.$nextTick(() => { // 使用 this.$nextTick 为了确保组件已经渲染完毕 this.scroll = new Bscroll(this.$refs.wrapper, {}) // 实例化BScroll接受两个参数,第一个为父盒子的dom节点 }) } } </script>
三、在Vue中实现横向滚动
1. 效果图对比
使用原生滚动:
使用better-scroll:
2. 代码(请看注释)
<template> <li class="recommand-wrap"> <li class="title"> <img class="title-img" src="https://imgs.qunarzz.com/piao/fusion/1711/16/bfbb9874e8f11402.jpg" alt="vue滚动条下拉翻页(Vue中利用better-scroll组件实现横向滚动功能)" border="0" />
参考链接
作者:黄轶
链接:https://zhuanlan.zhihu.com/p/27407024
总结
到此这篇关于Vue中利用better-scroll组件实现横向滚动的文章就介绍到这了,更多相关Vue better-scroll横向滚动内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- vue定时器中间变颜色(Vue如何优雅的清除定时器)
- vue购物车怎么实现(Vue.js框架实现购物车功能)
- vue如何检查数组变化(Vue2中无法检测到数组变动的原因及解决)
- vue原理详解(vue响应式原理与双向数据的深入解析)
- springbootvue项目代码(Vue+SpringBoot实现支付宝沙箱支付的示例代码)
- vue基础语法对象(浅析从面向对象思维理解Vue组件)
- vue界面自动生成(Vue中实现3D标签云的详细代码)
- vuex数据持续化(Vuex数据持久化实现的思路与代码)
- vue3 props用法(vue3组合API中setup、 ref、reactive的使用大全)
- vue的修饰符都有哪些(详解Vue的sync修饰符)
- 使用vue组件开发项目(Vue记事本实例详解)
- vue插槽的分类(vue具名插槽的基本使用实例)
- vue创建dom节点(Vue批量更新dom的实现步骤)
- vue 为什么使用虚拟dom(Vue虚拟Dom到真实Dom的转换)
- vue怎么更换自定义水印(Vue之全局水印的实现示例)
- vue引用js库报错(Vue插件报错:Vue.js is detected on this page.问题解决)
- 今年考高会很难吗(今年高考会考试吗)
- 盘古开天地 他创造了世界,谁创造了盘古 盘古是伏羲吗(盘古开天地他创造了世界)
- 关于队徽 你了解这些么 二(关于队徽你了解这些么)
- 冬天来了手脚冰凉 真不是因为上辈子你是折翼的天使(冬天来了手脚冰凉)
- 0 1 岁婴儿最强作息指南,照着做养出天使宝宝(01岁婴儿最强作息指南)
- 沪上这16所高校 萌新 礼包开箱 哪一款让你心动(沪上这16所高校萌新)
热门推荐
- Laravel 中创建 Zip 压缩文件并提供下载的实现方法(Laravel 中创建 Zip 压缩文件并提供下载的实现方法)
- js中encodeURIComponent与C#中HttpUtility.UrlEncode
- nginx配置https转发规则(Nginx配置https原理及实现过程详解)
- centos安装sql server(Centos 7.3下SQL Server安装配置方法图文教程)
- SqlParameter用法
- 如何查看本机docker的安装目录(使用rpm安装指定版本docker1.12.6的详细步骤)
- python opencv图像合并(Python3+OpenCV2实现图像的几何变换平移、镜像、缩放、旋转、仿射)
- web.config里面使用configSource
- .NET垃圾回收机制是什么
- css43个基本技巧(必须掌握10个非常不错的CSS技巧)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9