Closed gong135 closed 6 years ago
你好,请尝试查看yd-infinitescroll父级元素,有没有高度不是100%的。
或者是yd-layout 组件的父级包含了高度不是100%的元素,需手动将其高度设置为100%,否则页面将不能正常滚动。
我没有使用您的 布局方式, 但是我的yd-infinitescroll 其上所有父级元素和祖级元素都都是有高度的!但是父级高度和自己高度一致。 后来我尝试父级高度变成看100vh也没有触发这个回调
你的滚动容器是window还是其他哪个?何不发完整代码更好理解?
<template>
<div>
<yd-infinitescroll :callback="loadList" ref="infinitescrollDemo">
<xm-tab class="main-marin" :tabs="tablist" slot="list">
<div slot="0" class='tab-content'>
<div v-for="item in 100">{{item}}这是一个div占位</div>
</div>
</xm-tab>
<!-- 数据全部加载完毕显示 -->
<span slot="doneTip">啦啦啦,啦啦啦,没有数据啦~~</span>
<!-- 加载中提示,不指定,将显示默认加载中图标 -->
<img slot="loadingTip" src="http://static.ydcss.com/uploads/ydui/loading/loading10.svg" />
</yd-infinitescroll>
</div>
</template>
<script>
import xmTab from '../../components/tab/tab';
export default {
data() {
return {
tablist: ['我供应', '我需求'],
};
},
components: {
xmTab,
},
methods: {
loadList() {
console.log(1);
},
},
};
</script>
<style>
.miantop {
height: 100vh;
}
</style>
容器是window
发全部 好像无法显示哟
你的代码运行正常。你是哪个版本的vue-ydui?
嗯! 我这边没有触发。 我觉得有可能是我布局的问题
把项目托管到github上,帮你调试下。
删除这部分代码了! 自定义成分页了! 等我修改下
恩,调试了好久,是样式设置问题。src\assets\style\index.less 中html和body不可以同时加超出隐藏的,只能加到body,不然滚动事件会没有响应的。例如:
<style>
html, body {
height: 100%;
overflow-x: hidden;
}
</style>
这样是滚动事件是没有响应的。
你可以这样试试(不会有事件响应):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
html, body {
height: 100%;
overflow-x: hidden;
}
</style>
</head>
<body>
<div>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
<h1>fdsfdsf</h1>
</div>
<script>
!function () {
window.addEventListener('scroll', function () {
console.log('fsjdklfjkslajf');
})
}();
</script>
</body>
</html>
谢谢
老师您写的这个demo 有事件响应
是的,我写的不严谨。你不要切换手机模式,就可以看清楚了。滚动最底或者最顶会有响应,是因为内部容器触发了body的滚动,但是实际上滚动不是这样的。
你加上这个样式就没事件响应了。
* {
margin: 0;
padding: 0;
}
所以,使用infiniteScroll 都需要避免哪些坑?能不能更新到文档中,标注下注意事项?
问题描述
引入的 这个组件 ,这个回掉函数loadList2无法触发。
(尽可能详细地描述一下问题)
提示错误信息
木有错误提示
复现步骤
export default { data() { return { page1: 1, page2: 1, pageSize: 10, list: ['很多数据'], }; }, methods: { loadList2() { console.log('滚动到底部触发'); }, }, };