javascript press key function

Viewed 38

I want to add my javascript a key press function because my script run automaticaly

I want it when i press a specific key it will run and stop

The JS will not run / run automaticaly until i press "a"

When I press "a" it will run;

When I press "e" it will stop.

Can you add it to my javascript, Thanks.

here is the code bellow:

var currentpos = 0,
  alt = 1,
  curpos1 = 0,
  curpos2 = -1

function initialize() {
  startit()
}

function scrollwindow() {
  if (document.all)
    temp = document.body.scrollTop
  else
    temp = window.pageYOffset
  if (alt == 0)
    alt = 1
  else
    alt = 0
  if (alt == 0)
    curpos1 = temp
  else
    curpos2 = temp
  if (curpos1 != curpos2) {
    if (document.all)
      currentpos = document.body.scrollTop + 1
    else
      currentpos = window.pageYOffset + 1
    window.scroll(0, currentpos)
  } else {
    currentpos = 0
    window.scroll(0, currentpos)
  }
}

function startit() {
  setInterval("scrollwindow()", 10) // change the value for speed the bigger the slow
}

window.onload = initialize
<header id="top"></header>
<main>
  <article>
    <!-- long form content here -->
  </article>
  <br>
  <h1 id="chapter-heading">My Plug-in Spirit Ring</h1>
  </br>
  <div class=mp3>
    <audio controls autoplay loop>
        <source src="bg.mp3" type="audio/mpeg">
    </audio>
  </div>
  <div style="font-size:0; position: absolute; left: 20%; top: 10%">
    <img src="Cover.png" />
    <img src="1.png" />
    <img src="2.png" />
    <img src="3.png" />
    <img src="4.png" />
    <img src="Thanks.gif" />
  </div>
</main>

Thank you!

3 Answers

add in javascript file

document.addEventListener('keydown', function (e) {
    console.log('key', e); // look at
    if (e.code === 'KeyA') { // it is possible so
      // todo
      console.log('press a')
    }
    if (e.key === 'e') { // it is possible and so
      // todo
    }
    console.log('press e')
  })

I would do this by creating a boolean value called "shouldScroll" and then using event listeners on your desired buttons to set the value of that variable. Then in your interval check to see if the boolean is true before calling your page scrolling function.

var currentpos = 0,
  alt = 1,
  curpos1 = 0,
  curpos2 = -1
  
 
var shouldScroll = false;

document.addEventListener('keydown', (event) => {
  if(event.key === 'a'){
    event.preventDefault();
    shouldScroll = true;
  } 
  
  if(event.key === 'e'){
    event.preventDefault();
    shouldScroll = false;
  }
});


function initialize() {
  startit()
}

function scrollwindow() {
  if (document.all)
    temp = document.body.scrollTop
  else
    temp = window.pageYOffset
  if (alt == 0)
    alt = 1
  else
    alt = 0
  if (alt == 0)
    curpos1 = temp
  else
    curpos2 = temp
  if (curpos1 != curpos2) {
    if (document.all)
      currentpos = document.body.scrollTop + 1
    else
      currentpos = window.pageYOffset + 1
    window.scroll(0, currentpos)
  } else {
    currentpos = 0
    window.scroll(0, currentpos)
  }
}

function startit() {
  setInterval(()=> shouldScroll && scrollwindow(), 10) // change the value for speed the bigger the slow
}
window.onload = initialize
main {
  height: 4000px;
}
<header id="top"></header>
<main>
  <article>
    <!-- long form content here -->
  </article>
  <br>
  <h1 id="chapter-heading">My Plug-in Spirit Ring</h1>
  </br>
  <div class=mp3>
    <audio controls autoplay loop>
        <source src="bg.mp3" type="audio/mpeg">
    </audio>
  </div>

  <div style="font-size:0; position: absolute; left: 20%; top: 10%">
    <img src="Cover.png" />
    <img src="1.png" />
    <img src="2.png" />
    <img src="3.png" />
    <img src="4.png" />
    <img src="Thanks.gif" />
  </div>
</main>

Related