js realizes the dynamic loading of data by waterfall flow bottoming out

js realizes the dynamic loading of data by waterfall flow bottoming out

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:
  • JS realizes the effect of picture waterfall flow
  • Using js to achieve waterfall effect
  • How to use JS to implement waterfall layout of web pages
  • js to achieve waterfall flow layout (infinite loading)
  • 3 ways to implement waterfall layout with JavaScript
  • Have you learned how to implement JavaScript waterfall flow?

<<:  How to find and delete duplicate records in MySQL

>>:  Problems and solutions for installing Docker on Alibaba Cloud

Recommend

Zookeeper stand-alone environment and cluster environment construction

1. Single machine environment construction# 1.1 D...

Problem record of using vue+echarts chart

Preface echarts is my most commonly used charting...

A Different Kind of "Cancel" Button

The “Cancel” button is not part of the necessary ...

Detailed explanation of html printing related operations and implementation

The principle is to call the window.print() metho...

How to install and use Server-U 14 version

Introducing Server-U software Server-U is a very ...

Code for implementing simple arrow icon using div+CSS in HTML

In web design, we often use arrows as decoration ...

Using js to implement a number guessing game

Last week, the teacher gave me a small homework, ...

How to view nginx configuration file path and resource file path

View the nginx configuration file path Through ng...

Native JS realizes compound motion of various motions

This article shares with you a compound motion im...

A simple way to implement Vue's drag screenshot function

Drag the mouse to take a screenshot of the page (...

Docker installation tutorial in Linux environment

1. Installation environment Docker supports the f...

Differences between proxy_pass in two modules in nginx

1. The proxy_pass directive of the 1.ngx_stream_p...

HTML simple web form creation example introduction

<input> is used to collect user information ...

JavaScript typing game

This article shares the specific code of JavaScri...