【问题标题】:JS Text Loop with Previous, Pause & Next Button带有上一个、暂停和下一个按钮的 JS 文本循环
【发布时间】:2013-02-09 11:12:25
【问题描述】:

我有以下代码,用于带有下一个和上一个按钮的文本。我希望它在页面加载时重复循环,并在两者之间暂停一个按钮。所有三个按钮都完全位于显示文本的同一行的右侧。请支持我..谢谢...

<!DOC HTML>
<html>
<head>
<script type="text/javascript">
var messages = [
    'Messages for <em>kindergarden</em> class',
    'Message for <em>1st grade</em>',
    'Message for <em>2nd grade</em>',
    'Message for <em>3rd grade</em>',
    'Message for <em>4th grade</em>',
    'Message for <em>5th grade</em>',
    'Message for <em>6th grade</em>'
];

var msgPtr = 0;
function nextMsg(direction) {
  msgPtr = msgPtr + direction;
  if (msgPtr < 0) { msgPtr = messages.length-1; }
  if (msgPtr > messages.length-1) { msgPtr = 0; }
  document.getElementById('msg').innerHTML = messages[msgPtr];
}
window.onload = function () {
  nextMsg(0);
}
</script>

<style type="text/css">
em { color:orange; }
#msg { 
font-family:monospace; 
background-color:yellow;
font-size:1em;  
width:890px; 
border:1px dotted red; 
overflow:hidden;}
</style>

</head>
<body>
<div id="msg"></div><br>
<button onclick="nextMsg(-1)">&lt;</button>
<button onclick="nextMsg(-1)">||</button>
<button onclick="nextMsg(1)">&gt;</button>
</body>
</html>

【问题讨论】:

    标签: javascript html css loops


    【解决方案1】:

    一种解决方案是递归调用 nextMsg()

    function nextMsg(direction){
        //snip
        nextMsg(direction);
    }
    

    我用 jQuery 写了一个非常快速的概念证明,应该以更简洁的方式重写: http://jsfiddle.net/5NUPn/5/

    现在要在同一行显示消息和按钮,您需要使用浮动。

    #msg { float: left; }
    

    【讨论】:

      【解决方案2】:

      使用“setInterval(code,millisec)”函数。所以你的代码应该是这样的:

      var msgPtr =0;
      var set_interval_id;
      
      function pause() {
          clearInterval(set_interval_id)
      }
      
      function play() {
          set_interval_id = setInterval(function() {
              nextMsg(msgPtr);
              msgPtr++;
          }, 2000 /* how often to execute the code (2 sec) */);
      }
      
      window.onload = function () {
        play();
      }
      
      ...
      
      <button onclick="nextMsg(-1)">&lt;</button>
      <button onclick="pause()">||</button>
      <button onclick="nextMsg(1)">&gt;</button>
      
      ....
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-20
        • 1970-01-01
        • 2014-04-09
        • 2013-03-08
        相关资源
        最近更新 更多