Skip to content

Commit 32b285d

Browse files
dclauseAkryum
andauthored
feat: custom classes for list wrapper and list items. (#397)
Co-authored-by: Guillaume Chau <[email protected]>
1 parent 64dbe27 commit 32b285d

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,8 @@ When the user scrolls inside RecycleScroller, the views are mostly just moved ar
194194
- `prerender` (default: `0`): render a fixed number of items for Server-Side Rendering (SSR).
195195
- `buffer` (default: `200`): amount of pixel to add to edges of the scrolling visible area to start rendering items further away.
196196
- `emitUpdate` (default: `false`): emit a `'update'` event each time the virtual scroller content is updated (can impact performance).
197+
- `listClass` (default: `''`): custom classes added to the item list wrapper.
198+
- `itemClass` (default: `''`): custom classes added to each item.
197199
- `listTag` (default: `'div'`): the element to render as the list's wrapper.
198200
- `itemTag` (default: `'div'`): the element to render as the list item (the direct parent of the default slot content).
199201

src/components/RecycleScroller.vue

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,20 @@
2424
ref="wrapper"
2525
:style="{ [direction === 'vertical' ? 'minHeight' : 'minWidth']: totalSize + 'px' }"
2626
class="vue-recycle-scroller__item-wrapper"
27+
:class="listClass"
2728
>
2829
<component
2930
:is="itemTag"
3031
v-for="view of pool"
3132
:key="view.nr.id"
3233
:style="ready ? { transform: `translate${direction === 'vertical' ? 'Y' : 'X'}(${view.position}px)` } : null"
3334
class="vue-recycle-scroller__item-view"
34-
:class="{ hover: !skipHover && hoverKey === view.nr.key }"
35+
:class="[
36+
itemClass,
37+
{
38+
hover: !skipHover && hoverKey === view.nr.key
39+
},
40+
]"
3541
@mouseenter="!skipHover && (hoverKey = view.nr.key)"
3642
@mouseleave="!skipHover && (hoverKey = null)"
3743
>
@@ -135,6 +141,16 @@ export default {
135141
type: String,
136142
default: 'div',
137143
},
144+
145+
listClass: {
146+
type: [String, Object, Array],
147+
default: '',
148+
},
149+
150+
itemClass: {
151+
type: [String, Object, Array],
152+
default: '',
153+
},
138154
},
139155
140156
data () {

0 commit comments

Comments
 (0)