JS实现倒计时和文字滚动的效果实例

本文实例讲述了JS实现倒计时和文字滚动效果的方法。分享给大家供大家参考。具体实现方法如下:

说明:一般我们在一些淘宝类店铺中会看到一些像搞竞拍之类的活动,从中我们时而会发现一些倒计时的效果,在一些年会等场合我们也会发现一些抽奖活动,从中我们也可以看到一些随即滚动的效果。这里给大家分享一种实现倒计时和文字滚动的方法,希望可以对大家有所帮助。这里主要是通过js实现的。

一、倒计时效果的实现

前台部分的完整代码如下:

代码如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>倒计时效果的实现</title>
</head>
<body>
<form runat="server">
    <div id="timer">计算中。。。</div>
    <script type="text/javascript">
        var i = 0;
        function TimeTo(dd, nowtstr) {
            var t = new Date(dd), //取得指定时间的总毫秒数
        n = (new Date(nowtstr)) - (-100 * i), //取得当前毫秒数
        c = t - n; //得到时间差
            if (c <= 0) {//如果差小于等于0  也就是过期或者正好过期,则推出程序
                document.getElementById('timer').innerHTML = '活动已经结束';
                clearInterval(window['ttt']); //清除计时器
                return; //结束执行
            }
            var ds = 60 * 60 * 24 * 1000, //一天共多少毫秒
        d = parseInt(c / ds), //总毫秒除以一天的毫秒 得到相差的天数
        h = parseInt((c - d * ds) / (3600 * 1000)), //然后取完天数之后的余下的毫秒数再除以每小时的毫秒数得到小时
        m = parseInt((c - d * ds - h * 3600 * 1000) / (60 * 1000)), //减去天数和小时数的毫秒数剩下的毫秒,再除以每分钟的毫秒数,得到分钟数
        s = parseInt((c - d * ds - h * 3600 * 1000 - m * 60 * 1000) / 1000);  //得到最后剩下的毫秒数除以1000 就是秒数,再剩下的毫秒自动忽略即可
            document.getElementById('timer').innerHTML = '<p style="margin-top:5px;"> <b>' + d + '</b> 天 <b>' + h + '</b> 小时 <b>' + m + '</b> 分<b>' + s + '</b> 秒</p>'; //最后这里将固定格式的字符串 更新到 ID为 timer的 div中
            i++;
        }
        (function () {
            window['ttt'] = setInterval(function () {
//                var timestr = "<%=EndTimeStr %>";//这里可以通过后台向前台传递活动截止时间,注意要是"yyyy-MM-dd"这个格式的
//                var nowtstr = "<%=NowTimeStr %>";//同样这里也可以通过后台向前台传递当前时间,注意也要是"yyyy-MM-dd"这个格式的
                var timestr = "2013-10-21";//这里也可以自定义"yyyy-MM-dd"这个格式的截至活动时间
                var nowtstr = "2013-08-23";//这里也可以自定义"yyyy-MM-dd"这个格式的当前时间
                if (timestr != "") {
                    TimeTo(timestr, nowtstr); //定义倒计时的相差时间,注意格式
                }
            }, 100); //定义计时器,每隔100毫秒 也就是1秒 计算并更新 div的显示
        })();
</script>
    </form>
</body>
</html>

补充:倒计时效果精简版:

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>倒计时精简版效果的实现</title>
</head>

<body>
<form runat="server">
<table border="1">
<tr>
<th id="day" width="100"></th>
<th id="day2"width="100"></th>
<th id="day3"width="100"></th>
<th id="day4"width="100"></th>
</tr>
</table>
<script type="text/javascript">
function timestr()
{
    var c = Date.parse("2014-11-11")-Date.parse((new Date()));
    if(c<=0)
    {
        alert('活动已经结束');
        clearInterval(aa);//清除定时器
    }
       var ds = 60 * 60 * 24 * 1000, //一天共多少毫秒
        d = parseInt(c / ds), //总毫秒除以一天的毫秒 得到相差的天数
        h = parseInt((c - d * ds) / (3600 * 1000)), //然后取完天数之后的余下的毫秒数再除以每小时的毫秒数得到小时
        m = parseInt((c - d * ds - h * 3600 * 1000) / (60 * 1000)), //减去天数和小时数的毫秒数剩下的毫秒,再除以每分钟的毫秒数,得到分钟数
        s = parseInt((c - d * ds - h * 3600 * 1000 - m * 60 * 1000) / 1000);  //得到最后剩下的毫秒数除以1000 就是秒数,再剩下的毫秒自动忽略即可
            document.getElementById('day').innerHTML = '<p style="margin-top:5px;"> <b>' + d + '</b>天 </p>';
            document.getElementById('day2').innerHTML = '<p style="margin-top:5px;"> <b>' + h + '</b> 时</p>';
            document.getElementById('day3').innerHTML = '<p style="margin-top:5px;"> <b>' + m + '</b> 分</p>'
            document.getElementById('day4').innerHTML = '<p style="margin-top:5px;"> <b>' + s + '</b> 秒</p>'
}
var aa = setInterval(timestr,1000);
</script>
 </form>

</body>
</html>

最终我们可以看到类似于如下图所示的效果:

二、文字滚动效果的实现

前台代码部分如下:

代码如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>文字滚动效果的实现</title>
   <script type="text/javascript" src="jquery-1.6.2.min.js"></script>
  <script type="text/javascript">
      function TimeTo(dd) {         
          document.getElementById('TextBox1').value = dd; //最后这里将固定格式的字符串 更新到 ID为 TextBox1的文本框中
      }

$(function(){
          window['ttt'] = setInterval(aaa,100); //页面加载的时候执行
 });

function stopInterval()
      {
          clearInterval(window['ttt']); //清除计时器
          window['ttt']="";
          var aa = "张三,李四,王五,赵六,孙七,胡八,曾九,刘十,伊一,朴二";
          var arr = aa.split(',');
          var rdd = 9 * Math.random();
          var leth = Math.round(rdd);
          var leths = arr[leth].toString();
          document.getElementById('TextBox1').value = leths;
      }
    function aaa() {
          var aa = "张三,李四,王五,赵六,孙七,胡八,曾九,刘十,伊一,朴二";
          var arr = aa.split(',');
          var rdd = 9 * Math.random();
          var leth = Math.round(rdd);
          var leths = arr[leth].toString();
          TimeTo(leths)
          } 
     
      function TimeTo2(){
          if(window['ttt']==""){
          window['ttt'] = setInterval(aaa,100);
        }
      }
  </script>
</head>
<body>
<form runat="server">
<input type="text" id="TextBox1"/>
<input type="button" value="开始抽奖" onClick="TimeTo2();"/>
<input type="button" value="获取幸运观众" onClick="stopInterval();"/>
</form>
</body>
</html>

最终实现的效果图如下:

知识补充:

var myDate = new Date();
myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear(); //获取完整的年份(4位,1970-????)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间

希望本文所述对大家基于js的web程序设计有所帮助。

(0)

相关推荐

  • 基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)

    兼容各浏览器的文本行高 复制代码 代码如下: (function($){ $.fn.extend({ RollTitle: function(opt,callback){ if(!opt) var opt={}; var _this = this; _this.timer = null; _this.lineH = _this.find("li:first").height(); _this.line=opt.line?parseInt(opt.line,15):parseInt(_t

  • js焦点文字滚动效果代码分享

    本文实例讲述了js焦点文字滚动效果.分享给大家供大家参考.具体如下: 效果描述: 今天推荐的这个又是一个原生的js焦点图效果 默认自动切换,也可以手动切换 javascript代码采用函数式对象编程,也就是javascript编程中的Module模式 基本用法很简单,主要特点有三: 1.模块化,可重用 2.封装了变量和function,和全局的命名空间不接触,不污染全局变量 3.只暴露可用public方法,其他私有方法全部隐藏,确保js相互之间不会冲突 运行效果图:---------------

  • js文字滚动停顿效果代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

  • js 上下文字滚动效果

    js实现的文字向上滚动效果,适合文字公告等. test #textHeight{line-height:25px; height:25px; overflow:hidden; width:150px; font-size:12px; border:solid 1px #666;} function ScrollText(content){ this.Delay=10; this.Amount=1; this.Direction="up"; this.Timeout=1000; this

  • Marquee配合DIV实现的文字滚动效果代码

    比如本款代码中,它与DIV 的ID配合,实现一个符合W3C标准的文字滚动效果,这里你只需赋给marquee一个id就可以控制文字了,不理解的朋友看代码. 文字成批滚动 我们(jb51.net)提供各类编程源码.书籍教程.JavaScript/CSS特效代码以及常用软件下载等,做有质量的学习型源码下载站. [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

  • 如何让一个方框栏内的文字滚动显示?

    如何让一个方框栏内的文字滚动显示?<!-- #include file="news.inc" --> <% dim NewsStr(1,5) NewsStr(0,0)="下载本栏链接" NewsStr(1,0)="http://www.intels.net/" NewsStr(0,1)="中国水利水电出版社" NewsStr(1,1)="http://www.waterpub.com.cn/&quo

  • Android实现文字滚动效果

    Android 实现文字滚动效果,自己写了个timer小计时器,textview文字上下翻动效果: public class AutoTextView extends TextSwitcher implements ViewSwitcher.ViewFactory { private float mHeight; private Context mContext; //mInUp,mOutUp分别构成向下翻页的进出动画 private Rotate3dAnimation mInUp; priva

  • 浅析js 文字滚动效果

    这种效果在今后的web发展中是不是常用或者是否依然被设计师们所青睐,从技术层面看并不是最重要的,了解它的实现原理,对自身前端技术的提高,会有很大的帮助,世间万物,万变不离其宗,掌握了它的运行规律,你才不会被其花花外表所迷惑,甚至你可以在掌握其规律的前提下,运行相关技术,创造出新的效果来.下面看看它的实现过程: 1.html 复制代码 代码如下: <div class="box" id="marqueebox0"> <ul> <li st

  • js+div实现文字滚动和图片切换效果代码

    本文实例讲述了js+div实现文字滚动和图片切换效果代码.分享给大家供大家参考.具体如下: 这里演示js+div文字滚动和图片切换代码,为了演示方便,去掉了图片调用,用数字代替了,用时候再加上就可以了,本效果实现了两种效果,Div切换,TAB切换,和文字滚动,鼠标移上后文字停止滚动,两种功能可任意剥离出来,这不影响代码使用. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-div-txt-pic-scroll-cha-style-codes

  • js 动态文字滚动的例子

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>这是一个动态Java

  • 一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]

    网上找了很多,万变不离其宗,写法核心都是一样的,在这里我给大家总结一下,可收藏备用. html: <div class="scroll"> <ul class="list"> <li><a href="#" target="_blank">公告一 或 中奖者 甲</a></li> <li><a href="#" tar

  • 仿猪八戒网左下角的文字滚动效果

    源码: css: 复制代码 代码如下: *{padding:0;margin:0;font-size:12px;} .do_ta { border: 1px solid #E4E4E4; margin:10px auto; width:170px; } .do_ta .ta_ta { background: url("http://s.zbjimg.com/p/zbj/css/../img/tafb.gif") no-repeat; height: 52px; width: 168px

  • js实现文字滚动效果

    首先先看一下大致效果图,因为是动态的,在页面无法显示出来. 具体的实现代码如下: 1.首先是css代码: <style type="text/css"> body,ul,li,a,p,div{padding:0px; margin:0px; font-size:14px;} ul,li{list-style:none;} a{ text-decoration:none; color:#333;} #demo{ overflow:hidden; /*溢出的部分不显示*/ wi

随机推荐