An open API service indexing awesome lists of open source software.

https://github.com/haoliangwu/ngx-anchor

angular 4+ custom anchor components
https://github.com/haoliangwu/ngx-anchor

anchors angular ngx

Last synced: 5 months ago
JSON representation

angular 4+ custom anchor components

Awesome Lists containing this project

README

          

# ngx-anchor
angular 4+ custom anchor components. [DEMO][demo]

## todos
* [x] custom anchor mark directive
* [x] build-in anchor navigator
* [x] mult anchor level support
* [x] custom animation options
* [ ] ember layout support
* [x] public navigator service

## installing and usage
> ``npm install ngx-anchor --save``

### load module in app module (with or without global configuration)

```
// without configuration
imports: [
...
NgxAnchorModule.forRoot(),
...
]

// with configuration
imports: [
...
NgxAnchorModule.forRoot({
duration: 1000,
step: 10,
sensitivity: 36
}),
...
]
```

### configuration
* ``duration``(number): scroll animation total duration distance
* ``step``(number): the step per requestAnimationFrame
* ``sensitivity``(number): the offset which affects anchor navigator auto-active when trigger scroll events, default is 12px
* ``timeFunc``: scroll animation time function used, signature is
```
funciton timeFunc(step: number, start: number, change: number, duration: number) => number
```

## directives
### ``ngxAnchor``
custom anchor mark

* ``ngxAnchor``(string): anchor custom id

example:
```

main title{{foo}}


```

### ``ngxWithAnchor``
parent anchor mark

* ``ngxWithAnchor``(string): parent anchor id

example:
```

main title{{foo}}

sub main title{{bar}}

```

## components
### ``ngx-anchor-nav``
build-in anchor navigator

* ``anchorTpl``(TemplateRef)

example:
```


{{index}}

```

## services
### AnchorService
#### property
* ``anchors``( { [id: string]: anchor: Anchor} ): all regisitry custom anchor instance
* ``activeAnchor``(Anchor): current active anchor instance
* ``scrollEvents``(Observable): current active anchor Observable

#### method
```
anchorFactory(el: HTMLElement, constraint: AnchorRelConstriant): Anchor
```
anchor instance factory with el

```
get(id: string): Anchor
```
retrive anchor instance by id

```
register(el: HTMLElement, constraint: AnchorRelConstriant)
```
register el as anchor instance

```
scrollTo(anchor: Anchor | string, scrollOptions?: AnchorScrollConfig)
```
scroll to some anchor instance with custom animation options

```
attachListner(el: HTMLElement | Window = window): Observable
```
attach scroll listner to container element, default is ``window``

[demo]: http://littlelyon.com/ngx-anchor/