2016-04-29 9 views
7

I verwendet Perfect Scrollbar und dann begann ich Angular 2 verwenden, aber ich kann die ähnliche Zugabe nicht finden. Was wäre der richtige Weg, perfekte Scrollbar im Angular 2 Projekt zu implementieren?Angular2 scrollbaren Inhalt

Ich folgte this great example aber ich bin ein bisschen ein verlorenes wie in ngOnInit()

jQuery(this.elementRef.nativeElement).draggable({containment:'#draggable-parent'}); 

dazu = ändern>

$(function() { 
    $('#Demo').perfectScrollbar(); 

Antwort

6

Sie könnten innerhalb einer benutzerdefinierten Richtlinie mit Vanille-js perfekt Scrollbar initialisieren (seit es unterstützt es ;-)) wie folgt aus:

import Ps from 'perfect-scrollable'; 

@Directive({ 
    selector: '[ps]' 
}) 
export class PsDirective { 
    constructor(private elementRef:ElementRef) { 
    } 

    ngAfterViewInit() { 
    Ps.initialize(this.elementRef.nativeElement); 
    } 
} 

Sie können es wie folgt verwenden/anwenden:

@Component({ 
    selector: 'app' 
    template: ` 
    <div ps class="container"> 
     <div class="content"></div> 
    </div> 
    `, 
    styles: [` 
    .content { 
     background-image: url('https://noraesae.github.io/perfect-scrollbar/azusa.jpg'); 
     width: 1280px; 
     height: 720px; 
    } 

    .container { 
     position: relative; 
     margin: 0px auto; 
     padding: 0px; 
     width: 600px; 
     height: 400px; 
    } 
    `], 
    directives: [ PsDirective ] 
}) 
export class App { 
} 

Die Bibliothek muss, bevor diese Weise konfiguriert wurden (CSS und SystemJS):

<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.perfect-scrollbar/0.6.11/css/perfect-scrollbar.min.css"/> 

<script> 
    System.config({ 
    transpiler: 'typescript', 
    typescriptOptions: { emitDecoratorMetadata: true }, 
    map: { 
     'perfect-scrollable': 'https://cdnjs.cloudflare.com/ajax/libs/jquery.perfect-scrollbar/0.6.11/js/min/perfect-scrollbar.min.js' 
    }, 
    packages: { 
     'app': { 
     defaultExtension: 'ts' 
     } 
    } 
    }); 
    System.import('app/main') 
     .then(null, console.error.bind(console)); 
</script> 

Sehen Sie diese plunkr: https://plnkr.co/edit/S8DJpHFVNFioklTl1xg6?p=preview.

+1

Hallo ich es versucht, aber es sagt, perfekt-Scrollbar keine Standardexport hat – axcl

+0

Sie entweder eine Typdefinitionsdatei für perfekte schreiben -scrollbar oder Sie können [Angular2-Ziehen-Scrollen] (https://github.com/bfwg/angular2-drag-scroll) verwenden, das eine Angular2-Bibliothek zum Ziehen von Inhalts-Scrolling ist. –

0

Angular2-drag-scroll ist die Bibliothek, die Sie

Anwendungsbeispiel suchen:

<style> 
    .demo-one { 
    height: 260px; 
    background-color: #FFFFFF; 
    } 
</style> 

<div drag-scroll drag-scroll-y-disabled="true" scrollbar-hidden="true" > 
    <img *ngFor="let image of imagelist" [src]="'assets/img/' + image" /> 
</div> 

ich die Anwendung "drag-Scroll", um die div so alles in Seite dieser div wird ziehbar und hat das Attribut Überlauf: blättern usw.

Setting "drag-scroll-y-disabled" true wird y-Achse scrollen/ziehen deaktivieren.

Einstellung "Scrollbar-hidden" auf true wird die Bildlaufleiste ausblenden.

Scroll

Github Seite: https://github.com/bfwg/angular2-drag-scroll

Demo-Site: https://bfwg.github.io/angular2-drag-scroll/

+0

Dies ist mit Winkel 4 veraltet. –

+1

@KrishnaKarki Die neueste Version ist kompatibel mit Angular 4. –

Verwandte Themen