title: How to Scroll page from point to point
body: <p>The question is simple. I have a single page website and it has six equal (height and width) sections. I have anchor tags placed in top of these sections so that user can jump directly to the specific section using the menu.</p>
  <p>I want the page to scroll between these anchor tags only. So, if a user scrolls the page, it should scroll from anchor tag to anchor tag and not stop in between.</p>
  <p>Points to keep in mind:</p>
  <ol>
  <li><p>CSS SCROLL SNAP is not working somehow because the design is too complicated. And SCROLL SNAP does not work on anchor tags too.</p>
  </li>
  <li><p>I am using a javascript to achieve it perfectly. But the page scrolls passes the multiple anchors after stopping at each anchor tag for a second. So if I could somehow modify the mousedelta or add some function in the current script to STOP SCROLL AFTER REACHING EVERY ANCHOR TAG until the user scrolls again, then it will do the trick. I'm not well versed in Javascript so plz help me out with this script.</p>
  </li>
  </ol>
  <pre><code>var ef = 1;
  if (ef === 1) {
  (function() {
  var delay = false;
  $(document).on('mousewheel DOMMouseScroll', function(event) {
  event.preventDefault();
  if(delay) return;
  delay = true;
  setTimeout(function(){delay = false},800)
  var wd = event.originalEvent.wheelDelta || -event.originalEvent.detail;
  var XZ = &quot;&quot;;
  var a = $(&quot;a:not([href])&quot;).not(XZ.replace(/\b(?=\w)/g, '#'));
  if(wd &lt; 0) {
  for(var i = 0 ; i &lt; a.length ; i++) {
  var t = a[i].getClientRects()[0].top;
  if(t &gt;= 70) break;}}else {
  for(var i = a.length-1 ; i &gt;= 0 ; i--) {
  var t = a[i].getClientRects()[0].top;
  if(t &lt; -70) break;}}
  var time = 750; 
  var qooqee = 'easeInOutQuad';
  $(&quot;html, body&quot;).animate({ scrollTop: $(a[i]).offset().top }, time, qooqee );});})();}}); 
  $(window).load(function(){
  var ef = 1;
  if (ef === 2) {
  (function() {
  $(document).on('mousewheel DOMMouseScroll', function(event) {
  var XZ = &quot;&quot;;
  var a = $(&quot;a:not([href])&quot;).not(XZ.replace(/\b(?=\w)/g, '.')); 
  var x=$(a[a.length-1]).offset();
  var m = (x.top) + 10;
  var fo= $(window).scrollTop();
  fo = fo+500;
  var dox=$(a[0]).offset();
  var dom = (dox.top) + 200;
  var dofo= $(window).scrollTop();
  if (dofo &lt; dom){
  if(event.originalEvent.deltaY &lt; 0) {
  event.preventDefault();
  return;}   }
  if( fo &gt; m ) {
  if(event.originalEvent.deltaY &gt; 0) {
  event.preventDefault();
  return; } }
  $(&quot;body&quot;).css(&quot;opacity&quot;,&quot;0&quot;);
  var timing = 750+550; 
  var fnz = 750+450; 
  setTimeout(function(){ 
  $(&quot;body&quot;).css(&quot;opacity&quot;,&quot;1&quot;);
  }, timing);
  var wd = event.originalEvent.wheelDelta || -event.originalEvent.detail;
  var XZ = &quot;&quot;;
  var a = $(&quot;a:not([href])&quot;).not(XZ.replace(/\b(?=\w)/g, '#'));
  if(wd &lt; 0) {
  for(var i = 0 ; i &lt; a.length ; i++) {
  var t = a[i].getClientRects()[0].top;
  if(t &gt;= 70) break;}}else {
  for(var i = a.length-1 ; i &gt;= 0 ; i--) {
  var t = a[i].getClientRects()[0].top;
  if(t &lt; -70) break;}}
  setTimeout(function(){  
  $(&quot;html, body&quot;).animate({ scrollTop: $(a[i]).offset().top }, 0 );}, fnz);});})();;}});
  jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:&quot;easeOutQuad&quot;,swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)&lt;1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)&lt;1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)&lt;1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)&lt;1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)&lt;1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)&lt;1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g&lt;Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return -(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e},easeOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g&lt;Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return g*Math.pow(2,-10*h)*Math.sin((h*k-i)*(2*Math.PI)/j)+l+e},easeInOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k/2)==2){return e+l}if(!j){j=k*(0.3*1.5)}if(g&lt;Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}if(h&lt;1){return -0.5*(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e}return g*Math.pow(2,-10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j)*0.5+l+e},easeInBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*(f/=h)*f*((g+1)*f-g)+a},easeOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}if((f/=h/2)&lt;1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,f,a,h,g){return h-jQuery.easing.easeOutBounce(e,g-f,0,h,g)+a},easeOutBounce:function(e,f,a,h,g){if((f/=g)&lt;(1/2.75)){return h*(7.5625*f*f)+a}else{if(f&lt;(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f&lt;(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,f,a,h,g){if(f&lt;g/2){return jQuery.easing.easeInBounce(e,f*2,0,h,g)*0.5+a}return jQuery.easing.easeOutBounce(e,f*2-g,0,h,g)*0.5+h*0.5+a}}); ```
     
  </code></pre>