1. Implementation principle of scrollingThe scrolling principle of better-scroll is the same as the native scrolling principle of the browser. When the height of the child box is greater than the height of the parent box, vertical scrolling will occur; similarly, if the width of the child box is greater than the width of the parent box, horizontal scrolling will occur. 2. Better-scroll HTML structureLet's first look at the common HTML structure of better-scroll: <div class="wrapper"> <ul class="content"> <li>...</li> <li>...</li> ... </ul> </div> BetterScroll is applied to the outer wrapper container, and the scrolling part is the content. Note that BetterScroll handles scrolling of the first child element (the content) of the container ( wrapper) by default, which means that other elements are ignored. 3. Using better-scroll in Vuenpm install better-scroll --save //npm install import BScroll from 'better-scroll' //Introduce better-scroll in the component file <template> /* Horizontal scroll */ /* This is the parent box */ <div class="wrapper_box" style="min-height:100vh; " ref="wrapper" v-else > /* This is the subbox, the scrolling area*/ <div class="content" ref="wrapperChild"> <div v-for="(item, index) in currentImgList" :key="index" class="imgItem" > <img :src="item.img" class="img" style="margin: 0 10px;" /> </div> </div> </div> </template> <script> import BScroll from "better-scroll"; export default { data() { return { currentImgList: [ { img: require("../../assets/image/zzb_1.png") }, { img: require("../../assets/image/zzb_2.png") }, { img: require("../../assets/image/zzb_3.png") } ], }; }, mounted() { this.slide_x(); //Horizontal scroll}, methods: { // Initialization_initScroll() { if (!this.scroll) { this.scroll = new BScroll(this.$refs.wrapper, { // Instantiate BScroll and accept two parameters, the first one is the DOM node of the parent box startX: 0, /// For detailed configuration information, please refer to the official documentation of better-scroll, which will not be repeated here click: true, scrollX: true, scrollY: false, // Ignore vertical scrolling eventPassthrough: "vertical", useTransition: false // Prevent abnormal rebound triggered by fast sliding}); } else { this.scroll.refresh(); //If the DOM structure changes, call this method to recalculate to ensure the normal scrolling effect} }, // Calculate width_calculateWidth() { // Get the tag with class name imgItem let rampageList = this.$refs.wrapperChild.getElementsByClassName( "imgItem" ); // Set a starting width let initWidth = 0; // Traverse the labels for (let i = 0; i < rampageList.length; i++) { const item = rampageList[i]; // Add each label width initWidth += item.clientWidth; } // Set the scrollable width this.$refs.wrapperChild.style.width = `${initWidth}px`; }, slide_x() { this.$nextTick(() => { //this.$nextTick is an asynchronous function, to ensure that the DOM has been rendered this._initScroll(); // Initialization this._calculateWidth(); // Calculate width }); }, }, }; </script> Here is what the original plugin author said: 4. Points where problems may occur:
at lastThis is an article by the author of the better-scroll plugin. I found that better-scroll is really powerful! When better-scroll meets Vue Implementing horizontal scrolling with better-scroll in Vue This is the end of this article about using better-scroll in vue to achieve horizontal scrolling. For more relevant content about using better-scroll in vue to achieve horizontal scrolling, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future! You may also be interested in:
|
<<: Reasons and solutions for failure to insert emoji expressions in MySQL
>>: Summary of Docker common commands and tips
1. Introduction When the amount of data in the da...
Overview Volume is the abstraction and virtualiza...
The decompressed version of mysql5.7.18 starts th...
Back in the Kernel 2.6 era, a new security system...
The following information is compiled from the Int...
Vue $set array collection object assignment In th...
Let's take a look at ufw (Uncomplicated Firew...
The difference between CSS3 animation and JS anim...
Preface Linux's file permission management is...
Table of contents sequence 1. Centralized routing...
This article example shares the specific code of ...
Table of contents 1. Background of WAF 2. What is...
As an open source software, Apache is one of the ...
1.1 What is MySQL multi-instance? Simply put, MyS...
1. What is phantom reading? In a transaction, aft...