首頁 web前端 js教程 jQuery寫的日曆(包括日曆的樣式及功能)_jquery

jQuery寫的日曆(包括日曆的樣式及功能)_jquery

May 16, 2016 pm 05:35 PM
jquery 日曆

複製代碼如下代碼:

渡//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


>
標題>


var c = new Calendar(" c");
document.write(c);
腳本>
頭>

;
普通呼叫:>
>>


按鈕呼叫:id="button" type = "button" onclick="c.showMoreDay = true; c.show(getObjById('btntxt'), '1982-1-1', this)" />>

>
id="button3" type="button" onclick="c.showMoreDay = true; c.show(this, getObjById('btntxt3'))" />

身體>


需要的jQuery檔案
複製程式碼程式碼如下:

function Calendar(objName)
{
this.style = {
borderColor : "#909eff", //边框颜色
headerBackColor : "#909EFF", //表头背景颜色
headerFontColor : "#ffffff", //表头字体颜色
bodyBarBackColor : "#f4f4f4", //日历标题背景色
bodyBarFontColor : "#000000", //日历标题字体色
bodyBackColor : "#ffffff", //日历背景色
bodyFontColor : "#000000", //日历字体色
bodyHolidayFontColor : "#ff0000", //假日字体色
watermarkColor : "#d4d4d4", //背景水印色
moreDayColor : "#cccccc"
};
this.showMoreDay = false; //是否显示上月和下月的日期
this.Obj = objName;
this.date = null;
this.mouseOffset = null;
this.dateInput = null;
this.timer = null;
};
Calendar.prototype.toString = function()
{
var str = this.getStyle();
str += '';
返回str;
};
Calendar.prototype.getStyle = function()
{
var str = 'n';
回傳str;
};
Calendarar .prototype.getHeader = function()
{
var str = 'n';
str = 'n';
str = 'n';
str = 'n';
str = '
n';
str = '
n';
str = '
0 td>n';
str = '
0>>>
n';
返回str;
};
Calendar.prototype.getBody = function()
{
var n = 0;
var str = this.getBodyBar();
str = 'n';
for(i = 0; i {
str = '';
for(j = 0; j {
str = 'n';
}
str = '';
}
str = '
n';
str = '
今天:' new Date ().toFormatString("yyyy年mm月dd日") '
;n';
返回str;
};
Calendar.prototype.getBodyBar = function()
{
var str = 'n';
var day = new Array('日','一','二','三','四','五', '六');
for(i = 0; i {
str = 'n' ;
}
str = '
' 天[i] '
';
回傳str;
}
Calendar.prototype.getYearMenu = 函數(年份)
{
var str = 'n ';
for(i = 0; i {
var _year = 年 i;
var _date = new Date(_year,this.date.getMonth(),this.date.getDate());
str = 'n';
str = '';
}
str = 'n';
str = '表>';
var _menu = getObjById("cdrMenu");
_menu.innerHTML = str;
};
Calendar.prototype.getMonthMenu = function()
{
var str = '
if(this.date.getFullYear() != _year)
{
str = 'onmouseover="this.className='menuOver'" onmouseout="this.className=''" ';
}
其他
{
str = 'class="menuOver"';
}
str = 'onclick="' this.Obj '.bindDate('' _date.toFormatString("-") '')">' _year '年
n';
str = '
n';
str = '
>>
n';
for(i = 1; i {
var _date = new Date(this.date.getFullYear(),i-1,this.date.getDate()) ;
str = 'n' ;
}
str = '
if(this.date.getMonth() 1 != i)
{
str = 'onmouseover="this.className='menuOver'" onmouseout="this.className=''" ';
}
其他
{
str = 'class="menuOver"';
}
str = 'onclick="' this.Obj '.bindDate('' _date.toFormatString("-") '')">'我'月
';
var _menu = getObjById("cdrMenu");
_menu.innerHTML = str;
};
Calendar.prototype.show = function()
{
if (arguments.length > 3 || argument.length == 0)
{
alert("形成參數!" );
return;
}
var _date = null;
var _evObj = null;
var _initValue = null
for(i = 0; i {
if(typeof(arguments[i]) == "object" && argument[i].type == "text")
{_date = argument[i];}
else if(typeof(arguments[i]) == "object")
{_evObj = argument[i];}
else if(typeof(arguments[i]) == "string")
{_initValue = argument[i];}
}
_evObj = _evObj || _date;
inputObj = _date;
targetObj = _evObj
if(化參數錯誤! bindDate(_date);
var _target = getPosition(_evObj);
var _obj = getObjById("日曆");
_obj.style.display = "" = _target.get.x 'px'; if((document.body.clientHeight - (_target.y _evObj.clientHeight)) >= _obj.clientHeight)
{
_obj.style.top = ( _target.y _evObj.clientHeight) 'px' ; 🎜>}
else
{
_obj.style.top = (_target.y - _obj.clientHeight) 'px';
}
日曆.prototype .hide = function()
{
var obj = getObjById("日曆");
obj.style.display = "none";
};
Calendar.prototype.bindDate = 函數(日期)
{
var _monthDays = new Array(31,30,31,30,31,30,31,31,30,31 ,30,31);
var _arr = date.split('-');
var _date = new Date(_arr[0],_arr[1]-1,_arr[2]);
if(isNaN(_date)) _date = new Date();
this.date = _date;
this.bindHeader();
var _year = _date.getFullYear();
var _month = _date.getMonth();
var _day = 1;
var _startDay = new Date(_year,_month,1).getDay();
var _previYear = _month == 0 ? _年 - 1 : _年;
var _previMonth = _month == 0 ? 11:_月 - 1;
var _previDay = _monthDays[_previMonth];
if (_previMonth == 1) _previDay =((_previYear%4==0)&&(_previYear0!=0)||(_previYear@0==0))?29:28;
_previDay -= _startDay - 1;
var _nextDay = 1;
_monthDays[1] = ((_year%4==0)&&(_year0!=0)||(_year@0==0))?29:28;
for(i = 0; i {
var _dayElement = getObjById("cdrDay" i);
_dayElement.onmouseover = Function(this.Obj ".onMouseOver(this)");
_dayElement.onmouseout = Function(this.Obj ".onMouseOut(this)");
_dayElement.onclick = Function(this.Obj ".onClick(this)");
this.onMouseOut(_dayElement);
_dayElement.style.color = "";
if(i {
//取得上個月的日期
if(this.showMoreDay)
{
var _previDate = new Date(_year,_month) - 1,_previDay);
_dayElement.innerHTML = _previDay;
_dayElement.title = _previDate.toFormatString("yyyy年mm月dd日");
_dayElement.value = _previDate.toFormatString("-");
_dayElement.style.color = this.style.moreDayColor;
_previDay;
} 否則
{
_dayElement.innerHTML = "";
_dayElement.title = "";
}
}
else if(_day > _monthDays[_month])
{
//取得下個月的日期
if(this.showMoreDay)
{
var _nextDate = new Date(_year,_month 1,_nextDay);
_dayElement.innerHTML = _nextDay;
_dayElement.title = _nextDate.toFormatString("yyyy年mm月dd日");
_dayElement.value = _nextDate.toFormatString("-");
_dayElement.style.color = this.style.moreDayColor;
_下一天;
} 否則
{
_dayElement.innerHTML = "";
_dayElement.title = "";
}
}
else if(i >= new Date(_year,_month,1).getDay() && _day {
//取得本月日期
_dayElement.innerHTML = _day;
if(_day == _date.getDate())
{
this.onMouseOver(_dayElement);
_dayElement.onmouseover = Function("");
_dayElement.onmouseout = Function("");
}
if(this.isHoliday(_year,_month,_day))
{
_dayElement.style.color = this.style.bodyHolidayFontColor;
}
var _curDate = new Date(_年, _月, _日);
_dayElement.title = _curDate.toFormatString("yyyy年mm月dd日");
_dayElement.value = _curDate.toFormatString("-");
_日;
}
其他
{
_dayElement.innerHTML = "";
_dayElement.title = "";
}
}
var _menu = getObjById("cdrMenu");
_menu.style.display = "無";
};
Calendar.prototype.bindHeader = function()
{
var _curYear = getObjById("currentYear");
var _curMonth = getObjById("currentMonth");
var _watermark = getObjById("cdrWatermark");
_curYear.innerHTML = this.date.toFormatString("yyyy年");
_curMonth.innerHTML = this.date.toFormatString("mm月");
_watermark.innerHTML = this.date.getFullYear();
};
Calendar.prototype.getToday = function()
{
var _date = new Date();
this.bindDate(_date.toFormatString("-"));
};
Calendar.prototype.isHoliday = function(年、月、日)
{
var _date = new Date(年、月、日);
return (_date.getDay() == 6 || _date.getDay() == 0);
};
Calendar.prototype.onMouseOver = function(obj)
{
obj.className = "dayOver";
};
Calendar.prototype.onMouseOut = function(obj)
{
obj.className = "dayOut";
};
Calendar.prototype.onClick = function(obj)
{
if(obj.innerHTML != "") this.dateInput.value = obj.value;
this.hide();
};
Calendar.prototype.onChangeYear = function(isnext)
{
var _year = this.date.getFullYear();
var _month = this.date.getMonth() 1;
var _date = this.date.getDate();
if(_year > 999 && _year {
if(isnext){_year ;}else{ _year --;}
}
else
{
{
{
{
{
{
{
{
{
alert("年份超出範圍(1000-9999)!");
}
this.bindDate(_year '-' _month '-' _date);
};
Calendar.prototype.onChangeMonth = function(isnext)
{
var _year = this.date.getFullYear();
var _month = this.date.getMonth() 1;
var _date = this.date.getDate();
if(isnext){ _month ;} else {_month--;}
if(_year > 999 && _year {
if(_month if(_month > 12) {_month = 1; _year ;}
}
else
{
alert("年份超出範圍(1000-9999)!");
}
this.bindDate(_year '-' _month '-' _date);
};
Calendar.prototype.showMenu = function(isyear)
{
var _menu = getObjById("cdrMenu");
if(isyear != null)
{
var _obj = (isyear)? getObjById("當前年份") : getObjById("當前年份");
if(isyear)
{
this.getYearMenu(this.date.getFullYear() - 5);
}
其他
{
this.getMonthMenu();
}
_menu.style.top = (_obj.offsetTop _obj.offsetHeight) 'px';
_menu.style.left = _obj.offsetLeft 'px';
_menu.style.width = _obj.offsetWidth 'px';
}
if (this.timer != null)clearTimeout(this.timer);
_menu.style.display="";
}
Calendar.prototype.hideMenu = function()
{
var _obj = getObjById("cdrMenu");
this.timer = window.setTimeout(function(){_obj.style.display='none';},500);
}
Number.prototype.NaN0 = function()
{
return isNaN(this) ? 0:這個;
}
Date.prototype.toFormatString = function(fs)
{
if(fs.length == 1)
{
return this.getFullYear() fs (this.getMonth() 1) fs this.getDate();
}
fs = fs.replace("yyyy",this.getFullYear());
fs = fs.replace("mm",(this.getMonth() 1));
fs = fs.replace("dd",this.getDate());
回傳fs;
}
var inputObj = null;
var targetObj = null;
var DragObj = null;
var mouseOffset = null;
function getObjById(obj)
{
if(document.getElementByIdx_x)
{
return document.getElementByIdx_x(obj);
}
else
{
alert("瀏覽器不支援!");
}
}
function mouseCoords(ev)
{
if(ev.pageX || ev.pageY){
return {x:ev.pageX, y:ev.第Y頁};
}
return {
x:ev.clientX document.body.scrollLeft - document.body.clientLeft,
y:ev.clientY document.body.scrollTop - 文件。 body.clientTop
};
}
函數getPosition(e)
{
var left = 0;
var 頂部 = 0;
while (e.offsetParent){
left = e.offsetLeft (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
top = e.offsetTop(e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
e = e.offsetParent;
}
left = e.offsetLeft (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
top = e.offsetTop(e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
返回{x:左,y:上};
}
函數 getMouseOffset(target, ev)
{
ev = ev ||視窗.事件;
var docPos = getPosition(target);
var mousePos = mouseCoords(ev);
返回{x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}
函數 closeCalendar(evt){
evt = evt ||視窗.事件;
var _target= evt.target || evt.srcElement;
if(!_target.getAttribute("作者") && _target != inputObj && _target != targetObj)
{
getObjById("Calendar").style.display = "none";
}
}
函數dragStart(evt){
evt = evt ||視窗.事件;
var _target= evt.target || evt.srcElement;
if(_target.getAttribute("作者") == "alin_bar")
{
dragObj = getObjById("日曆");
mouseOffset = getMouseOffset(dragObj, evt);
}
}
函數拖曳(evt)
{
evt = evt ||視窗.事件;
if(dragObj)
{
var mousePos = mouseCoords(evt);
dragObj.style.left = (mousePos.x - mouseOffset.x) 'px';
dragObj.style.top = (mousePos.y - mouseOffset.y) 'px';
}
}
//拖曳結束
function DragEnd(evt) { dragObj = null; } document.onclick = closeCalendar; document.onmousedown=dragStart; document.onmousemove = 拖曳; document.onmouseup = DragEnd;
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1662
14
CakePHP 教程
1418
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24
win11雙螢幕行事曆在第二台顯示器上不存在怎麼辦? win11雙螢幕行事曆在第二台顯示器上不存在怎麼辦? Jun 12, 2024 pm 05:47 PM

在Windows11中組織日常工作和例行公事的重要工具是在工作列中顯示時間和日期。此功能通常位於螢幕的右下角,可讓您即時存取時間和日期。透過點擊此區域,您可以調出日曆,從而更輕鬆地檢查即將到來的約會和日期,而無需打開單獨的應用程式。但是,如果您使用多個顯示器,則此功能可能會遇到問題。具體來說,雖然時鐘和日期顯示在所有連接的顯示器上的任務欄上,但點擊第二個顯示器上的日期和時間來顯示日曆的功能不可用。截至目前,此功能僅在主顯示幕上起作用-它與Windows10不同,在Windows10中,按一下任

Outlook行事曆不同步; Outlook行事曆不同步; Mar 26, 2024 am 09:36 AM

如果您的Outlook行事曆無法與Google行事曆、Teams、iPhone、Android、Zoom、Office帳號等同步,請執行下列步驟來解決問題。日曆應用程式可以連接到其他日曆服務,例如Google日曆、iPhone、安卓、微軟Office365等,這是非常有用的,因為它可以自動同步。但如果OutlookCalendar無法與第三方日曆同步怎麼辦?可能的原因可能是選擇錯誤的日曆進行同步,日曆不可見,後台應用程序幹擾,過時的Outlook應用程序或日曆應用程序,等等。修復Outlook日曆不同步的初步

win10日曆事件沒有彈跳窗提醒怎麼辦?win10日曆事件提醒沒了的恢復方法 win10日曆事件沒有彈跳窗提醒怎麼辦?win10日曆事件提醒沒了的恢復方法 Jun 09, 2024 pm 02:52 PM

行事曆可以幫助使用者記錄你的行程,甚至可以設定提醒,但是也有不少的使用者在詢問win10行事曆事件提醒不彈出怎麼辦?使用者可以先檢查windows更新狀況或是清除windows應用程式商店快取來進行操作就可以了。以下就讓本站來為使用者來仔細的介紹一下win10日曆事件提醒不彈出問題解析吧。新增日曆事件在系統選單中點選「日曆」程式。滑鼠左鍵點擊日曆中的日期。在編輯視窗輸入事件名稱和提醒時間,點選「儲存」按鈕即可新增事件了。 win10日曆事件提醒不彈出問題解決

win11時間老是不準確怎麼解決? Win11時間調整教學快速解決時間不準確問題 win11時間老是不準確怎麼解決? Win11時間調整教學快速解決時間不準確問題 Apr 19, 2024 am 09:31 AM

如果您的Windows11電腦顯示時間錯誤,可能會導致許多問題,甚至阻止您連接到網路。事實上,當系統顯示不正確的日期和時間時,某些應用程式會拒絕開啟或執行。那麼應該如何解決這個問題呢?下面一起來看看吧!方法一:1、我們先右鍵點選下方任務欄空白處,選擇工作列設定2、在工作列設定中找到右側的taskbarcorneroverflow3、然後在它上方找到clock或時鐘選擇開啟即可。方法二:1.按下鍵盤快速鍵win+r調出運行,輸入regedit回車確定。 2、開啟登錄編輯器,在其中找到HKEY

無期迷途採購辦:日曆和生日系列週邊上新! 無期迷途採購辦:日曆和生日系列週邊上新! Feb 29, 2024 pm 12:00 PM

無期迷途採購辦確定將於2月28日上午11點更新,玩家可以前往淘寶搜尋無期迷途採購辦選擇店鋪分類進行購買,本次為大家帶來的是MBCC生日會系列及2024台歷週邊,一起來看看本次的商品詳情。無期迷途採購辦:日曆和生日系列週邊上新!無期迷途採購辦上新! —預售時間:2024年2月28日11:00-2024年3月13日23:59採購地​​址:淘寶搜尋【無期迷途採購辦】選擇【店鋪】分類即可進店採購;週邊介紹:本次週邊上新為MBCC生日會系列及2024台歷週邊,請點選長圖查閱詳情。採購辦上新周邊介紹—MBCC生

jQuery中如何使用PUT請求方式? jQuery中如何使用PUT請求方式? Feb 28, 2024 pm 03:12 PM

jQuery中如何使用PUT請求方式?在jQuery中,發送PUT請求的方法與發送其他類型的請求類似,但需要注意一些細節和參數設定。 PUT請求通常用於更新資源,例如更新資料庫中的資料或更新伺服器上的檔案。以下是在jQuery中使用PUT請求方式的具體程式碼範例。首先,確保引入了jQuery庫文件,然後可以透過以下方式發送PUT請求:$.ajax({u

jQuery小技巧:快速修改頁面所有a標籤的文本 jQuery小技巧:快速修改頁面所有a標籤的文本 Feb 28, 2024 pm 09:06 PM

標題:jQuery小技巧:快速修改頁面所有a標籤的文字在網頁開發中,我們經常需要對頁面中的元素進行修改和操作。使用jQuery時,有時候需要一次修改頁面中所有a標籤的文字內容,這樣可以節省時間和精力。以下將介紹如何使用jQuery快速修改頁面所有a標籤的文本,同時給出具體的程式碼範例。首先,我們需要引入jQuery庫文件,確保在頁面中引入了以下程式碼:&lt

使用jQuery修改所有a標籤的文字內容 使用jQuery修改所有a標籤的文字內容 Feb 28, 2024 pm 05:42 PM

標題:使用jQuery修改所有a標籤的文字內容jQuery是一款受歡迎的JavaScript庫,被廣泛用於處理DOM操作。在網頁開發中,經常會遇到需要修改頁面上連結標籤(a標籤)的文字內容的需求。本文將介紹如何使用jQuery來實現這個目標,並提供具體的程式碼範例。首先,我們需要在頁面中引入jQuery庫。在HTML檔案中加入以下程式碼:

See all articles