职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1095|回复: 0

javascript特效:在网页中显示可拖动的月历

[复制链接]
啊雅 发表于 2007-7-19 13:06 | 显示全部楼层 |阅读模式
使用本文提供的javascript脚本,配合Dreamweaver的层和行为的运用,可以在页面中显示可拖动的精美月历。
具体制作步骤如下:
1、启动Dreamweaver MX,新建一个HTML文档,切换到代码视图,编写javascript脚本。
(1)在HTML文档的< head>...< /head>插入下面的javascript脚本:
< SCRIPT LANGUAGE=\"javascript\" TYPE=\"text/javascript\">
  //定义月历函数
  function calendar() {
  var today = new Date(); //创建日期对象
  year = today.getYear(); //读取年份
  thisDay = today.getDate(); //读取当前日
//创建每月天数数组
  var monthDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
  //如果是闰年,2月份的天数为29天
  if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) monthDays[1] = 29;
  daysOfCurrentMonth = monthDays[today.getMonth()]; //从每月天数数组中读取当月的天数
  firstDay = today;//复制日期对象
  firstDay.setDate(1); //设置日期对象firstDay的日为1号
  startDay = firstDay.getDay(); //确定当月第一天是星期几
//定义周日和月份中文名数组
  var dayNames = new Array(\"星期日\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\");
  var monthNames = new Array(\"1月\",\"2月\",\"3月\",\"4月\",\"5月\",\"6月\",\"7月\",\"8月\",\"9月\",\"10月\",\"11月\",\"12月\");
  //创建日期对象
  var newDate = new Date();
//创建表格
document.write(\"< TABLE BORDER=&#39;0&#39; CELLSPACING=&#39;0&#39; CELLPADDING=&#39;2&#39; ALIGN=&#39;CENTER&#39; BGCOLOR=&#39;#0080FF&#39;>\")
  document.write(\"< TR>< TD>< table border=&#39;0&#39; cellspacing=&#39;1&#39; cellpadding=&#39;2&#39; bgcolor=&#39;#88FF99&#39;>\");
  document.write(\"< TR>< th colspan=&#39;7&#39; bgcolor=&#39;#C8E3FF&#39;>\");
//显示当前日期和周日
  document.writeln(\"< FONT STYLE=&#39;font-size:9pt;Color:#FF0000&#39;>\" + newDate.getYear() + \"年\" + monthNames[newDate.getMonth()] + \" \" + newDate.getDate() + \"日 \" + dayNames[newDate.getDay()] + \"< /FONT>\");
//显示月历表头
document.writeln(\"< /TH>< /TR>< TR>< TH BGCOLOR=&#39;#0080FF&#39;>< FONT STYLE=&#39;font-size:9pt;Color:White&#39;>日< /FONT>< /TH>\");
document.writeln(\"< th bgcolor=&#39;#0080FF&#39;>< FONT STYLE=&#39;font-size:9pt;Color:White&#39;>一< /FONT>< /TH>\");
document.writeln(\"< TH BGCOLOR=&#39;#0080FF&#39;>< FONT STYLE=&#39;font-size:9pt;Color:White&#39;>二< /FONT>< /TH>\");
document.writeln(\"< TH BGCOLOR=&#39;#0080FF&#39;>< FONT STYLE=&#39;font-size:9pt;Color:White&#39;>三< /FONT>< /TH>\");
document.writeln(\"< TH BGCOLOR=&#39;#0080FF&#39;>< FONT STYLE=&#39;font-size:9pt;Color:White&#39;>四< /FONT>< /TH>\");
document.writeln(\"< TH BGCOLOR=&#39;#0080FF&#39;>< FONT STYLE=&#39;font-size:9pt;Color:White&#39;>五< /FONT>< /TH>\");
document.writeln(\"< TH BGCOLOR=&#39;#0080FF&#39;>< FONT STYLE=&#39;font-size:9pt;Color:White&#39;>六< /FONT>< /TH>\");
document.writeln(\"< /TR>< TR>\");
//显示每月前面的\"空日\"
  column = 0;
  for (i=0; i  document.writeln(\"\\n< TD>< FONT STYLE=&#39;font-size:9pt&#39;> < /FONT>< /TD>\");
  column++;
  }
//如果是当前日就突出显示(红色),否则正常显示(黑色)
  for (i=1; i<=daysOfCurrentMonth; i++) {
  if (i == thisDay) {
  document.writeln(\"< /TD>< TD ALIGN=&#39;CENTER&#39;>< FONT STYLE=&#39;font-size:9pt;Color:#ff0000&#39;>< B>\")
  }
  else {
  document.writeln(\"< /TD>< TD BGCOLOR=&#39;#88FF99&#39; ALIGN=&#39;CENTER&#39;>< FONT STYLE=&#39;font-size:9pt;font-family:Arial;font-weight:bold;Color:#000000&#39;>\");
  }
  document.writeln(i);
  if (i == thisDay) document.writeln(\"< /FONT>< /TD>\")
  column++;
  if (column == 7) {
  document.writeln(\"< TR>\");
  column = 0;
  }
  }
  document.writeln(\"< TR>< TD COLSPAN=&#39;7&#39; ALIGN=&#39;CENTER&#39; VALIGN=&#39;TOP&#39; BGCOLOR=&#39;#0080FF&#39;>\")
  document.writeln(\"< FORM NAME=&#39;time&#39; onSubmit=&#39;0&#39;>< FONT STYLE=&#39;font-size:9pt;Color:#ffffff&#39;>\")
//显示当前时间
  document.writeln(\"当前时间:< INPUT TYPE=&#39;Text&#39; NAME=&#39;textbox&#39; ALIGN=&#39;TOP&#39;>< /FONT>< /TD>< /TR>< /TABLE>\")
  document.writeln(\"< /TD>< /TR>< /TABLE>< /FORM>\");
  }
  < /SCRIPT>
< SCRIPT LANGUAGE=\"javascript\">
  //初始化控制变量
  var timerID = null;
  var timerRunning = false;
//定义时间显示函数
  function stoptime (){
  if(timerRunning)
  clearTimeout(timerID);
  timerRunning = false;}
//定义显示时间函数
  function showtime () {
  var newDate = new Date();
  var hours = newDate.getHours();
  var minutes = newDate.getMinutes();
  var seconds = newDate.getSeconds()
  var timeValue = \" \" + ((hours >12) ? hours -12 :hours)
  timeValue += ((minutes < 10) ? \":0\" : \":\") + minutes
  timeValue += ((seconds < 10) ? \":0\" : \":\") + seconds
  timeValue += (hours >= 12) ? \" 下午 \" : \" 上午 \"
  document.time.textbox.value = timeValue;
  timerID = setTimeout(\"showtime()\",1000);//设置超时,使时间动态显示
  timerRunning = true;}
//显示当前时间
  function starttime () {
  stoptime();
  showtime();}
  < /SCRIPT>
(2)在HTML文档正文< body>...< /body>中插入javascript脚本,并给< body>标记添加一些属性:
< BODY onLoad=\"starttime()\" TEXT=\"#000000\" TOPMARGIN=\"0\">
  < script language=\"javascript\" type=\"text/javascript\">
  calendar(); //显示月历
  < /script>
  < /BODY>
2、切换到设计视图,在页面中插入一层,并把代表HTML文档正文中的javascript脚本图标(如果该图标没有显示,请选择View>Visual Aids>Invisible Elements菜单命令)拖入层中,如下图所示。

3、选择页面中的层,然后在Behaviors(行为)面板(如果没有打开,选择Window>Behaviors)中单击\"+\"按钮,从弹出的菜单上选择Drag Layer(拖动层)命令。

4、在弹出的Drag Layer对话框中采用默认选项,单击OK按钮。此时,Behaviors面板添加了onClick(单击)事件和Drag Layer动作。

5、保存文件,在浏览器中浏览,用鼠标按住月历即可在页面中自由拖动。
怎么样,蛮酷吧?
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-20 18:52 , Processed in 0.143366 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表