お世話になります。
実現したいことははっきりしているのですが、javascriptを触るのが初めてでして、
下記コードをブックマークレットとして動かした場合に、else if以降の処理(vを押した後にcを押した場合)
がなされずに困っております。
javascript
1document.body.addEventListener('keydown', 2 event => { 3 if (event.key === 'v' ) { 4 var m;if(!m){m=setInterval(function(s){scrollBy(0,s||2)},10)} 5 else if(event.key === 'c') { 6 clearInterval(m);m=0} 7 }})
中心となる元々の処理は、
javascript
1javascript:var m;if(!m){m=setInterval(function(s){scrollBy(0,s||2)},10)}else{clearInterval(m);m=0} 2```です。 3これのelseをelse ifに書き換え、キー操作を受け付けてくれそうな感じに書き換えたつもりでいるのですが、 4実際にブックマークレット(Chrome)として動かしてみると、vで動かした後にCを押した場合の処理がなされません。 5 6ただし、 7```javascript 8document.body.addEventListener('keydown', 9 event => { 10 if (event.key === 'v' ) { 11 console.log("Vが押されました")} 12 else if(event.key === 'c') { 13 console.log("Cが押されました")} 14 })
ですと、VやCを押したログがきちんと残ります。
蛇足ですが、
javascript
1document.body.addEventListener('keydown', 2 event => { 3 if (event.key === 'v' ) { 4 var m;if(!m){m=setInterval(function(s){scrollBy(0,s||2)},10)} 5 else if(event.key === 'c') { 6 m=setInterval(function(s){scrollBy(0,s||0)},0)} 7 }})
として、処理部分を0にするよう書き直しても、処理(vを押した後にcを押した場合)がなされませんでした。
根本的に何かを間違えているかもしれず、大変お手数をおかけ致しますが、
else if以降の処理(vで動かした後にcで止める処理)につきご教示下さい。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/11 23:55