Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
501 views
in Technique[技术] by (71.8m points)

jquery - Click - delay before navigating

is there any easy way to create a code: if URL changes or clicked on a link show div (like loading gif 3-sec) then show the page? Kinda like blank white page with loading gif spin 3 sec then show the page?

Thanks!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Given a <a class="waitBeforeNavigate" href="somewhere.html">Go somewhere</a>

function waitBeforeNavigate(ev) {
  ev.preventDefault();                    // prevent default anchor behavior
  const goTo = this.getAttribute("href"); // store anchor href

  // do something while timeOut ticks ... 

  setTimeout(function(){
    window.location = goTo;
  }, 3000);                               // time in ms
}); 

document.querySelectorAll(".waitBeforeNavigate")
  .forEach(EL => EL.addEventListener("click", waitBeforeNavigate));

Using jQuery:

$('.waitBeforeNavigate').on("click", function (ev) {
  ev.preventDefault();                // prevent default anchor behavior
  const goTo = $(this).attr("href");  // store anchor href
       
  // do something while timeOut ticks ... 
       
  setTimeout(function(){
    window.location = goTo;
  }, 3000);                           // time in ms
}); 

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...