Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pulyaevskiy/parallax-image
A Flutter widget that paints an image and moves it at a slower speed than the main scrolling content.
https://github.com/pulyaevskiy/parallax-image
dartlang flutter parallax-scrolling
Last synced: 6 days ago
JSON representation
A Flutter widget that paints an image and moves it at a slower speed than the main scrolling content.
- Host: GitHub
- URL: https://github.com/pulyaevskiy/parallax-image
- Owner: pulyaevskiy
- License: bsd-3-clause
- Created: 2018-02-19T21:10:35.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-08-17T14:28:58.000Z (over 2 years ago)
- Last Synced: 2024-12-24T01:09:02.347Z (13 days ago)
- Topics: dartlang, flutter, parallax-scrolling
- Language: Dart
- Homepage:
- Size: 5.65 MB
- Stars: 278
- Watchers: 7
- Forks: 32
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-flutter - Parallax Image - Image parallax by [Anatoly Pulyaevskiy](https://github.com/pulyaevskiy). (Components / Image)
README
A Flutter widget that paints an image and moves it at a slower speed than the
main scrolling content.![demo.gif](demo.gif)
## Installation
Add dependency to your `pubspec.yaml`:
```yaml
dependencies:
parallax_image: [latest version]
```## Usage
`ParallaxImage` can be used with any `Scrollable` (`ListView` for instance).
When created, it subscribes to scroll updates on nearest `Scrollable` ancestor.
It is also possible to specify custom `ScrollController` in which case this
widget subscribes to updates on `ScrollController.position` (assumes that
controller is attached to only one `Scrollable`).```dart
class MyWidget extends StatefulWidget {
@override
MyWidgetState createState() => new MyWidgetState();
}class MyWidgetState extends State {
final _controller = new ScrollController();@override
Widget build(BuildContext context) {
return new ListView(controller: _controller, children: [
new ParallaxImage(
image: new AssetImage('images/january.jpg'),
// Extent of this widget in scroll direction.
// In this case it is vertical scroll so extent defines
// the height of this widget.
// The image is scaled with BoxFit.fitWidth which makes it
// occupy full width of this widget.
// After image is scaled it should normally have height greater
// than this value to allow for parallax effect to be
// visible.
extent: 100.0,
// Optionally specify child widget.
child: new Text('January'),
// Optinally specify scroll controller.
controller: _controller,
),
// ...add more list items
]);
}
}
```See `example/` folder for a complete demo.
## Features and bugs
Please file feature requests and bugs at the [issue tracker][issue_tracker].
[issue_tracker]: https://github.com/pulyaevskiy/parallax-image/issues