`
gyabooks
  • 浏览: 23567 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

简单的Javascript日历源代码

阅读更多

苦于开发中使用时间的输入问题的解决,在网上借鉴了好多朋友的Javascript的日历,使用起来,效果不是太好(主要就是显示的问题,老是在应用的过程中,不是出现滚动条,就是突然大了一块)。自己琢磨着是否可以自己来弄一个,自己清楚。
我看到网上那些日历的源代码中,使用了一个iframe的标签,我不知道这个标签的作用,也搞不懂,没有使用。
由于这段时间的CSS的学习,我知道了一个标签“DIV”。它似乎可以担当起java中那种没有标题栏的窗口,但是操作上复杂的多,没有用Java来得快。多的不说了,就说我的思路。
这是在浏览器中效果:

IE6中效果:

Firefox效果:

IE7中的运行结果显示的十分正常,但是在IE6中却有些遗憾,主要就是z-index似乎在IE6中不起作用,有些文本框都跑到了日历上边,这个问题我还没有办法解决,只能靠大家来一块了。Firefox中虽没有IE6中的问题,但是top或是left的问题老是给我一个“分析属性‘***’值时出错。声明被丢弃”的错误,显示位置偏移的厉害,总的界面就如上边三个图所示。
ID介绍:
Id=calendar主要负责这个页面的放置,也是隐藏或是显示的控制对象。当文本获得焦点时,修改CSS脚本中display;当选择日期以后,则让其显示为none
Id=header主要负责日期操作元素的放置,日期初始为系统日期。
Idbodyer 主要负责周天的按钮的放置。
三个ID开始就是需要把显示控制好,我在jsCalendar.css中有非常详细的介绍,如果界面不合你的网站的风格,可以自己动手修改。
在本文中我主要介绍我的脚本方法:
介绍顺序从上到下,理解我得思路:
1、document.writeln(……),这一部分就是为了完成界面的创造和ID的设置(这一部分如果你对ID概念不是熟悉的话,请你查考一下网络上其他朋友的介绍,我这个日历日期控制就是依ID进行的);
2、全局变量
returnText,存放需要日期输入的文本框对象,它可以在各个方法中使用,最终返回格式化的日期字符串;
top_final 存放日历控件的显示绝对纵坐标,可以参考我得上一文章(offsetTopoffsetLeft迷惑);
left_final 存放日历控件的显示绝对横坐标
3、showC(),这是文本中获得焦点时调用的方法,其中initC()方法完成了日历的初始工作,拿系统当前日期做为初始。至于init()中changeC()方法我们随后介绍;
4、getTop()和getLeft(),这个主要介绍显示坐标的问题,如果不了解可以参考blog offsetTopoffsetLeft迷惑
5、helpC(),使用脚本的一个模式对话框,显示帮助信息,使用时注意目录的设置;
6、hideC()、preYear()、nextYear()、preMonth()、nextMonth(),这几个方法非常好理解,看看界面就OK了,主要是都使用了脚本方法getElementById(),这个方法你一定需要掌握;其中的一个方法yearMonthChange(),触发年月改变日历显示同步调用changeC();
7、change(),这个方法是日历的核心,所有实现的效果都得依靠它。它根据Data类的特点计算出日期规律(注意在javascript中一月的显示为:0;二月是:1,和java中的一样),但是我们获得周天的接口可是没有java方便。就代码而讲:
//dt1“显示月”,我们已处理过的monthyearMonthChange()
var dt1=new Date(year,month);
//dt2“显示月”上一个月,我们主要得到上一个月的天数,显示日历中(不过不能操作)。
var dt2=new Date(year,month-1);
//dt3“显示月”下一个月,我们主要依靠getDay()获得“显示月”的天数

var dt3=new Date(year,month+1);

//这是获得“显示月”的第一天周几,我们循环的起点,如果你看过我得writeln中代码,你会注意到我在设置日期ID时的特点,日历的第一行从那一个ID加起(日期是连续的),循环到那个数字要看endDate
var firstDay=dt1.getDay();
//这样设置dt3,可以使我们得到显示月的最后一天是几号,这样就得到了“显示月”的天数,注意这个方法setDate0),0参数是上一月最后一天。
dt3.setDate(0);
var endDate=dt3.getDate();
//这可是“显示月”前几天的显示,递减获得效果
dt1.setDate(0);
var preMonthEndDay=dt1.getDate();
上面的介绍,我希望大家可以就着日历的显示来理解。
方法中的for循环完成日历的显示,根据ID的特点,分为三个部分:
a.显示月日期
b.显示月上一个月最后几天
c.显示月下一个月前几天
判断条件就是依据firstDayendDate
如果这一部分让你感到迷惑,或是我得方法比较笨拙,给我留下你的建议,非常谢谢。
8、getD(),得到我们需要的日期,这其中你可以改一下显示格式,我设定的是:
<chsdate w:st="on" isrocdate="False" islunardate="False" day="3" month="6" year="2008"></chsdate>2008-6-3,中间是“-”分割。
9、至于日历中鼠标移动时显示改变,实现代码为:
onmouseover="this.className='mouseOver'" onmouseout="this.className='inputB'",通过Css代码完成的。
这是我在使用javascript开发的第一个控件,原来非常的轻视脚本语言,认为没有什么难得,但是现在发现,脚本并非我想象的那样。但是还有一个就是不同的浏览器执行的效果不同,让人非常的苦恼。
我想把这一个日历控件作为第一个版本,随接着来进行文本框中日期在日历中特显,当前日期的特显,日历控件可以在随鼠标的拖动功能。希望大家多多的使用这个日历控件,有问题了可以给我留言,也希望高手多多的给我指点,完成还没有实现的功能。
源代码下载:js-Calendar.rar.mp3
由于blog不让上传rar文件,只能把压缩后的文件改为mp3,如果需要查看,把.mp3去除即可。
源代码使用了两个编码格式(gb2312UTF8),如果编码格式不正确的话,可能不能正常的使用。
使用方法我不用多讲,靠着linkscript导入。我在测试的时候发现,如果你把script放在link的前面,开始的显示可能有异常,这个问题我也是无法解释的,可能在于浏览器解释吧。

分享到:
评论
2 楼 gyabooks 2013-03-31  
releaseys 写道
不能下载了,能不能发我邮箱啊 843680960@qq.com  谢谢了

抱歉,很久没有回复!
别看这个了,这个是很早的东西了,可以研究一下jqueryui的date控件
1 楼 releaseys 2012-03-12  
不能下载了,能不能发我邮箱啊 843680960@qq.com  谢谢了

相关推荐

    日历源代码javascript

    在给定的“日历源代码javascript”主题中,我们可以深入探讨JavaScript如何用于创建一个功能丰富的日历组件。 首先,`PopupCalendar.htm`可能是日历组件的主展示页面,它通常会包含HTML结构以及引用JavaScript文件...

    HTML日历源代码

    HTML日历源代码是网页开发中的一个重要组成部分,它主要用于在网站上展示日期和时间信息,或者作为用户输入日期的交互式界面。HTML日历通常结合CSS(层叠样式表)和JavaScript来实现其视觉效果和动态功能。在这个...

    源代码--精美的日历源代码

    从给定的文件信息来看,这是一段用于生成动态日历和时钟的JavaScript代码。以下是对该代码涉及的关键知识点的详细解析: ### 关键知识点一:JavaScript日期对象 在代码中,`new Date()`被多次调用,这是创建一个...

    js日历控件 源代码

    js日历控件 源代码 js日历控件 源代码 js日历控件 源代码 js日历控件 源代码

    Javscript日历源代码

    JavaScript日历源代码是一种常见的网页交互元素,用于在网页上显示日期选择器,方便用户进行日期输入。在网页设计和开发中,JavaScript日历控件是提高用户体验的重要工具,尤其在处理日期相关的表单时。这个特定的源...

    Calendar自动出现日历源代码

    "Calendar自动出现日历源代码"是一个JavaScript实现的日历组件,它的主要目的是提升用户体验,让用户能够更轻松地选择日期,同时减轻管理人员的工作负担。JavaScript作为一种广泛使用的客户端脚本语言,非常适合在...

    一个简单实用的 JavaScript 日历控件源代码,不依赖第三方库,支持日期、月份、年份视图切换;支持单选、多选、范围和星期选

    一个简单实用的 JavaScript 日历控件源代码,不依赖第三方库,支持日期、月份、年份视图切换;支持单选、多选、范围和星期选,内含演示地址 原生 JavaScript 代码,无任何第三方库的依赖; 支持单选、多选、范围和...

    jquery实现的日历源代码

    本文将深入探讨如何使用jQuery实现一个日历功能,并基于提供的"jquery实现的日历源代码"进行解析。 首先,让我们了解jQuery日历的基本原理。日历功能通常由HTML结构、CSS样式和JavaScript逻辑三部分组成。HTML用于...

    javascript日历

    在压缩包文件中的"日历"可能包含了日历组件的源代码,包括HTML文件、CSS文件和JavaScript文件。通过查看这些文件,我们可以学习到具体的实现细节,比如如何组织代码结构、如何进行DOM操作以及如何编写可复用的函数。...

    javaScript编写的漂亮日历(源代码)

    以下是对这个日历源代码可能涉及的关键知识点的详细解释: 1. **DOM操作**:在JavaScript中,DOM(Document Object Model)是HTML和XML文档的编程接口。创建日历需要通过DOM API来获取或创建页面上的元素,如`...

    google日历源代码

    google日历前端源代码javascript-html-css整理 不包括后台程序和数据库,见谅 真正源代码,可以先试用再下载 演示地址:http://www.limagan.com/ 包含后台代码和数据库的压缩包已放出, 欢迎下载使用 ...

    很漂亮的日历源代码 有历史的一天

    标题中的“很漂亮的日历源代码 有历史的一天”表明这是一个关于日历应用或程序的源代码,其中包含了展示日期以及与之相关的历史事件的功能。这个日历不仅具有基本的时间管理功能,还增强了用户体验,让用户在查看...

    ASP百年日历源代码

    ASP百年日历源代码是一个基于经典Web开发语言ASP(Active Server Pages)的程序,用于生成一个可以显示一百年内的日期的动态日历。这个程序在Web应用中具有实用价值,尤其是对于那些需要在网站上展示日期信息或者...

    javascript的日期空间源代码

    本文将深入探讨JavaScript的日期空间源代码,以及如何使用JavaScript实现一个日期选择JS控件。 首先,JavaScript的`Date`对象是处理日期和时间的核心。它提供了一系列的方法和属性,允许我们创建、读取、操作和格式...

    日历控件 附加源代码

    在IT开发领域,日历控件是经常被用于...总结来说,"日历控件 附加源代码"提供了一个实用的工具,可以帮助开发者快速实现日期选择功能,同时通过分析源代码,可以增强他们对JavaScript插件开发和前端交互设计的知识。

    asp网络日历源代码

    ### ASP网络日历源代码分析 #### 一、概述 本文档主要介绍了一段ASP(Active Server Pages)脚本代码,用于实现一个简单的网络日历功能。这段代码通过ASP内置对象与函数,能够动态地展示指定月份的日历,并且允许...

    日历控件源代码和使用方法。简单易用。

    标题中的“日历控件源代码和使用方法”可能指的是一个自定义的JavaScript实现,旨在提供更简单、更轻量级的解决方案。 日历控件的实现通常涉及以下几个关键部分: 1. **HTML结构**:创建一个基本的HTML元素,例如...

    asp日历源代码

    在这个“asp日历源代码”中,我们可以预期找到一个利用ASP技术实现的日历功能,它能够展示日期,并且能突出显示当前日期,这在网页应用程序中非常常见,如事件日程管理、日期选择器等场景。 在ASP中,日历通常会...

    JavaScript实现日历组件-源代码

    JavaScript实现的日历组件是一种常见的网页交互元素,常用于让用户方便地选择日期,尤其在填写表单时。... 组件的一个关键特性是支持手动写入日期。...这为学习和自定义JavaScript日历组件提供了宝贵的资源。

    用jsp做的一个简单的小日历源代码

    本文将深入探讨一个基于JSP技术实现的简易日历应用源代码。该应用程序通过简单的网页展示了一个可以动态调整月份的日历视图。它允许用户选择不同的月份来查看对应月份的日历布局,并且可以通过简单的前端操作进行...

Global site tag (gtag.js) - Google Analytics