最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript實現(xiàn)日歷控件(年月日關(guān)閉按鈕)

 更新時間:2012年12月12日 09:57:34   作者:  
經(jīng)常使用google的朋友一定對google絢麗的日歷控件記憶猶新吧,那我們也來實現(xiàn)一個,雖然功能和效果比不上,但重要的是實現(xiàn)的過程
經(jīng)常使用google的朋友一定對google絢麗的日歷控件記憶猶新吧,那我們也來實現(xiàn)一個,雖然功能和效果比不上,但重要的是實現(xiàn)的過程.
下面是要實現(xiàn)的html結(jié)構(gòu):
<div id="a"><div id="head"><span id="yface">年:<select id="year"></select></span><span id="mface">月:<select id="month"></select></span></div><div id="biaoti"></div><div id="body"></div></div>
先說一下日歷查詢的算法:
w=y+parseInt(y/4)+parseInt(c/4)-2*c+parseInt(26*(m+1)/10)+d-1 ;
下面是詳細(xì)的說明過程,有興趣的可以去看下: 
http://www.fzitv.net/article/32572.htm
以下是實現(xiàn)的javascript代碼:
復(fù)制代碼 代碼如下:

sx.activex.calender={
bind:function(target){
var a=document.createElement("div");
var head=document.createElement("div");
var biaoti=document.createElement("div");
var select=document.createElement("select");
var yface=document.createElement("span");
var mface=document.createElement("span");
var body=document.createElement("div");
var select1=document.createElement("select");
yface.appendChild(select);
mface.appendChild(select1);
head.appendChild(yface);
head.appendChild(mface);
a.appendChild(head);
a.appendChild(biaoti);
a.appendChild(body);
yface.insertBefore(document.createTextNode("年 "),yface.firstChild)
mface.insertBefore(document.createTextNode("月 "),mface.firstChild)
a.style.position="absolute";
biaoti.style.height="10%";
for(var i=0;i<7;i++){
var can=document.createElement("span")
can.style.width="14%";
can.style.height="100%";
can.style.textAlign="center";
biaoti.appendChild(can);
}
biaoti.all[0].innerText="日"
biaoti.all[1].innerText="一"
biaoti.all[2].innerText="二"
biaoti.all[3].innerText="三"
biaoti.all[4].innerText="四"
biaoti.all[5].innerText="五"
biaoti.all[6].innerText="六"
head.style.height="20%";
a.style.position="absolute";
a.style.height="200px";
a.style.width="302px";
a.style.border="1px red solid";
yface.style.width="50%";
yface.style.padding="5px";
yface.style.height="100%";
select.style.width="80%";
for(var i=1960;i<2010;i++){
var option=document.createElement("option");
option.text=i;
select.add(option);
}
mface.style.width="50%";
mface.style.padding="5px";
mface.style.height="100%";
select1.style.width="80%";
for(var i=1;i<=12;i++){
var option=document.createElement("option");
option.text=i;
select1.add(option);
}
body.style.height="70%";
for(var i=0;i<42;i++){
var span=document.createElement("span");
span.style.width="14%";
span.style.height="16%";
span.style.textAlign="center";
span.onmouseover=function(){
this.style.cursor="hand";
this.tempcolor=this.style.backgroundColor;
this.style.backgroundColor="lightblue";
}
span.onmouseout=function(){
this.style.backgroundColor=this.tempcolor;
}
span.onclick=function(){
target.value=select.options[select.selectedIndex].text+"年"+select1.options[select1.selectedIndex].text+"月"+this.innerText+"日";
a.parentNode.removeChild(a);
}
body.appendChild(span);
}
select.onchange=function(){
for(var o in body.all){
body.all[o].innerText="";
if(o.toString()!="length")
body.all[o].style.backgroundColor="";
}
var year1=this.options[this.selectedIndex].text;
var month1=select1.options[select1.selectedIndex].text;
var y=parseInt(year1.substr(2,2)-0);
var c=parseInt(year1.substr(0,2));;
var m=parseInt(month1);;
m=m>=3?m:(y=y-1,m+12);
var d=1;
var w=y+parseInt(y/4)+parseInt(c/4)-2*c+parseInt(26*(m+1)/10)+d-1 ;
if(w<0) w=w+700;
w=w%7;
switch(parseInt(month1)){
case 2:
if(parseInt(year1)%4==0)
var r=29;
else
var r=28;
var day=w;
for(var d=1;d<=r;d++){
body.all[day++].innerText=d;
if(parseInt(year1)==(new Date()).getYear() && parseInt(month1)==(new Date()).getMonth()+1 && d==(new Date()).getDate())
body.all[day-1].style.backgroundColor="red";
body.all[41].innerText="關(guān)閉";
}
break;
default:

if(parseInt(month1)==1 || parseInt(month1)==3 || parseInt(month1)==5 || parseInt(month1)==7 || parseInt(month1)==8 || parseInt(month1)==10 || parseInt(month1)==12)
var r=31;
else
var r=30;
var day=w;
for(var d=1;d<=r;d++){
body.all[day++].innerText=d;
if(parseInt(year1)==(new Date()).getYear() && parseInt(month1)==(new Date()).getMonth()+1 && d==(new Date()).getDate())
body.all[day-1].style.backgroundColor="red";
body.all[41].innerText="關(guān)閉";
}
break;


}

}
select1.onchange=function(){
for(var o in body.all){
body.all[o].innerText="";
if(o.toString()!="length")
body.all[o].style.backgroundColor="";
}
var month1=this.options[this.selectedIndex].text;
var year1=select.options[select.selectedIndex].text;
var y=parseInt(year1.substr(2,2)-0);
var c=parseInt(year1.substr(0,2));
var m=parseInt(month1);
m=m>=3?m:(y=y-1,m+12);
var d=1;
var w=y+parseInt(y/4)+parseInt(c/4)-2*c+parseInt(26*(m+1)/10)+d-1 ;
if(w<0) w=w+700;
w=w%7;
switch(parseInt(month1)){
case 2:
if(parseInt(year1)%4==0)
var r=29;
else
var r=28;
var day=w;
for(var d=1;d<=r;d++){
body.all[day++].innerText=d;
if(parseInt(year1)==(new Date()).getYear() && parseInt(month1)==(new Date()).getMonth()+1 && d==(new Date()).getDate())
body.all[day-1].style.backgroundColor="red";
body.all[41].innerText="關(guān)閉";
}
break;
default:

if(parseInt(month1)==1 || parseInt(month1)==3 || parseInt(month1)==5 || parseInt(month1)==7 || parseInt(month1)==8 || parseInt(month1)==10 || parseInt(month1)==12)
var r=31;
else
var r=30;
var day=w;
for(var d=1;d<=r;d++){
body.all[day++].innerText=d;
if(parseInt(year1)==(new Date()).getYear() && parseInt(month1)==(new Date()).getMonth()+1 && d==(new Date()).getDate())
body.all[day-1].style.backgroundColor="red";
body.all[41].innerText="關(guān)閉";
}
break;


}

}
var date=new Date();

for(var s1=0;s1<select.options.length;s1++){
if(parseInt(select.options[s1].text)==parseInt(date.getYear())){
select.options[s1].selected=true;
break;
}
}
for(var s2=0;s2<select1.options.length;s2++){
if(parseInt(select1.options[s2].text)==parseInt(date.getMonth())+1){
select1.options[s2].selected=true;
break;
}
}
select.onchange();
for(var i in body.all){
if(body.all[i].innerText==date.getDate()){
body.all[i].style.backgroundColor="red";
}
}
target.onfocus=function(){
document.body.appendChild(a);
a.style.left=target.offsetLeft+"px";;
a.style.top=target.offsetTop+target.offsetHeight+"px";
}
target.onblur=function(){
if(a && window.event.clientY>a.offsetTop && window.event.clientY<a.offsetTop+a.offsetHeight && window.event.clientX>a.offsetLeft && window.event.clientX<a.offsetLeft+a.offsetWidth)
return;
if(!a) return;
a.parentNode.removeChild(a);
}
body.all[41].innerText="關(guān)閉";
body.all[41].onclick=function(){
this.style.backgroundColor="";
a.parentNode.removeChild(a);

}
}
}

入口參數(shù)是要綁定的html對象,這里一般是text input.
下面是調(diào)用代碼:
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<script src="kongjian.js"></script>
<input type="text" id="a">
<script>
sx.activex.calender.bind(document.getElementById("a"));
</script>
</body>
</html>
差不多就這樣,代碼比較冗長,不是很好,如果哪位朋友有更好的辦法,請與我多多交流啊.

相關(guān)文章

  • js前端處理跨域的九種方式

    js前端處理跨域的九種方式

    本文主要介紹了js前端處理跨域的九種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • 詳解JavaScript中?.、??和??=的用法及使用場景

    詳解JavaScript中?.、??和??=的用法及使用場景

    這篇文章主要為大家詳細(xì)介紹了JavaScript中?.、??和??=的用法及使用場景,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-08-08
  • js實現(xiàn)帶翻轉(zhuǎn)動畫圖片時鐘

    js實現(xiàn)帶翻轉(zhuǎn)動畫圖片時鐘

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)帶翻轉(zhuǎn)動畫的圖片時鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 微信小程序?qū)崿F(xiàn)文件預(yù)覽

    微信小程序?qū)崿F(xiàn)文件預(yù)覽

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)文件預(yù)覽,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • javascript 對象屬性property與元素屬性attribute的瀏覽器支持

    javascript 對象屬性property與元素屬性attribute的瀏覽器支持

    對象屬性property與元素屬性attribute的瀏覽器支持情況,大家可以參考下。
    2010-10-10
  • 小程序測試后臺服務(wù)的方法(ngrok)

    小程序測試后臺服務(wù)的方法(ngrok)

    這篇文章主要介紹了小程序測試后臺服務(wù)的方法(ngrok),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 別了 JavaScript中的isXX系列

    別了 JavaScript中的isXX系列

    我們很容易被漂亮的代碼吸引,也不知不覺的在自己的代碼庫中加入這些。卻沒有冷靜的想過它們的優(yōu)劣。這不,我就收集了一系列形如 是否為……? 的判斷的boolean函數(shù)
    2012-08-08
  • JS 實現(xiàn)隨機(jī)驗證碼功能

    JS 實現(xiàn)隨機(jī)驗證碼功能

    驗證碼驗證是網(wǎng)頁常出現(xiàn)的一個驗證點,所謂驗證碼類型有很多,下面代碼只是實現(xiàn)一個簡單的驗證功能,需要的朋友參考下
    2017-02-02
  • kindeditor修復(fù)會替換script內(nèi)容的問題

    kindeditor修復(fù)會替換script內(nèi)容的問題

    這里給大家分享的是個人修改的kindeditor的代碼,主要是修復(fù)了一些BUG,添加了些常用功能,推薦給大家,有需要的小伙伴可以參考下。
    2015-04-04
  • 使用layer彈窗,制作編輯User信息頁面的方法

    使用layer彈窗,制作編輯User信息頁面的方法

    今天小編就為大家分享一篇使用layer彈窗,制作編輯User信息頁面的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09

最新評論

光泽县| 遂昌县| 中方县| 和龙市| 乳山市| 醴陵市| 抚顺县| 古蔺县| 南宁市| 宁城县| 防城港市| 漳州市| 东丽区| 新兴县| 辛集市| 临西县| 阜宁县| 武夷山市| 日喀则市| 铁岭县| 盖州市| 吉林省| 北宁市| 乌审旗| 安顺市| 嘉禾县| 肇州县| 屏东市| 聂拉木县| 罗甸县| 连平县| 淮北市| 黄骅市| 当阳市| 遂川县| 清徐县| 五华县| 泾阳县| 漳平市| 浏阳市| 军事|