JSPM

beez-touch

0.3.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q26778F

Touch event plug-in for Beez

Package Exports

  • beez-touch

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (beez-touch) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

beez-touch

English document is here


About

beez-touchはCyberAgent/beezのプラグインライブラリです。Viewにモバイルブラウザ用にtap機能を付加するライブラリです。 beez-touchによって拡張されたViewを使用することで、以下の様に簡単にDOM要素に対してtapイベントを付与することができます。

Features

  • beez.Viewにtap機能を付加します。
  • beezを使った継承を前提にしているため、継承先のメンバ、メソッドを汚染しないように関数名、メンバ変数、オプションにプレフィックスを付加しています。
  • PCブラウザ等Touch系のイベントが存在しない場合、代わりにMouse系イベントを利用して擬似的なTouch系イベントを作成します。
var $btn = $('#button');
this.tap($btn, function onTap(e) {
  console.log('button tapped!');
}, this);

Usage

beez-touchが提供するViewを継承して新しくViewを作成します。

var EntityView = beez.touch.View.extend(
  'beez.touch',
  {
    vidx: 'touch-view',

    render: function () {
      EntityView.__super__.render.apply(this, arguments);

      this.getParent().$el.append(this.$el);
    },

    after: function () {
      EntityView.__super__.after.apply(this, arguments);

      // 要素を取得してtap機能を付与
      var $btn = $('#btn', this.$el);
      this.tap($btn, function (e) {
        console.log('button tapped!');
      }, this);
    }
  }
);

// optionを渡してインスタンスを生成
beez.manager.v.create(EntityView, {
  bztch: {
    hoverClassName: 'hover',
    preventDefault: false,
    threshold: 10
  }
});

Requirements

Options

インスタンスを作る際にoptionを渡すことでカスタマイズすることができます

bztch.hoverClassName {String}

hover時に付与するclassName

bztch.preventDefault {Boolean}

デフォルトの挙動を停止するか

bztch.threshold {Number}

タップキャンセルを発火する移動量

bztch.holdDuration {Number}

タップホールドを発火する時間(ms)

Method

tap($element, callback, context, options)

tap($elm, function () {
  // do something
}, this, {
  tapStart: function () {
    // do something
  },
  tapMove: function () {
    // do something
  },
  tapEnd: function () {
    // do something
  }
});

$elment {Elements}

  • tap対象となる要素(jQueryオブジェクトであること)

callback {Function}

  • tap時に実行されるコールバック関数

context {Object}

  • コールバック関数に渡す実行コンテキスト

options.tapStart {Object}

  • touchstartに対するイベントを設定します

options.tapMove {Object}

  • touchmoveに対するイベントを設定します

options.tapEnd {Object}

  • touchendに対するイベントを設定します

options.tapHold {Object}

  • 一定時間タッチを続けた時に発火するイベントに対するコールバックを指定します

options.holdDuration

  • タップホールドイベントを発火する時間を指定します

longTap($elm, callback, context, options)

  • 長押しに対するコールバックを指定します

Restriction

tapイベントは単Viewのrootに該当する$elでキャッチされるため、tap対象となる要素は必ず$el配下に配置されている必要があります。

Test

$ npm install -g grunt-cli
$ npm install .
$ bower install
$ npm install -g beez-foundation
$ beez-foundation -s

## Mode: [Stand-alone]

##
## Start
##              Beez Foundation Servers!!
##
##
##      Mock Server [ off ]
##
##      Express server listening on port:1109
##              Static Server start [ success ]
##              compress: [on]
##              Please try to access.
##                      http://0.0.0.0:1109
##

open browser Test page. http://0.0.0.0:1109/m/beez-touch/spec/all.html

Test Page

Build

$ npm install -g grunt-cli
$ npm install .
$ bower install
grunt

LICENSE

@see : LICENSE