Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
ngx-slickjs
Advanced tools
ngx-slickjs is slick-carousel package for Angular 6+. ngx-slickjs can lazy load slick.js packages
ngx-slickjs is slick-carousel package for Angular 6+. ngx-slickjs can lazy load slick.js packages. ngx-slickjs very small and very stable.
yarn add ngx-slickjs
or
npm install ngx-slickjs
Import module to your main module
import { NgxSlickJsModule } from "ngx-slickjs";
@NgModule({
imports: [
// ...
NgxSlickJsModule.forRoot()
]
})
export class AppModule {}
<div slickContainer id="your-slide-container">
<img slickItem id="your-slide" src="https://placeholder.pics/svg/400" />
<img slickItem id="your-slide-2" src="https://placeholder.pics/svg/400" />
</div>
You can use slick methods. SlickContainerDirective exported with slick
key.
<div slickContainer #slickController="slick">
<img
slickItem
*ngFor="let item of [0,1,2,3,4,5];"
src="https://placeholder.pics/svg/400"
/>
</div>
<button (click)="slickController.next()">Next</button>
<button (click)="slickController.prev()">Previous</button>
<button (click)="slickController.goTo(4)">Go to 4</button>
<button (click)="slickController.play()">Play</button>
<button (click)="slickController.pause()">Pause</button>
<button (click)="slickController.unslick()">Destroy</button>
<button (click)="slickController.initSlick()">Init</button>
import { NgxSlickJsModule } from "ngx-slickjs";
@NgModule({
imports: [
// ...
NgxSlickJsModule
]
})
export class AnotherModule {}
forRoot Options:
Note: The above urls are download lazy. The urls don't increase initial opening time.
Example:
import { NgxSlickJsModule } from "ngx-slickjs";
@NgModule({
imports: [
// ...
NgxSlickJsModule.forRoot({
links: {
jquery: "https://code.jquery.com/jquery-3.4.0.min.js",
slickJs:
"https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js",
slickCss:
"https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css",
slickThemeCss: null // if you are set null, this package won't load
}
})
]
})
export class AppModule {}
Inputs:
Name | Default |
---|---|
slickConfig | undefined |
Outputs:
Event | Params | Description |
---|---|---|
slickAfterChange | event, slick, currentSlide | After slide change callback |
slickBeforeChange | event, slick, currentSlide, nextSlide | Before slide change callback |
slickBreakpoint | event, slick, breakpoint | Fires after a breakpoint is hit |
slickDestroy | event, slick | When slider is destroyed, or unslicked. |
slickInit | event, slick | When Slick initializes for the first time callback. Note that this event should be defined before initializing the slider. |
You can import Slick config type:
import { Slick } from "ngx-slickjs";
slickConfig: Slick.Config = {
infinite: true,
slidesToShow: 4,
slidesToScroll: 2,
dots: true,
autoplay: true,
autoplaySpeed: 2000
};
Option | Type | Default | Description |
---|---|---|---|
accessibility | boolean | true | Enables tabbing and arrow key navigation. Unless autoplay: true , sets browser focus to current slide (or first of current slide set, if multiple slidesToShow ) after slide change. For full a11y compliance enable focusOnChange in addition to this. |
adaptiveHeight | boolean | false | Adapts slider height to the current slide |
appendArrows | string | $(element) | Change where the navigation arrows are attached (Selector, htmlString, Array, Element, jQuery object) |
appendDots | string | $(element) | Change where the navigation dots are attached (Selector, htmlString, Array, Element, jQuery object) |
arrows | boolean | true | Enable Next/Prev arrows |
asNavFor | string | $(element) | Enables syncing of multiple sliders |
autoplay | boolean | false | Enables auto play of slides |
autoplaySpeed | int | 3000 | Auto play change interval |
centerMode | boolean | false | Enables centered view with partial prev/next slides. Use with odd numbered slidesToShow counts. |
centerPadding | string | '50px' | Side padding when in center mode. (px or %) |
cssEase | string | 'ease' | CSS3 easing |
customPaging | function | n/a | Custom paging templates. See source for use example. |
dots | boolean | false | Current slide indicator dots |
dotsClass | string | 'slick-dots' | Class for slide indicator dots container |
draggable | boolean | true | Enables desktop dragging |
easing | string | 'linear' | animate() fallback easing |
edgeFriction | integer | 0.15 | Resistance when swiping edges of non-infinite carousels |
fade | boolean | false | Enables fade |
focusOnSelect | boolean | false | Enable focus on selected element (click) |
focusOnChange | boolean | false | Puts focus on slide after change |
infinite | boolean | true | Infinite looping |
initialSlide | integer | 0 | Slide to start on |
lazyLoad | string | 'ondemand' | Accepts 'ondemand' or 'progressive' for lazy load technique. 'ondemand' will load the image as soon as you slide to it, 'progressive' loads one image after the other when the page loads. |
mobileFirst | boolean | false | Responsive settings use mobile first calculation |
nextArrow | string (html | jQuery selector) | object (DOM node | jQuery object) | <button type="button" class="slick-next">Next</button> | Allows you to select a node or customize the HTML for the "Next" arrow. |
pauseOnDotsHover | boolean | false | Pauses autoplay when a dot is hovered |
pauseOnFocus | boolean | true | Pauses autoplay when slider is focussed |
pauseOnHover | boolean | true | Pauses autoplay on hover |
prevArrow | string (html | jQuery selector) | object (DOM node | jQuery object) | <button type="button" class="slick-prev">Previous</button> | Allows you to select a node or customize the HTML for the "Previous" arrow. |
respondTo | string | 'window' | Width that responsive object responds to. Can be 'window', 'slider' or 'min' (the smaller of the two). |
responsive | array | null | Array of objects containing breakpoints and settings objects (see example). Enables settings at given breakpoint . Set settings to "unslick" instead of an object to disable slick at a given breakpoint. |
rows | int | 1 | Setting this to more than 1 initializes grid mode. Use slidesPerRow to set how many slides should be in each row. |
rtl | boolean | false | Change the slider's direction to become right-to-left |
slide | string | '' | Slide element query |
slidesPerRow | int | 1 | With grid mode initialized via the rows option, this sets how many slides are in each grid row. |
slidesToScroll | int | 1 | # of slides to scroll at a time |
slidesToShow | int | 1 | # of slides to show at a time |
speed | int | 300 | Transition speed |
swipe | boolean | true | Enables touch swipe |
swipeToSlide | boolean | false | Swipe to slide irrespective of slidesToScroll |
touchMove | boolean | true | Enables slide moving with touch |
touchThreshold | int | 5 | To advance slides, the user must swipe a length of (1/touchThreshold) * the width of the slider. |
useCSS | boolean | true | Enable/Disable CSS Transitions |
useTransform | boolean | true | Enable/Disable CSS Transforms |
variableWidth | boolean | false | Disables automatic slide width calculation |
vertical | boolean | false | Vertical slide direction |
verticalSwiping | boolean | false | Changes swipe direction to vertical |
waitForAnimate | boolean | true | Ignores requests to advance the slide while animating |
zIndex | number | 1000 | Set the zIndex values for slides, useful for IE9 and lower |
The responsive option, and value, is quite unique and powerful. You can use it like so:
$(".slider").slick({
// normal options...
infinite: false,
// the magic
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 3,
infinite: true
}
},
{
breakpoint: 600,
settings: {
slidesToShow: 2,
dots: true
}
},
{
breakpoint: 300,
settings: "unslick" // destroys slick
}
]
});
import {LazyLoadService} from 'ngx-slickjs';
constructor(private lazyLoadService: LazyLoadService) {}
ngAfterViewInit(){
this.lazyLoadService
.load(yourScriptUrl, 'script')
.subscribe(() => {
// loaded your script
});
this.lazyLoadService
.load(yourCssUrl, 'style')
.subscribe(() => {
// loaded your css
});
}
FAQs
ngx-slickjs is slick-carousel package for Angular 6+. ngx-slickjs can lazy load slick.js packages
The npm package ngx-slickjs receives a total of 282 weekly downloads. As such, ngx-slickjs popularity was classified as not popular.
We found that ngx-slickjs demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.