Skip to content

Commit 0b02b97

Browse files
committed
Add customizable classnames for bar and container
1 parent dc2dc89 commit 0b02b97

3 files changed

Lines changed: 19 additions & 3 deletions

File tree

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ then open [http://localhost:8003](http://localhost:8003).
9191
className={String}
9292
style={Object}
9393
contentClassName={String}
94+
containerClassName={String}
95+
scrollbarClassName={String}
9496
contentStyle={Object}
9597
horizontal={Boolean}
9698
horizontalContainerStyle={Object}
@@ -132,6 +134,12 @@ Inline styles applied to the main scroll area component.
132134
#### contentClassName
133135
CSS class names added to element with scroll area content.
134136

137+
#### containerClassName
138+
CSS class name added to scrollbar container element.
139+
140+
#### scrollbarClassName
141+
CSS class name added to scrollbar element.
142+
135143
#### contentStyle
136144
Inline styles applied to element with scroll area content.
137145

src/js/ScrollArea.jsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ export default class ScrollArea extends React.Component {
9999
onPositionChange={this.handleScrollbarYPositionChange.bind(this)}
100100
containerStyle={this.props.verticalContainerStyle}
101101
scrollbarStyle={this.props.verticalScrollbarStyle}
102+
className={this.props.scrollbarClassName}
103+
containerClassName={this.props.containerClassName}
102104
smoothScrolling={withMotion}
103105
minScrollSize={this.props.minScrollSize}
104106
onFocus={this.focusContent.bind(this)}
@@ -115,6 +117,8 @@ export default class ScrollArea extends React.Component {
115117
onPositionChange={this.handleScrollbarXPositionChange.bind(this)}
116118
containerStyle={this.props.horizontalContainerStyle}
117119
scrollbarStyle={this.props.horizontalScrollbarStyle}
120+
className={this.props.scrollbarClassName}
121+
containerClassName={this.props.containerClassName}
118122
smoothScrolling={withMotion}
119123
minScrollSize={this.props.minScrollSize}
120124
onFocus={this.focusContent.bind(this)}
@@ -454,6 +458,8 @@ ScrollArea.propTypes = {
454458
style: React.PropTypes.object,
455459
speed: React.PropTypes.number,
456460
contentClassName: React.PropTypes.string,
461+
scrollbarClassName: React.PropTypes.string,
462+
containerClassName: React.PropTypes.string,
457463
contentStyle: React.PropTypes.object,
458464
vertical: React.PropTypes.bool,
459465
verticalContainerStyle: React.PropTypes.object,

src/js/Scrollbar.jsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,13 @@ class ScrollBar extends React.Component {
5959
}
6060

6161
render(){
62-
let {smoothScrolling, isDragging, type, scrollbarStyle, containerStyle} = this.props;
62+
let {smoothScrolling, isDragging, type, scrollbarStyle, className, containerStyle, containerClassName} = this.props;
6363
let isVoriziontal = type === 'horizontal';
6464
let isVertical = type === 'vertical';
6565
let scrollStyles = this.createScrollStyles();
6666
let springifiedScrollStyles = smoothScrolling ? modifyObjValues(scrollStyles, x => spring(x)) : scrollStyles;
6767

68-
let scrollbarClasses = `scrollbar-container ${isDragging ? 'active' : ''} ${isVoriziontal ? 'horizontal' : ''} ${isVertical ? 'vertical' : ''}`;
68+
let scrollbarClasses = `scrollbar-container ${containerClassName || ''} ${isDragging ? 'active' : ''} ${isVoriziontal ? 'horizontal' : ''} ${isVertical ? 'vertical' : ''}`;
6969

7070
return (
7171
<Motion style={springifiedScrollStyles}>
@@ -77,7 +77,7 @@ class ScrollBar extends React.Component {
7777
ref={ x => this.scrollbarContainer = x }
7878
>
7979
<div
80-
className="scrollbar"
80+
className={`scrollbar ${className || ''}`}
8181
style={{ ...scrollbarStyle, ...style }}
8282
onMouseDown={this.handleMouseDown.bind(this)}
8383
/>
@@ -167,6 +167,8 @@ ScrollBar.propTypes = {
167167
realSize: React.PropTypes.number,
168168
containerSize: React.PropTypes.number,
169169
position: React.PropTypes.number,
170+
className: React.PropTypes.string,
171+
containerClassName: React.PropTypes.string,
170172
containerStyle: React.PropTypes.object,
171173
scrollbarStyle: React.PropTypes.object,
172174
type: React.PropTypes.oneOf(['vertical', 'horizontal']),

0 commit comments

Comments
 (0)