【スマホ対応】jQuery 連続スワイプイベントをハンドリングする方法

スマートフォンなどで,連続スワイプのハンドリング方法をまとめておきます. 指が触れ始めたときのDOMや,離れた瞬間のDOMは簡単に取得できましたが,「今」指が触れているDOMを取得するのに苦戦しました. 先日行ったデザインリニューアル(YutaroTanaka.com)でも,この方法を使ってスマホのスワイプ対応をしています. ...

パラメタライズドテストケースをGoogleSpeadsheetで管理する

**google-spreadsheets-parser**を使って, スプレッドシートで管理しているデータをテストで使用する. 背景:データの二重管理をなくしたい あるJSモジュールのパラメタライズドテストコードを書いていた. パラメータとそのテスト結果はGoogleSpreadsheetで表管理していて,ビジネス・エンジニア共に使用していた. はじめはSpreadSheet上にそれらの値をJSで扱える形式にconcatenateとかしてコピペしていたが, バリエーションが膨大になり,データ二重管理の問題が発生しメンテナンスに難があった. 普通にパラメタライズドテストを書くとこんな感じ grunt x karma x jasmine の環境構築手順はこちら. # src/user.coffee class User constructor: (@NAME, @age) -> canDrink: -> parseInt(@age) >= 20 # src/userSpec.coffee describe "User", -> describe "#canDrink", -> assertCanDrink = (name, age, canDrink) -> it "Age:#{age}, CanDrink:#{canDrink}", -> user = new User(name, age) expect(user.canDrink()).toBe(canDrink) # ここのバリエーションが増えてくると管理がツラい target = [ {no: 1, name: 'User1', age: 18, canDrink: false} {no: 2, name: 'User2', age: 19, canDrink: false} {no: 3, name: 'User3', age: 20, canDrink: true} {no: 4, name: 'User4', age: 21, canDrink: true} {no: 5, name: 'User5', age: 22, canDrink: true} ] for t in target assertCanDrink(t....