提交 eabd1ba4 authored 作者: yzx's avatar yzx

fix: update

上级 4f771341
......@@ -2,4 +2,4 @@
document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'
})
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel="stylesheet" href="/static/index.9ffdaeb8.css"></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id="app"></div><script src="/static/js/chunk-vendors.db683e20.js"></script><script src="/static/js/index.2e11312b.js"></script></body></html>
\ No newline at end of file
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel="stylesheet" href="/static/index.9ffdaeb8.css"></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id="app"></div><script src="/static/js/chunk-vendors.5b995842.js"></script><script src="/static/js/index.a6e97697.js"></script></body></html>
\ No newline at end of file
差异被折叠。
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -59,6 +59,7 @@
"@dcloudio/uni-quickapp-webview": "^2.0.0-31920210428001",
"@dcloudio/uni-stat": "^2.0.0-31920210428001",
"@vue/shared": "^3.0.0",
"better-scroll": "^2.4.2",
"core-js": "^3.6.5",
"crypto-js": "^4.0.0",
"dayjs": "^1.10.5",
......
<template>
<div ref="wrapper">
<slot></slot>
</div>
</template>
<script type="text/ecmascript-6">
import BScroll from 'better-scroll'
import Pullup from '@better-scroll/pull-up'
BScroll.use(Pullup)
export default {
props: {
/**
* 1 滚动的时候会派发scroll事件,会截流。
* 2 滚动的时候实时派发scroll事件,不会截流。
* 3 除了实时派发scroll事件,在swipe的情况下仍然能实时派发scroll事件
*/
probeType: {
type: Number,
default: 1
},
isPullUpLoad: false,
/**
* 点击列表是否派发click事件
*/
click: {
type: Boolean,
default: true
},
/**
* 是否开启横向滚动
*/
scrollX: {
type: Boolean,
default: false
},
/**
* 是否派发滚动事件
*/
listenScroll: {
type: Boolean,
default: false
},
/**
* 列表的数据
*/
data: {
type: Array,
default: null
},
/**
* 是否派发滚动到底部的事件,用于上拉加载
*/
pullup: {
type: Boolean,
default: false
},
/**
* 是否派发顶部下拉的事件,用于下拉刷新
*/
pulldown: {
type: Boolean,
default: false
},
/**
* 是否派发列表滚动开始的事件
*/
beforeScroll: {
type: Boolean,
default: false
},
/**
* 当数据更新后,刷新scroll的延时。
*/
refreshDelay: {
type: Number,
default: 20
}
},
mounted() {
// 保证在DOM渲染完毕后初始化better-scroll
setTimeout(() => {
this._initScroll()
}, 20)
},
methods: {
async pullingUpHandler() {
this.isPullUpLoad = true
console.log('refresh')
await this.fatherMethod()
this.scroll.finishPullUp()
this.scroll.refresh()
this.isPullUpLoad = false
},
_initScroll() {
if (!this.$refs.wrapper) {
return
}
// better-scroll的初始化
this.scroll = new BScroll(this.$refs.wrapper, {
probeType: this.probeType,
click: this.click,
scrollX: this.scrollX,
eventPassthrough: 'vertical',
pullUpLoad: true,
})
this.scroll.on('pullingUp', this.pullingUpHandler)
// 是否派发滚动事件
if (this.listenScroll) {
this.scroll.on('scroll', (pos) => {
console.log(pos)
this.$emit('scroll', pos)
})
}
// 是否派发滚动到底部事件,用于上拉加载
if (this.pullup) {
this.scroll.on('scrollEnd', () => {
// 滚动到底部
if (this.scroll.y <= (this.scroll.maxScrollY + 50)) {
this.$emit('scrollToEnd')
}
})
}
// 是否派发顶部下拉事件,用于下拉刷新
if (this.pulldown) {
this.scroll.on('touchEnd', (pos) => {
// 下拉动作
if (pos.y > 50) {
this.$emit('pulldown')
}
})
}
// 是否派发列表滚动开始的事件
if (this.beforeScroll) {
this.scroll.on('beforeScrollStart', () => {
this.$emit('beforeScroll')
})
}
},
disable() {
// 代理better-scroll的disable方法
this.scroll && this.scroll.disable()
},
enable() {
// 代理better-scroll的enable方法
this.scroll && this.scroll.enable()
},
refresh() {
// 代理better-scroll的refresh方法
this.scroll && this.scroll.refresh()
},
scrollTo() {
// 代理better-scroll的scrollTo方法
this.scroll && this.scroll.scrollTo.apply(this.scroll, arguments)
},
scrollToElement() {
// 代理better-scroll的scrollToElement方法
this.scroll && this.scroll.scrollToElement.apply(this.scroll, arguments)
}
},
watch: {
// 监听数据的变化,延时refreshDelay时间后调用refresh方法重新计算,保证滚动效果正常
data() {
setTimeout(() => {
this.refresh()
}, this.refreshDelay)
}
}
}
</script>
......@@ -63,6 +63,7 @@ export default {
touchstartHandle(e) {
this.lastY = event.touches[0].pageY;
console.log("START:", this.lastY);
this.$emit("getIsScroll", this.height);
},
touchendHandle(e) {
console.log("END:");
......@@ -70,27 +71,32 @@ export default {
if (this.height < this.middleHeight) {
this.height = this.middleHeight;
this.isScroll = false;
this.$emit("getIsScroll", this.isScroll);
// this.$emit("getIsScroll", this.isScroll);
} else {
this.height = this.maxHeight;
this.isScroll = true;
this.$emit("getIsScroll", this.isScroll);
// this.$emit("getIsScroll", this.isScroll);
}
} else {
if (this.height < this.middleHeight) {
this.height = this.minHeight;
this.isScroll = false;
this.$emit("getIsScroll", this.isScroll);
// this.$emit("getIsScroll", this.isScroll);
} else {
this.height = this.middleHeight;
this.isScroll = false;
this.$emit("getIsScroll", this.isScroll);
// this.$emit("getIsScroll", this.isScroll);
}
}
this.direction_flag = true;
},
preventTouch() {
event.preventDefault();
},
touchmoveHandle(e) {
console.log("MOVE:");
document.addEventListener("touchstart", this.preventTouch());
document.addEventListener("touchmove", this.preventTouch());
document.addEventListener("touchend", this.preventTouch());
let currentY = event.touches[0].pageY;
let transformHeight = currentY - this.lastY;
this.height = this.height - transformHeight / 20;
......
<template>
<div class="pullup box">
<div class="pullup-wrapper">
<div class="pullup-content">
<ul class="pullup-list">
<li v-for="i of data" :key="i" class="pullup-list-item">
{{ i % 5 === 0 ? "scroll up 👆🏻" : `I am item ${i} ` }}
</li>
</ul>
<div class="pullup-tips">
<div v-if="!isPullUpLoad" class="before-trigger">
<span class="pullup-txt">Pull up and load more</span>
</div>
<div v-else class="after-trigger">
<span class="pullup-txt">Loading...</span>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import BScroll from "@better-scroll/core";
import Pullup from "@better-scroll/pull-up";
BScroll.use(Pullup);
export default {
data() {
return {
isPullUpLoad: false,
data: 30,
};
},
mounted() {
this.initBscroll();
},
methods: {
initBscroll() {
let id = uni.createSelectorQuery().select('#scroll')
this.bscroll = new BScroll('.pullup-wrapper', {
pullUpLoad: true,
eventPassthrough: "vertical",
});
this.bscroll.on("pullingUp", this.pullingUpHandler);
},
async pullingUpHandler() {
this.isPullUpLoad = true;
await this.requestData();
this.bscroll.finishPullUp();
this.bscroll.refresh();
this.isPullUpLoad = false;
},
async requestData() {
console.log(this.bscroll);
try {
const newData = await this.ajaxGet(/* url */);
this.data += newData;
} catch (err) {
// handle err
console.log(err);
}
},
ajaxGet(/* url */) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(20);
}, 1000);
});
},
},
};
</script>
<style scoped>
.pullup {
height: 100%;
}
.pullup-wrapper {
height: 100%;
padding: 0 10px;
border: 1px solid #ccc;
overflow: hidden;
}
.pullup-list {
padding: 0;
}
.pullup-list-item {
padding: 10px 0;
list-style: none;
border-bottom: 1px solid #ccc;
}
.pullup-tips {
padding: 20px;
text-align: center;
color: #999;
}
</style>
差异被折叠。
......@@ -1145,11 +1145,102 @@
dependencies:
"@better-scroll/shared-utils" "^2.4.2"
"@better-scroll/indicators@^2.4.2":
version "2.4.2"
resolved "https://registry.yarnpkg.com/@better-scroll/indicators/-/indicators-2.4.2.tgz#9c72647a764e540f3ff356937c54d82c771c78aa"
integrity sha512-dScI0HIt06L1thLO+1W7w1enqRtegWF1izKYhswiyTXLgagLh2QbAi+oexNiPSOGBuNz8w1mO7hZvVJez/ZFkw==
dependencies:
"@better-scroll/core" "^2.4.2"
"@better-scroll/infinity@^2.4.2":
version "2.4.2"
resolved "https://registry.yarnpkg.com/@better-scroll/infinity/-/infinity-2.4.2.tgz#82c3e61555feaf1d3882cfa35eeb1cce09f91e1b"
integrity sha512-KGpCWLTyMzcGBT59c3N/JaVauLmi0jG2YZApdnqON+Oz4AJiHnzGkzWc4EJxcxR3Vy+m5Jp91y6xrpsvRmOdIg==
dependencies:
"@better-scroll/core" "^2.4.2"
"@better-scroll/mouse-wheel@^2.4.2":
version "2.4.2"
resolved "https://registry.yarnpkg.com/@better-scroll/mouse-wheel/-/mouse-wheel-2.4.2.tgz#dea70a60dc2a3795ef6ad569d2dea5b4c7e9af4c"
integrity sha512-dLc8vlYkSYN9AQEo4NDPQloPhscCV17TY98JUBcio4I2STDlYYIQqofqm1GQPfByfK9f057DnrcgZ/bPVx7PTA==
dependencies:
"@better-scroll/core" "^2.4.2"
"@better-scroll/movable@^2.4.2":
version "2.4.2"
resolved "https://registry.yarnpkg.com/@better-scroll/movable/-/movable-2.4.2.tgz#f385e65d23cea2031fddc52dd4eb4f52bd5fc4e7"
integrity sha512-y4FbKx9FTUfAfM6wW+PCKA3CONc4nfjaE4N1ImGsIorzkSWV2eGO+LTD6FVv5+gVINI/o9Xj/gHmEJUaupUeSg==
dependencies:
"@better-scroll/core" "^2.4.2"
"@better-scroll/nested-scroll@^2.4.2":
version "2.4.2"
resolved "https://registry.yarnpkg.com/@better-scroll/nested-scroll/-/nested-scroll-2.4.2.tgz#44680f4b02176461250e6be6d95f2ac6169a1c98"
integrity sha512-JnC2sqtDqVkj9F5J39u52b6qDsMqXbnURG67dHf97tYoYP2dluwjkvhhxjSFrghREoQzT/KWcDbkfcGy47lQwQ==
dependencies:
"@better-scroll/core" "^2.4.2"
"@better-scroll/observe-dom@^2.4.2":
version "2.4.2"
resolved "https://registry.yarnpkg.com/@better-scroll/observe-dom/-/observe-dom-2.4.2.tgz#cc1e6d82a8f53525c282c9a4bcea5d1be8c21c95"
integrity sha512-eeS77CZs+V72dkya10e5ptndBAbhQVcXoYGvfoIihOJgCPqO5MdYTpzRmlbshYCEE5juUMLe82Kx8FSbOejpAw==
dependencies:
"@better-scroll/core" "^2.4.2"
"@better-scroll/observe-image@^2.4.2":
version "2.4.2"
resolved "https://registry.yarnpkg.com/@better-scroll/observe-image/-/observe-image-2.4.2.tgz#b6e55d231d0bb2571dbb18778da92cfbdde2dd54"
integrity sha512-ToYVf5vn0cio5B9uaL5NyvFX3JNU6L0Po20Lw7uxa0+FE+kMvSAMJN+9POg6G+cfIqI8GVHhyyR+4Ev8v2Nl5Q==
dependencies:
"@better-scroll/core" "^2.4.2"
"@better-scroll/pull-down@^2.4.2":
version "2.4.2"
resolved "https://registry.yarnpkg.com/@better-scroll/pull-down/-/pull-down-2.4.2.tgz#6b98b28bd73e9b694b0857a9c73879e70339cb96"
integrity sha512-bqMLk33o4oesTXIIOteBKHQgfVKjIVvity39TM/MfzkbY1WDBxD+HFS7ySgoqw7Kl2Wiv/U76Wfqzmm6yDdg7Q==
dependencies:
"@better-scroll/core" "^2.4.2"
"@better-scroll/pull-up@^2.4.2":
version "2.4.2"
resolved "https://registry.yarnpkg.com/@better-scroll/pull-up/-/pull-up-2.4.2.tgz#25357ceef7bac7520930f0631896b63a10f82a6f"
integrity sha512-07Cke3oa96lN9/inxJZ0ixh0nBbbqxOi2IKcBGtD6dP+susiMcdhgd/c7zNRjXkwlw0vzTNfXTgExIOEWzLHYg==
dependencies:
"@better-scroll/core" "^2.4.2"
"@better-scroll/scroll-bar@^2.4.2":
version "2.4.2"
resolved "https://registry.yarnpkg.com/@better-scroll/scroll-bar/-/scroll-bar-2.4.2.tgz#257856a1da27d65eb899ac26f01060afbf800bdb"
integrity sha512-zZd0+sWfzTCXJeuA001o5bea7AvLYz7BCE7dolxFbPTIPnV5V5UEH8LLdXQ/HIwgxI0Pj9PoY9njSuhooh6lfg==
dependencies:
"@better-scroll/core" "^2.4.2"
"@better-scroll/shared-utils@^2.4.2":
version "2.4.2"
resolved "https://registry.yarnpkg.com/@better-scroll/shared-utils/-/shared-utils-2.4.2.tgz#1ac5c97495727093a22a8009560795dd5e3c18da"
integrity sha512-Gy/Jfbpu+hq0u+PcjkTqyXGqAf+0dexTzEZ5IDXEVwJVLmd3cx8A73oTcAZ8QZgk4wSHvlMjXecSaptkhnNPEw==
"@better-scroll/slide@^2.4.2":
version "2.4.2"
resolved "https://registry.yarnpkg.com/@better-scroll/slide/-/slide-2.4.2.tgz#024528ae57516a2ee99bea346381589e4e6a039c"
integrity sha512-VfdFHm/meo4nEyfx0JLn8rUHfQdQCnoBHs/BsV+vmjVivKg+cVgfS+QaytrIulWKqNAWNlfXbAaNtZMv8gNKZg==
dependencies:
"@better-scroll/core" "^2.4.2"
"@better-scroll/wheel@^2.4.2":
version "2.4.2"
resolved "https://registry.yarnpkg.com/@better-scroll/wheel/-/wheel-2.4.2.tgz#0dd74b03599e01a82d55d29f6dcad7a8a503bd75"
integrity sha512-oJw68glWbrYBbRK8RJnKo3Fw9bU7Cd4zDbBHbKZ062/YJAJUZW9wF/3Lout4PnolkjuJIp2TZiEgJNtuRd+Njg==
dependencies:
"@better-scroll/core" "^2.4.2"
"@better-scroll/zoom@^2.4.2":
version "2.4.2"
resolved "https://registry.yarnpkg.com/@better-scroll/zoom/-/zoom-2.4.2.tgz#c26c2df3312ed75b31f0203c5f2e6181abc06c5e"
integrity sha512-rN/BTE3lf2sNNvKowGL/tUKZ/BgdZcZa0pjE/rVW0tBL/7x68cBowWQD5HF2Z2Bge8OPXRjkwN/xN1aFYhEtWA==
dependencies:
"@better-scroll/core" "^2.4.2"
"@cnakazawa/watch@^1.0.3":
version "1.0.4"
resolved "https://registry.npm.taobao.org/@cnakazawa/watch/download/@cnakazawa/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
......@@ -2926,6 +3017,26 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
better-scroll@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/better-scroll/-/better-scroll-2.4.2.tgz#7496b14310eed969da4db5ff1fa33ea032d4ef18"
integrity sha512-I/JzJNUay2vMAkczBa/4x52QBdUGA3Bs/QtrKrxVjSbBHUMG6yR14srQr4aCAWlIra1FBmuddwGRfI6zRagI9Q==
dependencies:
"@better-scroll/core" "^2.4.2"
"@better-scroll/indicators" "^2.4.2"
"@better-scroll/infinity" "^2.4.2"
"@better-scroll/mouse-wheel" "^2.4.2"
"@better-scroll/movable" "^2.4.2"
"@better-scroll/nested-scroll" "^2.4.2"
"@better-scroll/observe-dom" "^2.4.2"
"@better-scroll/observe-image" "^2.4.2"
"@better-scroll/pull-down" "^2.4.2"
"@better-scroll/pull-up" "^2.4.2"
"@better-scroll/scroll-bar" "^2.4.2"
"@better-scroll/slide" "^2.4.2"
"@better-scroll/wheel" "^2.4.2"
"@better-scroll/zoom" "^2.4.2"
bfj@^6.1.1:
version "6.1.2"
resolved "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f"
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论