私はこれまでReveal.jsが大好きです。ただし、私が抱えている問題の1つは、ワイヤレスプレゼンテーションのリモコンが、通常どおり、左矢印または右矢印のキーストロークしか生成できないことです。私のReveal.jsスライドデッキは、フラグメントだけでなく、その2次元機能を多用しています。つまり、私のリモコンは右に行くだけで、下には行かないということです。
Reveal.js APIは、フラグメントを考慮して、「右矢印」が最初に可能であれば下に進み、次に右に進むように、何かを配線するのに十分な強度が必要なようです。残念ながら、私のJS-fuはそれほど強くないので、他の誰かが以前にこのようなことをしたことがあり、いくつかの指針を持っているかどうか尋ねると思いました。よりうまく機能する他のアプローチがあれば、私もそれを受け入れます。キーボードに物理的に縛られたくないだけです。
必要なのは、右矢印キーのデフォルトのバインディングである「right」ではなく「next」に移動することです。これは、デフォルトのキーバインディングをオーバーライドすることで実現できます。ここにいくつかのドキュメントがあります: https://github.com/hakimel/reveal.js/#keyboard-bindings
あなたの場合、右矢印キー(キーコード39)を「次へ」にバインドし、おそらく左矢印キー(キーコード37)をオーバーライドして「前」にバインドする必要があります。サンプルコードは次のとおりです(これをReveal.initialize構成に追加し、ファイルの終わりを追加します)。
keyboard: {
39: 'next',
37: 'prev'
}
これは私のために働いた。
Reveal.configure({
keyboard: {
38: 'next',
40: 'prev'
}
});
reveal.jsにはリモートが組み込まれています! READMEの dependencies を見ると、Reveal.initialize
の最後の項目は、リモートをアクティブ化するためのオプションです。スキャンできるQRコードがポップアップ表示されます。プレゼンテーションと同期するためのWebサイト(ローカルのwifi/bluetoothではなく、インターネット経由)を使用して、タッチスクリーンデバイスでプレゼンテーションを制御できます。リモートを使用するために特別に合理化されたアプリ(iOS用)もあります。それはRemotesLiteと呼ばれていると思います。
リモートを使用する場合、タップはスペースバーに相当し、左/右/上/下にスワイプすると左/右/上/下になり、ピンチイン/アウトは概要モードのアクティブ化/非アクティブ化です。
お役に立てれば!
更新2014年4月21日
最新バージョンのRevealには、プレゼンターのリモートサポートが組み込まれているように見えます。最近、Targusプレゼンテーションリモコンでプレゼンテーションを行いましたが、箱から出してすぐに機能しました。
提案された解決策は、問題を部分的にしか修正しません。上矢印キーと下矢印キーを再マップするか、左矢印キーと右矢印キーを再マップします。プレゼンターがリモートで発行するキーがわからない場合は、すべてを再マップするだけです。
// Either Reveal.initialize({ ... or
Reveal.configure({
keyboard: {
37: 'prev',
38: 'prev',
39: 'next',
40: 'next'
}
})
概要モード(o
を使用)に切り替える場合でも、vim
キーバインディングh
、j
、k
、およびl
を使用して、左、上、下、および右に移動できます。
この構成を使用すると、すべてのプレゼンターリモートが機能することを確認できます。
スライドを正しい順序で設定していることを確認する必要がありますが、 Logitech R8 はすべてのフラグメントを実行し、正しく順序付けます(スライドの下にサブコンテンツがある場合は、[次へ]をクリックするとそれらが表示されます)再び右に行く前に)。
より高度な「プレゼンターモード」を実装しました( cloudogu/Continuous-delivery-slides を参照)。
,
を使用して切り替えることができます。それはあなたのページをリロードしても生き残ります。
リロード後にプレゼンターモードをオフにする場合は、 このコミット を参照してください。
Reveal.initialize({
keyboard: {
188: () => setPresenterMode(true)
}
});
setPresenterMode(false);
function setPresenterMode(toggle) {
const storage = localStorage;
const storageKey = 'presenterMode';
if (toggle) {
storage.setItem(storageKey, JSON.stringify(!JSON.parse(storage.getItem(storageKey))));
}
const presenterMode = JSON.parse(storage.getItem(storageKey));
if (presenterMode) {
Reveal.addKeyBinding({keyCode: 39}, 'next');
Reveal.addKeyBinding({keyCode: 37}, 'prev');
} else {
Reveal.removeKeyBinding(37);
Reveal.removeKeyBinding(39);
}
console.log(`Set presenter mode: ${storage.getItem(storageKey)}`);
}