I cant figure out why onScroll is not firing console.log..
<table className="table" onScroll={()=>{console.log("Works")}>
It's just not firing console.log...
-
Is this table scrollable or is the document or higher-up container the part that's scrollable?Jacob– Jacob2020-09-09 18:55:19 +00:00Commented Sep 9, 2020 at 18:55
-
Does it scroll in the first place? I'm not sure tables can do this. You may have to wrap the table and put the event on that wrapping element.evolutionxbox– evolutionxbox2020-09-09 18:55:29 +00:00Commented Sep 9, 2020 at 18:55
Add a comment
|
2 Answers
The code will work. Your table needs to be scrollable. If there's no scroll-bar, then no scrolling event will be fired. Your table needs to be scrollable and I know by default tables don't normally stretched, they become scrollable as soon as the content is too long. But you can set the scroll-bar using css. Here's just an example on how to make it work.
function App()
{
return (
<table className="table" onScroll={()=>alert("Table Scrolled")}>
<tr>
<td>First Row</td>
</tr>
<tr>
<td>Second Row</td>
</tr>
<tr>
<td>Second Row</td>
</tr>
</table>
);
}
ReactDOM.render(<App />, document.getElementById("root"));
.table{
overflow: scroll;
height: 300px;
background-color: yellow;
display: block;
}
.table tr{
width: 200px;
height: 200px;
background-color: grey;
border: thin solid blue;
margin: 1rem 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>
6 Comments
Mr.Newt
.table { border-collapse: collapse; overflow: scroll; height: 300px; } but it is not working(
Mosia Thabo
@Mr.Newt , you need to make sure that there's enough content in your form that has a height larger than 300px. otherwise, the scroll bars won't show.
Mosia Thabo
Here's another example that can help you make it scrollable. stackoverflow.com/questions/8232713/…
evolutionxbox
@Mr.Newt the table needs
display: block; otherwise it will stretch to fit in the rows. It also makes the table inaccessible so keep that in mind.Mr.Newt
adding display:block solve the issuse :D :D .thanks guys a lot
|