Reactjs React相当于`$(window.scrollTop())`
我试图检查用户是否已滚动到文档底部。Jquery中有一个流行的答案 如何在React中完成该操作 到目前为止,我发现相当于:Reactjs React相当于`$(window.scrollTop())`,reactjs,react-dom,Reactjs,React Dom,我试图检查用户是否已滚动到文档底部。Jquery中有一个流行的答案 如何在React中完成该操作 到目前为止,我发现相当于: $(窗口)。高度为:window.pageYOffset $(document).height为:document.documentElement.offsetHeight 我缺少$(窗口)。scrollTop您对React的期望太高了。React只关心向DOM呈现数据。你不喜欢使用纯JS 示例 const{useState,useffect}=React; 常量应
$(窗口)。高度为:
window.pageYOffset
为:$(document).height
document.documentElement.offsetHeight
我缺少
$(窗口)。scrollTop
您对React的期望太高了。React只关心向DOM呈现数据。你不喜欢使用纯JS
示例
const{useState,useffect}=React;
常量应用=()=>{
useffect(()=>{
$(窗口).scrollTop($(文档).height());
}, [])
返回
}
ReactDOM.render(
,
document.getElementById('root'))
);代码>
窗口对象中有一个新的API。这里的示例用于滚动到顶部。你也可以在底部做。而不是顶部作为底部
顶部:
底部:
window.scrollTo({ top: document.body.scrollHeight, behavior: 'smooth' })
在javascript中检查页面底部
window.onscroll = function() {
var d = document.documentElement;
var offset = d.scrollTop + window.innerHeight;
var height = d.offsetHeight;
console.log('offset = ' + offset);
console.log('height = ' + height);
if (offset >= height) {
console.log('At the bottom');
}
};
与反应挂钩组合使用
遵循以下条款和代码参考:
1.
2. 您希望检查用户是否已使用React/JS滚动到文档底部
给你
代码片段
导出默认函数App(){
const[isPageEnd,setIsPageEnd]=useState(false);
useffect(()=>{
文档。添加的文本列表器(“滚动”,跟踪滚动);
return()=>document.removeEventListener(“滚动”,trackScrolling);
}, []);
常量跟踪滚动=()=>{
if(window.innerHeight+window.scrollY>=document.body.offsetHeight){
setIsPageEnd(真);
}
if(false){
控制台日志(“到达底部”);
document.removeEventListener(“滚动”,跟踪滚动);
}
};
返回(
你好,代码沙盒
{isPageEnd(
您已到达页面底部。请刷新页面并重新开始
) : (
Lorem ipsum,或者有时称为lipsum,是在
排版印刷品、平面或网页设计。这篇文章是由于
15世纪的一个不知名的排字工,被认为有
西塞罗的De Finibus Bonorum et Malorum的搅乱部分,用于
类型样本书Lorem ipsum,或者有时称为lipsum,是
用于排版印刷品、图形或网页设计的虚拟文本
这段文字被认为是15世纪一位不知名的排字工人写的
被认为是扰乱了西塞罗的德菲尼布斯·博诺拉姆等人的部分作品
Malorum用于类型样本书Lorem ipsum或lipsum
有时是已知的,是否在排版印刷品、图形或图形时使用虚拟文本
网页设计。这篇文章的作者是一位不知名的美国排字师
15世纪,被认为是谁扰乱了西塞罗的部分德
类型样本书Lorem中使用的Finibus Bonorum和Malorum
ipsum,或者有时称为lipsum,是在
排版印刷品、平面或网页设计。这篇文章是由于
15世纪的一个不知名的排字工,被认为有
西塞罗的De Finibus Bonorum et Malorum的搅乱部分,用于
类型样本书Lorem ipsum,或者有时称为lipsum,是
用于排版印刷品、图形或网页设计的虚拟文本
这段文字被认为是15世纪一位不知名的排字工人写的
被认为是扰乱了西塞罗的德菲尼布斯·博诺拉姆等人的部分作品
用于类型样本簿的马洛伦
)}
);
}
这可能适合您。为此,可以使用React-SyntheticEvent
class SomeComponent extends React.Component {
findBottomScroll = e => {
let element = e.target
if (element.scrollHeight - element.scrollTop === element.clientHeight) {
// whatever you want
}
}
render() {
return (
<div onScroll={this.handleScroll}></div>
)
}
类SomeComponent扩展React.Component{
findBottomScroll=e=>{
设元素=e.target
if(element.scrollHeight-element.scrollTop===element.clientHeight){
//随便你
}
}
render(){
返回(
)
}
}如果方便的话,我更喜欢使用浏览器的API。在本例中,Jquery是一个不必要的依赖项。无论如何,谢谢。
class SomeComponent extends React.Component {
findBottomScroll = e => {
let element = e.target
if (element.scrollHeight - element.scrollTop === element.clientHeight) {
// whatever you want
}
}
render() {
return (
<div onScroll={this.handleScroll}></div>
)
}