This article shares with you the specific code of js to realize the dynamic loading of data when the waterfall flow touches the bottom. For your reference, the specific content is as follows // onScrollEvent scroll bar event <div class="box" ref="box" @mousewheel="onScrollEvent"> //The content of each block start <div class="boxItemStyle" v-for="(userTag, i) in dataSource" :key="i" ref="boxItemStyle"> <a-tag class="moreStyle" @click="more(userTag.primaryParam)"> More></a-tag> <div v-for="item in userTag.userTag" :key="item.code"> <p> {{ item.name }}: {{ item.value }} </p> </div> </div> //Contents in each block end </div> Waterfall layout waterFall() { // Subtract the width of the margin var pageWidth = this.$refs.box.offsetWidth - 200 var columns = 4; //Define a row with 4 columns var itemWidth = parseInt(pageWidth / columns); var arr = []; var nodes = document.getElementsByClassName("boxItemStyle") setTimeout(() => { //var node1 = Array.from(nodes) // var node2 = Array.prototype.slice.call(nodes) for (var i = 0; i < nodes.length; i++) { nodes[i].style.width = itemWidth + "px" if (i < columns) { nodes[i].style.width = itemWidth + "px" nodes[i].style.left = itemWidth * i + i * 50 + "px" nodes[i].style.top = 0 arr.push(nodes[i].offsetHeight); } else { // Find the minimum height in the array and its index var minHeight = arr[0]; var index = 0; for (var j = 0; j < arr.length; j++) { if (minHeight > arr[j]) { minHeight = arr[j]; index = j; } } nodes[i].style.top = arr[index] + 30 + "px", nodes[i].style.left = nodes[index].offsetLeft + 'px'; // Modify the height of the minimum column // The height of the minimum column = the current height + the height of the spliced column arr[index] = arr[index] + nodes[i].offsetHeight + 30; // Set a distance of 30 } } }, 1000) }, Dynamically loading data onScrollEvent () { if ( this.isScroll && this.$refs.box.scrollHeight - this.$refs.box.scrollTop - this.$refs.box.clientHeight <= 0 ) { this.loading = true if (this.ipagination.current == 1) { this.ipagination.current += 1 } let param = {} param['pageNo'] = this.ipagination.current param['pageSize'] = this.ipagination.pageSize param['portraitId'] = this.portraitId postAction(this.url.list, { ...param }).then((res) => { this.loading = false if (res.success) { this.isScroll = res.records this.dataSource = this.dataSource.concat(res.result.records || res.result) this.waterFall(); } }) this.ipagination.current++ } }, The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: How to find and delete duplicate records in MySQL
>>: Problems and solutions for installing Docker on Alibaba Cloud
1. Single machine environment construction# 1.1 D...
Preface echarts is my most commonly used charting...
The “Cancel” button is not part of the necessary ...
The principle is to call the window.print() metho...
Introducing Server-U software Server-U is a very ...
In web design, we often use arrows as decoration ...
Last week, the teacher gave me a small homework, ...
View the nginx configuration file path Through ng...
This article shares with you a compound motion im...
Drag the mouse to take a screenshot of the page (...
1. Installation environment Docker supports the f...
1. The proxy_pass directive of the 1.ngx_stream_p...
<input> is used to collect user information ...
Template 1: login.vue <template> <p clas...
This article shares the specific code of JavaScri...