【JS】svelte 问题记录

  1. 滚动底部就触发加载的组件。

<!-- a.svelte -->

<script>

let loadFn = function(){

console.log('滚动到底部触发加载')

}

</script>

<b on:load={loadFn}></b>

<!-- b.svelte -->

<script>

import { createEventDispatcher } from 'svelte';

// 初始化触发器对象 const dispatch = createEventDispatcher();

// 加载更多触发器 默认隐藏 let loadTriggerVisible = false;

// 加载更多触发器 事件 let loadData = function () {

if (!listData || listData.length == 0) {

return;

}

// 当前滚动条高度 let scrollTopVal =

document.body.scrollTop || document.documentElement.scrollTop;

// 触发器距离顶部的高度 let loadTriggerTop = document.getElementsByClassName("loadTrigger")[0]

.offsetTop;

if (loadTriggerTop - scrollTopVal - document.documentElement.clientHeight <= 10) {

dispatch("load");

}

};

</script>

<!-- 加载更多触发器 - start -->

<div class="loadTrigger" />

<svelte:window on:scroll={loadData} />

<!-- 加载更多触发器 - end -->

loadTriggerTop 获取的值为 .loadTrigger 到 b 的容器顶部。

【JS】svelte 问题记录

原因是,<svelte:window on:scroll={loadData}/>写在 b 组件上,所以 window 绑定在 b 上,获取的值和实际想要的不一样。

持续更新ing。。。

以上是 【JS】svelte 问题记录 的全部内容, 来源链接: utcz.com/a/95168.html

回到顶部