-
-
Notifications
You must be signed in to change notification settings - Fork 7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug Report] V-Select scrolling behaviour #2660
Comments
v-select lazy-loads items 20 at a time for performance reasons. This could be done with a set number of items at some point in the future though. |
I understand the perf concern but shouldn't the UX concern take precedence here? The current strategy makes the component practically unusable when dealing with long lists so what's the point of having nice perf in a context that no-one would ever use unless they like to hear their users complain. |
Yeah, that behaviour is really annoying and not at all user friendly. Any updates on that? |
It was removed in 1.1 but had to be added back because of the massive performance impact if you have a lot of records. We're planning to add proper list virtualisation at some point, but probably not in 1.1 |
How about changing it into a prop? In my current project for example I have a fixed amount of about 150 records, would be cool if I could set the value myself. |
Looks like the vuetify/src/components/VSelect/VSelect.js Lines 221 to 225 in 297c80e
|
Great, thank you! Using |
:auto="true" doesn't seem to fix this for me on 2.1.6 -- and, if it did work, could kill performance when I only need to scroll to position 50 out of 300. I think this could be solvable if we could easily change the default value of 20 for VSelect.lastItem to something else via a prop. Could it be as simple as just adding something like this to VSelect.ts?:
|
Is there any news on this issue? Is there a work-around? |
Updating |
Passing |
This is pending the completion of #10944. Otherwise it will be bumped. |
|
Works on Vuetify 2.2+ |
Thanks. This also solved another issue with v-select where the scrollbar would occasionally not function at all (50+ items and customised css). Can confirm this works in Vuetify 2.4.2. |
I fixed this by removing my |
|
i'm having this on v2.5.8 |
That's really a problem, because in case, when the height of menu is large enough to include 20 items visible on the screen, |
This is absolutely a flaw in the system. I did it this way as a stop gap to not having a virtual-scroll component and it sort of stuck that way over the years. No worries though, it is something we are addressing for Vuetify 3. |
Hi guys, the only way to fix the scrollbar issue is to set the menu props as follows:
This will load up all the elements and add scrollbar after 80% of height is consumed. |
As a related note, the lazy loading creates problems when doing e2e testing like cypress because the value you want might not be rendered yet. While I understand the performance issue, having to add |
As an update to this thread, Vuetify 3 selects all integrate virtual-scrolling by default. Closing this as completed. |
Any update? The problem persists with 80 elements in "vuetify": "^3.4.6", is this bug still being worked on? Regards |
Provide a reproduction and create a new issue, please do not comment on closed issues. |
Versions and Environment
Vuetify: 0.17.3
Vue: 2.5.9
Browsers: Chrome 62.0.3202.94
OS: Windows 7
Steps to reproduce
Give the select component a largish number of items (anything above 50 will do).
Open the select and start scrolling
Expected Behavior
The scrollbar thumb should be of constant height (representing the relationship between the overall height of the item list and the height of the popup element), and scrolling should be fluid and linear
Actual Behavior
The scrollbar's thumb starts off too high and as you begin to scroll, changes it's height and jumps to a different location on its track - basically disappearing from under the mouse cursor - thus leading to a jittery and uneven scrolling action making it almost impossible to reach the bottom of the list
Reproduction Link
https://codepen.io/anon/pen/RjYmJb?editors=1010
The text was updated successfully, but these errors were encountered: