All Projects → bfwg → Ngx Drag Scroll

bfwg / Ngx Drag Scroll

Licence: mit
A lightweight responsive Angular carousel library

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to Ngx Drag Scroll

Splide
Splide is a lightweight, powerful and flexible slider and carousel, written in pure JavaScript without any dependencies.
Stars: ✭ 786 (+169.18%)
Mutual labels:  drag, carousel
Ngx Drag To Select
A lightweight, fast, configurable and reactive drag-to-select component for Angular 6 and beyond
Stars: ✭ 262 (-10.27%)
Mutual labels:  drag
react-native-carousel
React Native carousel
Stars: ✭ 35 (-88.01%)
Mutual labels:  carousel
DragDemo
需求解决系列一之移动卡片实现答题功能,移动卡片插入到题干之中完成答题
Stars: ✭ 63 (-78.42%)
Mutual labels:  drag
ui-carousel
🎨 Angular carousel Component 🔥
Stars: ✭ 84 (-71.23%)
Mutual labels:  carousel
react-styled-carousel
React styled components carousel or slide show. No external css import is required.
Stars: ✭ 42 (-85.62%)
Mutual labels:  carousel
SJCenterFlowLayout
Carousel flow layout for UICollectionView on iOS.
Stars: ✭ 34 (-88.36%)
Mutual labels:  carousel
Flutter swiper
The best swiper for flutter , with multiple layouts, infinite loop. Compatible with Android & iOS.
Stars: ✭ 3,209 (+998.97%)
Mutual labels:  carousel
Flutter dough
This package provides some widgets you can use to create a smooshy UI.
Stars: ✭ 254 (-13.01%)
Mutual labels:  drag
zSlider
A pure JavaScript Carousel/Slider plugin that works well at Mobile/PC
Stars: ✭ 12 (-95.89%)
Mutual labels:  carousel
react-gesture-gallery
a react image gallery with gesture support
Stars: ✭ 14 (-95.21%)
Mutual labels:  carousel
CarouselGifViewer
Efficiently display a list of GIFs in a carousel (RecyclerView).
Stars: ✭ 33 (-88.7%)
Mutual labels:  carousel
Bottom Sheet
⬆️ A SwiftUI view component sliding in from bottom
Stars: ✭ 252 (-13.7%)
Mutual labels:  drag
vue-simple-upload-component
A simple upload component for Vue.js 2.x
Stars: ✭ 14 (-95.21%)
Mutual labels:  drag
Ngu Carousel
Angular Universal carousel
Stars: ✭ 263 (-9.93%)
Mutual labels:  carousel
subjx
Drag/Resize/Rotate Javascript library
Stars: ✭ 155 (-46.92%)
Mutual labels:  drag
image-uploader
Simple Drag & Drop image uploader plugin to static forms, without using AJAX
Stars: ✭ 70 (-76.03%)
Mutual labels:  drag
tiny-wheels
一套基于原生JavaScript开发的组件库,无依赖、体积小、简单易用
Stars: ✭ 60 (-79.45%)
Mutual labels:  carousel
Ttgemojirate
An emoji-liked rating view for iOS, implemented in Swift3.
Stars: ✭ 284 (-2.74%)
Mutual labels:  drag
Recyclerviewevent
RecyclerView onItemClick、onItemLongClick、drag、swipe、divider、reuse disorder RecyclerView 梳理:点击&长按事件、分割线、拖曳排序、滑动删除、优雅解决 EditText 和 CheckBox 复用错乱问题
Stars: ✭ 265 (-9.25%)
Mutual labels:  drag

Angular Draggable Carousel

Lightweight drag to scroll carousel for Angular

Maintainers wanted

npm version Monthly Download Build Status License MIT

Scroll on drag!

Scroll

Try out the demo!

Install

You can get it on npm.

npm install ngx-drag-scroll --save

Requirements

This project needs Angular 5+ as dependencies though.

Setup

You'll need to add DragScrollModule to your application module.

import { DragScrollModule } from 'ngx-drag-scroll';
...

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    DragScrollModule,
    ...
  ],
  providers: [],
  bootstrap: [AppComponent]
})

export class AppModule {
}

Add the drag-scroll attribute to a scrollable element:

@Component({
  selector: 'sample',
  template:`
  <drag-scroll style="width: 100px; height: 10px">
    Big text goes here...
  </drag-scroll>
  `,
  styles: [`
    drag-scroll {
      height: 50px
      width: 100px
    }
    `]
})
class SampleBigText {}

That's it! Now you can scroll it by dragging.

If you want to group items into a carousel, you will need to add drag-scroll-item to the carsousel items.

@Component({
  selector: 'sample',
  template:`
  <drag-scroll>
    <img drag-scroll-item src="some-url" />
    <img drag-scroll-item src="some-url" />
    <img drag-scroll-item src="some-url" />
  </drag-scroll>
  `,
  styles: [`
    drag-scroll {
      height: 50px
      width: 100px
    }
    img {
      height: 50px
      width: 50px
    }
    `]
})
class SampleCarousel {}

API REFERENCE

DragScrollComponent

Name Type Description Default
scrollbar-hidden @Input Whether the scroll bar for this element is hidden. false
drag-scroll-disabled @Input Whether all draging and scrolling events is disabled. false
drag-scroll-x-disabled @Input Whether horizontally dragging and scrolling events is disabled. false
scroll-x-wheel-enabled @Input Whether scrolling horizontally with mouse wheel is enabled false
drag-scroll-y-disabled @Input Whether vertically dragging and scrolling events is disabled. false
drag-disabled @Input Whether draging is disabled. false
snap-disabled @Input Whether snapping is disabled. false
snap-offset @Input Pixels of previous element to show on snap or moving left and right. 0
snap-duration @Input Duration of snap animation in milliseconds. 500
reachesLeftBound @Output Whether reaching the left carousel bound. n/a
reachesRightBound @Output Whether reaching the right carousel bound. n/a
dragStart @Output Executes when drag start. n/a
dragEnd @Output Executes when drag end. n/a
snapAnimationFinished @Output The snap animation for the new selection has finished. n/a
indexChanged @Output Executes when the current index of the carousel changes. n/a
dsInitialized @Output Executes when the drag scroll component has been initialized. n/a

DragScrollItemDirective

Name Type Description Default
drag-disabled @Input Whether draging on the item is disabled. false

Add navigation button

@Component({
  selector: 'sample',
  template:`
  <drag-scroll #nav>
    <img drag-scroll-item src="some-url" />
    <img drag-scroll-item src="some-url" />
    <img drag-scroll-item src="some-url" />
  </drag-scroll>
  <button (click)="moveLeft()">Left</button>
  <button (click)="moveRight()">Right</button>
  <button (click)="moveTo(2)">Last</button>
  `
})
class Sample {
  @ViewChild('nav', {read: DragScrollComponent}) ds: DragScrollComponent;
  
  moveLeft() {
    this.ds.moveLeft();
  }

  moveRight() {
    this.ds.moveRight();
  }

  moveTo(index) {
    this.ds.moveTo(index);
  }

  ngAfterViewInit() {
    // Starting ngx-drag-scroll from specified index(3)
    setTimeout(() => {
      this.ds.moveTo(3);
    }, 0);
  }
}

Contributing

Clone the repository, and run npm install, npm run build ngx-drag-scroll, npm start. The demo app will starts on port :4200. I usually do my development on the demo app.

I'll accept pretty much everything so feel free to open a Pull-Request.

We use commitlint for managing our commits. Check out Contributing for more details.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].