PDA

Просмотр полной версии : Календарь


Vita
24.05.2009, 14:04
Пожалуйста помогите разобраться,
1 вариант: у кого есть календарь с выбором месяца и года (до 2020 хотя бы)
если нет ни у кого календаря, то
2 вариант: у меня есть календарь, но не могу убрать прозрачный фон, нужно залить цветом, никак не получается вот код:
<script language="JavaScript">
var firstYear= 1900
var lastYear= 2010

myDate= new Date
var curMonth= myDate.getMonth ()
var curYear= myDate.getYear ()
var curDate= myDate.getDate ()

Years= new Array (lastYear - firstYear);
Month= new Array ("Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь");

daysInMonth = new Array (31,28,31,30,31,30,31,31,30,31,30,31);
numbTableCell = 42

function updateCalendar(UcurYear,UcurMonth){

isLeap (UcurYear)
var firstDay= setFirstDay (UcurYear,UcurMonth)

if (firstDay == 0)
firstDay= 7
firstDay--

tableOffset= 10;
temp= 0
for (i=0; i < firstDay; i++){
calendar.all[i+ tableOffset ].innerText= " ";
calendar.all[i+ tableOffset ].bgColor= "#ffffff"
temp++
}
j= i + tableOffset

for (i=1; i <= daysInMonth[UcurMonth];i++){
if (temp == 7){
j++
temp= 0
}
if (curDate != i){
calendar.all[j].innerText= i
calendar.all[j].bgColor= "#ffffff"
}
else{
calendar.all[j].innerText= i
calendar.all[j].bgColor= "#a0d4ff"
}
temp++
j++
}
for (i=0;i < (numbTableCell- daysInMonth[UcurMonth]-firstDay); i++){
if (temp == 7){
j++
temp= 0
}
calendar.all[j].innerText= " ";
calendar.all[j].bgColor= "#ffffff"
temp++
j++
}
}

function outCalendar (FcurYear,FcurMonth)
{
isLeap (FcurYear)
var firstDay= setFirstDay (FcurYear,FcurMonth)

if (firstDay == 0)
firstDay= 7
firstDay--

document.write ('<table id= "calendar" cellspacing= 2 cellpadding= 0 border=1 Class="text">')
document.write ('<tr align= center bgColor="#78c850"><td>Пн</td><td>Вт</td><td>Ср</td><td>Чт</td><td>Пт</td><td bgColor="#f06c40">Сб</td><td bgColor="#f06c40">Вс</td></tr>')

temp= 0
j= 0
document.write ('<tr align= right>')
for (i=0; i < firstDay; i++){
document.write ('<td>&nbsp</td>')
temp++
j++
}
k= j

for (i= 1; i <= numbTableCell - k;i++){
if (temp == 7){
temp= 0
document.write ('</tr><tr align= right>')
}
if (i <= daysInMonth[FcurMonth]){
if (curDate != i)
document.write ('<td>'+ i +'</td>')
else
document.write ('<td bgColor= "#a0d4ff">'+ i +'</td>')
}
else
{
document.write ('<td>&nbsp</td>')
}

j++
temp++
}
document.write ('</tr></table>')
}

function setFirstDay (year,month){
var tempDay= new Date (year, month, 1)
return tempDay.getDay ()
}

function isLeap (year){
if (
(year % 4 == 0)&
( (year % 100 != 0) ||(year % 400 == 0) )
)
daysInMonth [1]= 29
else
daysInMonth [1]= 28
}

function insertSpace (num){
for(i=0;i<num;i++)
document.write ('&nbsp')
}

</script>
</head>

<body>
<script language= "JavaScript">
<!--
document.write ('<select name= "selMonth" size= 1 onChange= "updateCalendar (selYears.value,selMonth.value)">')
for (i= 0;i < Month.length; i++)
{
document.write ('<option value='+i+'>' + Month [i])
}
document.write ('</select>')
selMonth.selectedIndex= curMonth
insertSpace (1)
document.write ('<select name= "selYears" size= 1 onChange= "updateCalendar (selYears.value,selMonth.value)">')
for (i= firstYear ;i < lastYear; i++)
{
Years[i- firstYear]= i
document.write ('<option value='+i+'>'+ Years[i-firstYear])
}
document.write ('</select>')
selYears.selectedIndex= curYear - firstYear
document.write ('<br><br>')
outCalendar (curYear,curMonth)
//-->
</script>

wilin
24.05.2009, 15:36
А если поместить календарик в таб залитый цветом?

Vita
24.05.2009, 21:19
ну я в принципе почти так и сделала))) но я хотела как то по нормальному... чтоб все как надо было, везде фон поменяла в коде, но видимо там стоит какое то значение, в кот. я не разбираюсь, поэтому сначала он прозрачный, а потом когда месяц меняешь заливка видна

wilin
24.05.2009, 21:26
А если через document.write(), прямо в td и tr bgcolor сделать?

VladiT
25.05.2009, 18:17
Пропиши класс стиля перед скриптом, например:

<style>
.text {border: 1px solid #000000; background: #aaaaaa;}
.text TD {padding: 1px; border: 1px solid #333333; text-align: center; font-family: arial; font-size: 12px}
</style>

Здесь background: #aaaaaa; и есть цвет фона.


чтоб небыло заливок при смене месяца, удали все строки calendar.*.bgColor= *

Vita
25.05.2009, 20:42
СПАСИБО большое!!!! VladiT. моя благодарность просто безгранична!!!!!!