如何利用iframe标签以及Javascript制作时钟?

如何利用iframe标签以及Javascript制作时钟?

  如何制作一个时钟呢?效果如下图所示:

这里的时钟会不停的走,但是下面的页面是不会变得,这样就实现了我们想要的效果了。下面我将分为以下几个方面来讲:

  1. javascript中的Date引用类型
  2. 几种效果不佳的实例
  3. <iframe>标签
  4. 最终效果不错的实例

如果大家想直接看最终不错的效果实例,可以直接点击这里

第一部分:Date引用类型

  1.日期对象可以直接使用new操作符和Date构造函数构造。代码如下:


1

var date=new Date();

  

2. 通过构造函数直接得到的date对象的时间是当前的时间。由于Date类型使用自UTC(Coordinated Universal Time,国际协调时间)1970年1月1日午夜至改日期经过的毫秒数。所以如果直接输出,按道理来说会出现一个很大的数字。但是因为Date引用类型是继承了Object引用类型的,同时也就继承了Object的toString()方法。故直接输出时,它会默认使用toString()方法。


1

2

var date=new Date;

console.log(date);//  Mon Oct 31 2016 23:29:07 GMT+0800 (中国标准时间)<br>console.log(date.toString());//Mon Oct 31 2016 23:29:07 GMT+0800 (中国标准时间)

 3.如果我们使用valueOf()方法(同样也是继承自Object()引用类型),就可以得到历经的毫秒数了。


1

var date=new Date();


1

console.log(date.valueOf());//1477927747916


1

1477927747916毫秒算下来刚好是46年多。

 4.同时,Date还有一个toLocaleString()方法,该方法会将毫秒表示的时间转化为当地的字符串表示的时间,如下所示:


1

2

var date=new Date();

console.log(date.toLocaleString());//2016/10/31 下午11:29:07

 5.但是如果我们不想使用当前时间而希望使用自定义的时间呢? Date类型为我们提供了两种方法,分别具有不同的初始化方式。


1

2

3

4

5

6

7

8

9

10

11

var time=new Date(Date.parse("October 31,2016"));

console.log(time);//Mon Oct 31 2016 00:00:00 GMT+0800 (中国标准时间)

var Time=new Date("October 31,2016");

console.log(Time);//Mon Oct 31 2016 00:00:00 GMT+0800 (中国标准时间)

var dateTime=new Date(Date.UTC(2016,9,31,23,26,50));

console.log(dateTime);//这是一个bug  Tue Nov 01 2016 07:26:50 GMT+0800 (中国标准时间)

var Timedate=new Date(2016,9,31,23,26,50);

console.log(Timedate);//Mon Oct 31 2016 23:26:50 GMT+0800 (中国标准时间)

 即这两个方法分别是在构造函数时初始化,一个是Date.parse(),如果输入的格式正确,我们甚至省略之。另外一个是Date.UTC,这里传入了六个参数,分别是 年 月 日 时 分 秒 ,同样是可以省略不写。这里值得注意的是:

  • “月”是从0开始计算的,即2月但是要输入1,10月要输入9......
  • “时”必须使用24小时的方法来计算。

但是这里有一个bug,即当我们使用var dateTime=new Date(Date.UTC(2016,9,31,23,26,50));传入的数字是9,应该得到10月份,却得到了11月份,这时我们可以采用其他方法来替换之。

第二部分:几种效果不佳的实例

  ok!已经知道了如何创建时间对象,这时候,我们就可以使用它来做时钟了。但是,以下几种方法创建时钟是不合适的。

  A.  使用javascript定时器外加meta标签中的自动刷新功能。

  代码如下图所示:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<!DOCTYPE html>

<html lang="en">

<head>

    <meta http-equiv="refresh" content="2">

    <meta charset="UTF-8">

    <title>Document</title>

</head>

<body>

    <div id="time"></div>

    <script>

        var date=new Date();

        var time=document.getElementById("time");

        setInterval(function(){

            time.innerHTML=date.toLocaleString();

        },1);

    </script>

</body>

</html>

  如果你尝试以下发现确实可以达到类似的效果,但是你应该注意到这时我们在div元素中没有插入任何内容,一旦插入内容,就会发现得不到我们想要的效果了,因此这种方式不可取。

 B 使用javascript定时器外加window.location.reload()函数,使页面不断刷新。代码如下所示:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

</head>

<body>

    <div id="time"></div>

    <script>

        var date=new Date();

        var time=document.getElementById("time");

        function reload(){

            window.location.reload();

        }

        setInterval(function(){

            reload();

        },1000);

        setInterval(function(){

            time.innerHTML=date.toLocaleString();

        },1000);

    </script>

</body>

</html>

  毫无疑问,这种方法也会导致页面不断刷新,在div中加入一些文字或者图片就可以看出来。

C.使用javascript以及dom方法实现。

 


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<!DOCTYPE html>

<html lang="en">

<head>

<meta http-equiv="refresh" content="2">

<meta charset="UTF-8">

<title>Document</title>

</head>

<body>

<div id="time"><img src="时钟.jpg"/>我是桌面上的时钟,哈哈</div>

<div id="bottom">

</div>

<script>

    var date=Date.now();

   var time=document.getElementById("time");

   var para=document.createElement("p");

   time.appendChild(para);

   setInterval(function(){

   para.innerHTML=date.toLocaleString();

   },1000);

</script>

</body>

</html>

  

 即我们在div中只创建一个p,把时钟放到p中去,动态的刷新p,并且这是你可以添加文字或者图片,发现都不会有影响。这就大功告成了吗?如果你尝试这在div中插入一个视频,就会发现,视频会在你规定的时间不断刷新,播放不了,因此图片和文字看不出来,是因为我们肉眼没法分辨,因此,这种方法也不可取。

 注:插入视频可以如下:


1

<embed align="center" src="告白气球.mp4" type="audio/mpeg" width="1002"  autostart="false" controls="controls" height="500" ></embed>

  当然,这只是其中一种方法,html5中还有其他方法,大家可以学习。

第三部分:<iframe>标签

  <iframe>标签规定了一个内联框架,它可以用来在当前html文档中嵌入另外一个文档。

  如<iframe scr="http://www.zhuzhenwei.com"><iframe>。在iframe元素的内容部分,即<iframe>与</iframe>之间是不需要放内容的。但是我们可以放一些提示性的内容,这样对于一些不支持<iframe>标签的浏览器就可以显示其中的内容了。

  在iframe标签中有一些属性,比较常用的就是height width ,这两个属性可以规定这个内联框架的高度和宽度。name属性可以规定<iframe>的名称。src属性用于规定在<iframe>中显示的文档的url。scrolling属性有yes no auto 三种属性值,它规定是否在<iframe>中显示滚动条。

第四部分:最终效果不错的实例

  从第三部分可知,如果我们能使用iframe标签引入一个外部的文档,就可以解决所有的问题了,因为每当刷新时,只会刷新在iframe里面的内容。代码如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

</head>

<body>

<iframe src="test.html" width="200" height="30" seamless="seamless" scrolling="no" ></iframe>

<p>我是页面上的时钟,哈哈</a>

</body>

</html>

以下是test.html中的代码

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

</head>

<body>

    <div id="time"></div>

    <script>

        var date=new Date();

        var time=document.getElementById("time");

        function reload(){

            window.location.reload();

        }

        setInterval(function(){

            reload();

        },1000);

        setInterval(function(){

            time.innerHTML=date.toLocaleString();

        },1000);

    </script>

</body>

</html>

  OK!成功解决问题!效果图如下:

此时,下面的时钟可以正常运行,上面的视频也可以正常播放。

世之奇伟、瑰怪、非常之观,常在于险远,而人之所罕至焉,故非有志者不能至也。

转载http://www.cnblogs.com/zhuzhenwei918/p/6018066.html

时间: 2024-10-06 00:06:58

如何利用iframe标签以及Javascript制作时钟?的相关文章

如何用iframe标签以及Javascript制作时钟?

如何利用iframe标签以及Javascript制作时钟? 如何制作一个时钟呢?效果如下图所示: 这里的时钟会不停的走,但是下面的页面是不会变得,这样就实现了我们想要的效果了.下面我将分为以下几个方面来讲: javascript中的Date引用类型 几种效果不佳的实例 <iframe>标签 最终不错的效果实例 如果大家想直接看最终不错的效果实例,可以直接点击这里. 第一部分:Date引用类型 1.日期对象可以直接使用new操作符和Date构造函数构造.代码如下: var date=new Da

JavaScript制作时钟特效

需求说明:制作显示年.月.日.星期几并且显示上午(AM)和下午(PM)的 12进制的时钟,具体效果如下所示: 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <meta http-equiv="Content-Type" content="text/h

如何利用标签打印软件制作商品标签?

标签是我们日常生活中随处可见的东西,购买珠宝首饰给的小票里面订的有珠宝标签,购物超市里有商品计价标签,买衣服时的吊牌标签及合格证等,商品标签各式各样,到底是怎么制作的呢?今天就来以日常所用的笔记本标签为例,来介绍一下怎么利用领跑标签打印软件制作商品标签. 如下图所示,即为我们要设计的商品标签: 首先,要测量该笔记本标签的规格大小,也就是长和宽.测量完成后在领跑标签打印软件上新建标签,在"纸张"选项中设置"自定义大小",设置纸张宽度和高度,然后在"布局&qu

jsWindow 对象 Window 对象 Window 对象表示浏览器中打开的窗口。 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。 注释:没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象。 Window 对象集合 集合 描述 frames[] 返回窗口中所有命

一.JSX简介 JSX就是Javascript和XML结合的一种格式.React发明了JSX,利用HTML语法来创建虚拟DOM.当遇到<,JSX就当HTML解析,遇到{就当JavaScript解析. 如下(JS写法) var child1 = React.createElement('li', null, 'First Text Content'); var child2 = React.createElement('li', null, 'Second Text Content'); var

使用iframe标签结合springMvc做文件上传

1.iframe.jsp <body> <h1>测试iframe文件上传</h1> <!-- 1.要求表单的target属性名称与iframe的name名字一致 2.iframe自身特性 1).iframe标签所在的页面称之parent(父)页面 2).iframe标签所包含的页面称之为子页面 3.本测试的子页面是:controller跳转的页面,即是ok.jsp --> <iframe name="aaa" width="

如何用标签打印软件制作学生证

在学生时代,学生证上记载着学生的姓名.班级和学号,我们也能从学生证中看到该学生所在的学校,学生证成了学生身份的象征,那么如何制作学生证呢?如图所示,今天就来介绍一下怎么用标签打印软件制作学生证. 首先打开领跑标签打印软件,新建标签,标签大小为90*54mm,然后点击上方菜单栏中的"数据库设置"按钮,在弹出的"数据库设置"窗口中,点击"添加"-"Excel数据源",在弹出的"Excel数据源管理"中,添加文件

DIV+CSS布局重新学习之使用A标签和CSS制作按钮

这里主要利用A元素的伪类来实现: a:link {color: #FF0000} /* 未访问的链接 */ a:visited {color: #00FF00} /* 已访问的链接 */ a:hover {color: #FF00FF} /* 鼠标移动到链接上 */ a:active {color: #0000FF} /* 选定的链接 */ 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &qu

js 利用iframe和location.hash跨域解决办法,java图片上传回调JS函数跨域

奶奶的:折腾了我二天,终于解决了!网上有很多例子. 但跟我的都不太一样,费话不多说了,上图   上代码: IE ,firefix,chrome 测试通过 js :这个主页面,部分代码, function submitUpload(id){ $("#imgSrc" + id +"").attr("alt", "图片上传中--"); var imgID = id; if(id>0){ imgID = 1; } var for

dedecms 织梦利用arcpagelist标签实现首页arclist分页

DedeCMS首页arclist分页可以利用arcpagelist标签来实现,这里说一下调用方法:首先必须在首页的<head></head>标签里面引入如下js代码: <script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script> &