Git Product home page Git Product logo

svelte-hammer's Introduction

Hammer.js wrapper for Svelte to support some operation in the mobile.

This is directive of svelte for Hammer.js 2.x.

This is easy for using Hammer.js. It just use directive of svelte.

Install

This library support Svelte >= 3.0. And use Hammer.js > 2.x.

NPM

npm install svelte-hammer
or
yarn add svelte-hammer

rollup config

When this library use in rollup, you need some config:

// rollup.config.js
export default {
  // ...
  plugins: [
    // ...
    commonjs({
      namedExports: { 'svelte-hammer': ['Hammer', 'pan', 'pinch', 'press', 'rotate', 'swipe', 'tap'] }
    }),
    // ...
  ]
}

Usage

See Hammer.js documentation for all available events.

<script>
  import { pan } from 'svelte-hammer'
</script>
<div
  use:pan
  on:panstart={({ detail }) => /* Pan Start */}
  ...
>
</div>
<script>
  import svelteHammer from 'svelte-hammer'
</script>
<div
  use:svelteHammer.pan
  on:panstart={({ detail }) => /* Pan Start */}
  ...
>
</div>

detail is hammer.js event object

You take choose one.

Pan

<script>
  import { pan } from 'svelte-hammer'
</script>
<div
  use:pan
  on:panstart={({ detail }) => /* Pan Start */}
  on:panmove={({ detail }) => /* Pan Move */}
  on:panend={({ detail }) => /* Pan End */}
>
</div>

Directives

  • on:pan: Detect all pan event
  • on:panstart: Detect start pan event
  • on:panmove: Detect move pan event
  • on:panend: Detect end pan event
  • on:pancancel: Detect cancel pan event
  • on:panleft: Detect left pan event
  • on:panright: Detect right pan event
  • on:panup: Detect up pan event
  • on:pandown: Detect down pan event

Pinch

<script>
  import { pinch } from 'svelte-hammer'
</script>
<div
  use:pinch
  on:pinchstart={({ detail }) => /* Pinch Start */}
  on:pinchmove={({ detail }) => /* Pinch Move */}
  on:pinchend={({ detail }) => /* Pinch End */}
>
</div>

Directives

  • on:pinch: Detect all pinch event
  • on:pinchstart: Detect start pinch event
  • on:pinchmove: Detect move pinch event
  • on:pinchend: Detect end pinch event
  • on:pinchcancel: Detect cancel pinch event
  • on:pinchin: Detect in pinch event
  • on:pinchout: Detect out pinch event

Press

<script>
  import { press } from 'svelte-hammer'
</script>
<div
  use:press
  on:press={({ detail }) => /* Press */}
  on:pressup={({ detail }) => /* Press Up */}
>
</div>

Directives

  • on:press: Detect press event
  • on:pressup: Detect up press event

Rotate

<script>
  import { rotate } from 'svelte-hammer'
</script>
<div
  use:rotate
  on:rotatestart={({ detail }) => /* Rotate Start */}
  on:rotatemove={({ detail }) => /* Rotate Move */}
  on:rotateend={({ detail }) => /* Rotate End */}
>
</div>

Directives

  • on:rotate: Detect all rotate event
  • on:rotatestart: Detect start rotate event
  • on:rotatemove: Detect move rotate event
  • on:rotateend: Detect end rotate event
  • on:rotatecancel: Detect cancel rotate event

Swipe

<script>
  import { swipe } from 'svelte-hammer'
</script>
<div
  use:swipe
  on:swipeleft={({ detail }) => /* Swipe Left */}
  on:swiperight={({ detail }) => /* Swipe Right */}
  on:swipeup={({ detail }) => /* Swipe Up */}
  on:swipedown={({ detail }) => /* Swipe Down */}
>
</div>

Directives

  • on:swipe: Detect all swipe event
  • on:swipeleft: Detect left swipe event
  • on:swiperight: Detect right swipe event
  • on:swipeup: Detect up swipe event
  • on:swipedown: Detect down swipe event

Tap

<script>
  import { tap } from 'svelte-hammer'
</script>
<div
  use:tap
  on:tap={({ detail }) => /* Tap */}
>
</div>

Directives

  • on:tap: Detect tap event

Using Custom Options

Using custom recognizer options such as direction and threshold:

<script>
  import { Hammer, swipe } from 'svelte-hammer'
</script>
<div
  use:swipe={{ direction: Hammer.DIRECTION_ALL }}
  on:swipeleft={({ detail }) => /* Swipe Left */}
  on:swiperight={({ detail }) => /* Swipe Right */}
  on:swipeup={({ detail }) => /* Swipe Up */}
  on:swipedown={({ detail }) => /* Swipe Down */}
>
</div>

All gestures same usage.

License

MIT

Author

Hyo Bum Lee

svelte-hammer's People

Contributors

beomy avatar jeffjose avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.