2016-03-07 21 views
0

时,函数将执行我有这些代码用于在textarea占位符内进行打字脚本。它工作正常。但我需要执行typeIt函数当我滚动到窗体div时。 “当滚动到

var txt =”滚动到该部分时执行的功能“; var modified_txt =“”;

function humanize() { 
     return Math.round(Math.random() * (200 - 30)) + 30; 
    } 

    //Delete final character in modified string 
    function deleteCharacter(text) { 
     //return everything but the last character 
     text = text.substring(0, text.length - 1); 
     return text; 
    } 

    //Insert character_added at end of text 
    function addCharacter(text, character_added) { 
     text = text + character_added; 
     return text; 
    } 

    //typos[char].error is just a self reference, it is not used 
    var typos = { 
    } 

    var timeOut; 
    var txtLen = txt.length; 
    var char = 0; 
    $('textarea').attr('placeholder', '|'); 
    function typeIt() { 
     modified_txt += txt.charAt(char); 
     $('textarea').attr('placeholder', modified_txt + '|'); 

     if (char === txtLen) { 
      $('textarea').attr('placeholder', $('textarea').attr('placeholder').slice(0, -1)); // remove the '|' 
      return; //Stop the loop once text is completely written. 
     } 

     var test = typos[char]; 
     if (test !== undefined) { 
      setTimeout(function() { 
       var chunk_one = test.correction(modified_txt); 
       modified_txt = chunk_one; 
       char++; 
       typeIt(); 
      }, humanize()); 
     } 
     //If no typos are found then move to the next character 
     else { 
      setTimeout(function() { 
       char++; 
       typeIt(); 
      }, humanize()); 
     } 
    } 

    $(function() { 
     typeIt(); 

    });//end jquery 

回答

0

您需要为滚动事件捕获并分配事件处理程序。

的笔画演示目的,我采取了一个div一些虚拟数据

HTML内容

<div id="scrollDiv" style="width:50px;height:50px;overflow:scroll;" >We've Worked For a lot of people and of course we've made them so happy! You can read some handpicked Word about us here We've Worked For a lot of people and of course we've made them so happy! You can read some handpicked Word about us here 

We've Worked For a lot of people and of course we've made them so happy! You can read some handpicked Word about us here We've Worked For a lot of people and of course we've made them so happy! You can read some handpicked Word about us here</div> 

jQuery的

$('#scrollDiv').scroll(function(){ 
alert('scrolling'); 
}); 
+0

谢谢萨蒂什。我对jquery没有太多的知识。你能给我一个工作的例子吗? –

+0

@JahidHasan请检查已编辑的答案 –

0

您可以使用这种方式(例如用你的代码库):

<div>1</div> 
<div>1</div> 
<div>1</div> 
<div>1</div> 
<div>1</div> 
<div id="2">2</div> 
<div>2</div> 
<div>2</div> 
<div>2</div> 

<script> 
    var oTop = $('#2').offset().top - window.innerHeight; 
    $(window).scroll(function() { 

     var pTop = $('body').scrollTop(); 
     console.log(pTop + ' - ' + oTop); //just for your debugging 
     if (pTop > oTop) { 
      alert(); 
     } 
    }); 

    function humanize() { 
     return Math.round(Math.random() * (200 - 30)) + 30; 
    } 

    //Delete final character in modified string 
    function deleteCharacter(text) { 
     //return everything but the last character 
     text = text.substring(0, text.length - 1); 
     return text; 
    } 

    //Insert character_added at end of text 
    function addCharacter(text, character_added) { 
     text = text + character_added; 
     return text; 
    } 

    //typos[char].error is just a self reference, it is not used 
    var typos = { 
    } 

    var timeOut; 
    var txtLen = txt.length; 
    var char = 0; 
    $('textarea').attr('placeholder', '|'); 
    function typeIt() { 
     modified_txt += txt.charAt(char); 
     $('textarea').attr('placeholder', modified_txt + '|'); 

     if (char === txtLen) { 
      $('textarea').attr('placeholder', $('textarea').attr('placeholder').slice(0, -1)); // remove the '|' 
      return; //Stop the loop once text is completely written. 
     } 

     var test = typos[char]; 
     if (test !== undefined) { 
      setTimeout(function() { 
       var chunk_one = test.correction(modified_txt); 
       modified_txt = chunk_one; 
       char++; 
       typeIt(); 
      }, humanize()); 
     } 
      //If no typos are found then move to the next character 
     else { 
      setTimeout(function() { 
       char++; 
       typeIt(); 
      }, humanize()); 
     } 
    } 

    $(function() { 
     typeIt(); 

    });//end jquery 
</script> 
+0

我已经尝试过但不执行。请参阅链接http://codepen.io/jahid-webdev/pen/pgggXy。我需要让盯着打字时滚动到窗体div #Vnuuk –

+0

您的主演是什么意思? – Vnuuk

+0

对不起,它开始n#Vnuuk –