javascript - How to trigger automatic page scroll on a particular page position with sound -


i trying create interactive web comic (in html, css , javascript) want trigger automatic page scroll down @ defined speed 1 point point, make sequential animation using multiple jpg images.

in simple words, when reader scrolls , reaches (my defined) position of page, page automatically force scrolls page further down @ pre-defined point.

exactly did in web toon: http://comic.naver.com/webtoon/detail.nhn?titleid=350217&no=31

i want trigger sound effects, did in above mentioned link...

i tried accomplish using following script, unable control start , stop position scroll. plus want scroll once on single page load.

<script language=javascript1.2>  //change 1 integer alter scroll speed. greater faster    var speed=1    var currentpos=0,alt=1,curpos1=0,curpos2=-1    function initialize(){    startit()    }    function scrollwindow(){    if (document.all &&    !document.getelementbyid)    temp=document.body.scrolltop    else    temp=window.pageyoffset    if (alt==0)    alt=2    else    alt=1    if (alt==0)    curpos1=temp    else    curpos2=temp    if (curpos1!=curpos2){    if (document.all)    currentpos=document.body.scrolltop+speed    else    currentpos=window.pageyoffset+speed    window.scroll(0,currentpos)    }    else{    currentpos=0    window.scroll(0,currentpos)    }    }    function startit(){    setinterval("scrollwindow()",50)    }    window.onload=initialize    </script>

thanks in advance

here basic auto scroll function trigger when user scrolls past 300px.

var scroll = true;  $(window).scroll(function () {          var position = $(document).scrolltop();         console.log(position);          if(position > 300 && position < 400 && scroll==true ) {             scroll = false;              $('html,body').animate({                 scrolltop: $("#scrollto").offset().top             },2000);          }     }) 

edit

at moment once time thing, if add if statement after first if statement reset scroll state true , allow run again.

if (position > 0 && position < 300 && scroll==false) {         scroll = true;        } 

edit

to sound play can use new .play command , add happens in if statement, here example of .play code;

$('#videoid').get(0).play(); 

edit

here code working not setting position finding divs position - here working in jsfiddle - https://jsfiddle.net/3fxcbs2k/3/

    var scroll = true;  $(window).scroll(function (e) {      var position = $(document).scrolltop();     var startp = $("#scrolltoo").position();     var finishp = $("#scrollto");      if(position > startp.top && startp.top+100 && scroll==true ) {         scroll = false;          $('html,body').animate({scrolltop: finishp.offset().top},2000);      } if (position > 0 && position < 300 && scroll==false) {         scroll = true;        } }) 

to set position want start scrolling change value of

var startp = $("      ").position(); 

then set finish position change value of

var finsihp = $("      "); 

audio

<audio id="sound">     <source src="sound.mp3" type="audio/mpeg"> </audio> 

var scroll = true;

$(window).scroll(function (e) {

var position = $(document).scrolltop(); var startp = $("#scrolltoo").position(); var finishp = $("#scrollto"); 

jquery play looks - $('#sound').get(0).play();

so add happens when triggered, below.

    if(position > startp.top && startp.top+100 && scroll==true ) {         scroll = false;          $('html,body').animate({scrolltop: finishp.offset().top},2000);         $('#sound').get(0).play();      } if (position > 0 && position < 300 && scroll==false) {         scroll = true;        } }) 

to make more following

think of var id tags can called upon later in code , after = there values example;

var startp = $("#scrolltoo").position(); 

startp vars unique name, , value div id of scrolltoo position.

so make more start , end points have make more vars 1 start , 1 end point. example;

var startp = $("#scrolltoo").position(); var finishp = $("#scrollto");  var startp2 = $("#point2").position(); var finishp2 = $("#pint2"); 

and make if statement, same before replace start points , end points,

if(position > startp2.top && startp2.top+100 && scroll==true ) {             scroll = false;              $('html,body').animate({scrolltop: finishp2.offset().top},2000); 

however because have trigger once have make more var scrolls, 1 each one.

var scroll = true;     var scroll2 = true; var scroll3 = true; var scroll4 = true; 

and each if statement have relevant scroll example second scroll if statement like.

if(position > startp2.top && startp2.top+100 && scroll2==true ) { scroll2 = false; 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -