steven.tlvweb.comをご覧ください。
左右のキーボード矢印がフローを制御するように実装したいと思います。
現在、スクロール ホイールは動作し、コンストラクターで次のように設定されています。
/* ImageFlow Constructor */
/* add mouse wheel events ==== */
if (window.addEventListener)
this.oc.addEventListener('DOMMouseScroll', function(e) {
if (e.preventDefault) e.preventDefault();
this.parent.scroll(-e.detail);
return false;
}, false);
this.oc.onmousewheel = function () {
this.parent.scroll(event.wheelDelta);
return false;
}
imageflow.prototype のさらに下のコードは次のとおりです。
/* ==== mousewheel scrolling ==== */
scroll : function (sc) {
if (sc < 0) {
if (this.view < this.NF - 1) this.calc(1);
} else {
if (this.view > 0) this.calc(-1);
}
},
そこで、コンストラクターのコードをいくつか書きました。
this.oc.onkeydown=function(){
this.parent.keypress(event.keyCode);
return false;
}
そして imageflow.prototype に以下を含めました:
/* ==== arrow keys ==== */
keypress : function(kp) {
switch (kp) {
case 39: //right Key
if (this.view < this.NF - 1) { //if not at far right of gallery
this.calc(1); //move gallery left
break;
}
case 37: //left Key
if (this.view > 0) { //if not at far left of gallery
this.calc(-1); //move gallery left
break;
}
}
},
注:実際には現在、imageflow コンストラクターにコードがありますが、機能しません (まとめて削除しても効果はありません)。
/* ==== right arrow ==== */
this.arR.onclick = this.arR.ondblclick = function () {
if (this.parent.view < this.parent.NF - 1)
this.parent.calc(1);
}
/* ==== Left arrow ==== */
this.arL.onclick = this.arL.ondblclick = function () {
if (this.parent.view > 0)
this.parent.calc(-1);
}
比較的基本的な何かが欠けていると思います。