2016-04-29 97 views
7

我使用Perfect Scrollbar然后我开始使用Angular 2,但是我找不到类似的添加。在Angular 2项目中实现完美滚动条的正确方法是什么?Angular2可滚动内容

我跟着this great example,但我有点丢失如何ngOnInit()

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

更改此设置=>

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

回答

6

你可以用香草JS自定义指令中初始化完美的滚动条(自它支持它;-))像这样:

import Ps from 'perfect-scrollable'; 

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

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

您可以使用/应用这样的:

@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 { 
} 

库必须这样(CSS和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> 

看到这个plunkr:https://plnkr.co/edit/S8DJpHFVNFioklTl1xg6?p=preview

+1

你好,我尝试过,但它是说完美,滚动条没有默认出口 – axcl

+0

您可以编写完美的类型定义文件滚动条或者你可以使用[Angular2-drag-scroll](https://github.com/bfwg/angular2-drag-scroll)这是一个Angular2库来拖动内容滚动。 –

0

Angular2-drag-scroll是你正在寻找

用例:

<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> 

我申请“拖拽滚动”到div所以一切都在这个div的方将 拖动的并具有属性溢出:滚动等。

将“drag-scroll-y-disabled”设置为true将禁用y轴滚动/拖动。

将“scrollbar-hidden”设置为true会隐藏滚动条。

Scroll

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

演示站点:https://bfwg.github.io/angular2-drag-scroll/

+0

这是弃用角4 4. –

+1

@KrishnaKarki最新版本与Angular 4兼容。 –