|
|
3 лет назад | |
|---|---|---|
| .. | ||
| dist | 3 лет назад | |
| src | 3 лет назад | |
| .eslintrc | 3 лет назад | |
| LICENSE | 3 лет назад | |
| README.md | 3 лет назад | |
| gulpfile.js | 3 лет назад | |
| package.json | 3 лет назад | |
| webpack.dev.config.js | 3 лет назад | |
| webpack.prod.config.js | 3 лет назад | |
smooth-scrollbar for react projects.
React 0.14+
npm install react-smooth-scrollbar smooth-scrollbar --save
http://idiotwu.github.io/react-smooth-scrollbar/
import React from 'react';
import ReactDOM from 'react-dom';
import Scrollbar from 'react-smooth-scrollbar';
class App extends React.Component {
render() {
return (
<Scrollbar
damping={number},
thumbMinSize={number},
syncCallbacks={boolean},
renderByPixels={boolean},
alwaysShowTracks={boolean},
continuousScrolling={boolean},
wheelEventTarget={element},
plugins={object},
onScroll={func},
>
your contents here...
</Scrollbar>
);
}
}
ReactDOM.render(<App />, document.body);
| parameter | type | default | description |
|---|---|---|---|
| damping | number |
0.1 |
Momentum reduction damping factor, a float value between (0, 1). The lower the value is, the more smooth the scrolling will be (also the more paint frames). |
| thumbMinSize | number |
20 |
Minimal size for scrollbar thumbs. |
| renderByPixels | boolean |
true |
Render every frame in integer pixel values, set to true to improve scrolling performance. |
| alwaysShowTracks | boolean |
false |
Keep scrollbar tracks visible. |
| continuousScrolling | boolean |
true |
Set to true to allow outer scrollbars continue scrolling when current scrollbar reaches edge. |
| wheelEventTarget | EventTarget |
null |
Element to be used as a listener for mouse wheel scroll events. By default, the container element is used. This option will be useful for dealing with fixed elements. |
| plugins | object |
{} |
Options for plugins, see Plugin System. |
Confusing with the option field? Try edit tool here!
import { Component } from 'react';
import PropTypes from 'prop-types';
import SmoothScrollbar from 'smooth-scrollbar';
import OverscrollPlugin from 'smooth-scrollbar/plugins/overflow';
import Scrollbar from 'react-smooth-scrollbar';
SmoothScrollbar.use(OverscrollPlugin);
class App2 extends Component {
render() {
return (
<Scrollbar> ... </Scrollbar>
);
}
}
Use ref in parent component:
class Parent extends React.Component {
componentDidMount() {
const { scrollbar } = this.$container;
}
render() {
return (
<Scrollbar ref={c => this.$container = c}>
your content...
</Scrollbar>
);
}
}
Use Context in child component:
class Child extends React.Component {
static contextTypes = {
getScrollbar: React.PropTypes.func
};
componentDidMount() {
this.context.getScrollbar((scrollbar) => {
// ...
});
}
render() {
return <div> this is child component. </div>;
}
}
class App extends React.Component {
render(){
return (
<Scrollbar>
<Child />
</Scrollbar>
);
}
}
MIT.