npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@fekit/pullload

v1.3.5

Published

这个插件可以实现下拉刷新和滚动到底部加载更多。 This plug-in can implement pull-down refresh and scroll to the bottom to load more.

Downloads

103

Readme

@fekit/pullload

这个插件可以实现下拉刷新和滚动到底部加载更多。 This plug-in can implement pull-down refresh and scroll to the bottom to load more.

Catalog

Demos

Demo

https://plugins.fekit.cn/@fekit/pullload/#/demo

Install

npm i @fekit/pullload

or

yarn add @fekit/pullload

Example

<template>
  <div class="flex-block nt-ms nx-sl" mcui-scroll=":y" ref="demoRef" style="overflow-y: scroll">
    <div class="virtual-home-footer">
      <div class="fs-ss o-mm" fekit-pullload-head="">
        <div v-show="ex.store.pull < 2" mcui-flex="row cm">
          <i class="pulldown icon icon-pulldown" :class="`${ex.store.pull === 1 ? 'toup' : ''}`"></i>
          <span v-show="ex.store.pull === 0">下拉刷新</span>
          <span v-show="ex.store.pull === 1">松开加载</span>
        </div>
        <div v-show="ex.store.pull === 2" mcui-flex="row cm">
          <span mcui-load="@d"></span>
          <!-- <span>正在刷新</span> -->
        </div>
        <div v-show="ex.store.pull === 3" mcui-flex="row cm">
          <span>刷新完成</span>
        </div>
      </div>
      <ul v-if="demo.list.length" class="mb-ms-sub n-ms-sub">
        <li v-for="(item, idx) in demo.list" :key="idx" class="bg-fore r-ms" mcui-flex="row lm">
          <div>
            <div mcui-img="@a sz:ms :round"><img :src="item.photo" alt="" /></div>
          </div>
          <div class="nl-sm">
            <h3>{{ item.name || '‐‐' }}</h3>
            <p>ID: {{ item.id }}</p>
          </div>
        </li>
      </ul>
      <div v-if="!state.load && !demo.list.length">
        <div class="ac">
          <i class="icon icon-nodata fs-ls"></i>
          <p>当前没有记录</p>
        </div>
      </div>
      <div class="fs-ss o-mm mb-sm" fekit-pullload-foot="">
        <transition name="fekit-pullload-fade" mode="out-in">
          <div v-if="ex.store.load === 2" mcui-flex="row cm">
            <span mcui-load="@d"></span>
            <!-- <span>正在加载</span> -->
          </div>
          <div v-else-if="ex.store.load === 3">没有更多了</div>
          <div v-else>&nbsp;</div>
        </transition>
      </div>
    </div>
  </div>
</template>
<script setup lang="ts">
import { onMounted, reactive, ref } from 'vue';
import { useDemoStore } from '@/store';
import PullLoad from '@/npm/src';
import { onBeforeUnmount } from 'vue';

const state: any = reactive({
  load: 1,
});

const demo: any = useDemoStore();
demo.getDemoList();

const demoRef: any = ref(null);
const ex: any = ref(null);
ex.value = new PullLoad({
  onpull: async (e: any) => {
    state.load = 1;
    await demo.getDemoList();
    e.pulled();
    state.load = 0;
  },
  onload: async (e: any) => {
    if (demo.isover) {
      e.isover();
    } else {
      demo.limit.current = demo.limit.current + 1;
      await demo.getDemoList();
      e.loaded();
    }
  },
});

onMounted(() => {
  if (demoRef.value) {
    ex.value?.listen(demoRef.value);
    ex.value?.ispull();
  }
});
onBeforeUnmount(() => {
  ex.value?.remove();
});
</script>

<style lang="scss">
[fekit-pullload-head],
[fekit-pullload-foot] {
  position: absolute;
  width: 100%;
  height: 2em;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
}
[fekit-pullload-head] {
  bottom: 100%;
  margin-bottom: 1em;
}
[fekit-pullload-foot] {
  position: relative;
  top: 100%;
}

.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.2s;
}
.fade-enter,
.fade-leave-to {
  opacity: 0;
}

.pulldown {
  transition: all 0.3s;
  display: inline-block;
  &.toup {
    transform: rotate(180deg);
  }
}
</style>

Version

v1.3.3
消除passive警告
Eliminate passive event listener warning.

v1.3.2
修复演示代码中的一处错识以及优化滚动事件性能
To fix an identified error in the sample code and optimize the performance of scroll events.

v1.3.1
新增触发事件距离(triggerDistance)和正在加载的距离(loadingDistance)
Added trigger event distance (triggerDistance) and loading distance (loadingDistance)

v1.3.0
下拉和上拉触发刷新的距离改为可设置,参数名为distance
The distance between pull-down and pull-up trigger refreshes can be set, and the parameter name is 'distance'

v1.2.5
上拉加载时超过50px才触发
Trigger the load more action only when it exceeds 50 pixels during the upward scroll.

v1.2.4
在底部加载更多状态为“没有更多”时,下拉刷新后需要重置底部加载更多的状态为初始状态
When the 'load more' status at the bottom is 'no more items,' it should be reset to its initial state after pulling to refresh.

v1.2.3
解决无滚动状态下无法触发上拉加载的问题
Resolve the issue of not being able to trigger the 'load more on scroll' functionality when there is no scrolling.

v1.2.2
默认动画曲线改为 easeOut
Change the default animation curve to 'easeOut'.

v1.2.1
添加了动画曲线 easing 入参
Added animation curve easing input parameter.

v1.2.0
添加“摩擦阻力 friction”入参
Add the 'friction' parameter for frictional resistance.

v1.1.3
完善未开启onpull和onload时的交互行为
Enhance the interaction behavior when 'onpull' and 'onload' are not enabled.

v1.1.2
优化原生滚动条假死状态
Optimize the suspended state of the native scroll bar

v1.1.1
完善README.md文档
Improve the README.md document

v1.1.0
优化代码,新增ispull和isload方法
Optimize the code and add ispull and isload methods

v1.1.0
实现了核心功能
Implemented core functions