简易日历 (innerHTML和行间提取事件的练习)

简易日历,鼠标移入月份实现当前月份style改变,对应文字改变显示.
这里写图片描述
这里写图片描述
总结几个小点:
1.每个月份对应的文字用数组来装,(数据量大,用div的显示和隐藏不现实);
2.用循环的方式为每个月份添加onmouseover事件;
3.用js的方式给月份添加索引,利于对应月的文字选择(若用html自定义属性添加会被FF过滤掉);
4.innerHTML不仅可以读写文本内容,还可以改变HTML内容(包括标签)。

简单代码如下

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>JS简易日历</title>
		<style>
			#calendar{width:300px;
			          height:auto;
			          background:#ccc}
			.active{background:burlywood;}
			ul{margin: 0  auto;}
			ul li{display: inline-block;
			      list-style:none;
			      border:1px solid #CCC;
			      width:50px;
			      height:50px;
			      background:salmon;
			      color:white;
			      text-align: center;}
			#text{margin-left:15%}
		</style>
		<script>
			window.onload = function(){
				
			var arr=['正月梅花香又香',
				         '二月兰花盆中装',
				         '三月桃化红十里',
				         '四月蔷薇靠短墙',
				         '五月石榴红似火',
				         '六月荷花满池塘',
				         '七月栀子头上戴  ',
				         '八月桂花满树黄',
				         '九月菊花初开放',
				         '十月芙蓉正上妆',
				         '十一月水仙供上案',
				         '十二月腊梅雪中香'];
				         
var calendar = document.getElementById('calendar');
var moon = calendar.getElementsByTagName('li');
var text = calendar.getElementsByTagName('div')[0];
				
for(var i = 0;i < moon.length; i++)
{
	moon[i].index = i;
	moon[i].onmouseover = function()
	{
	  for(var i= 0;i<moon.length;i++)
	 {
		moon[i].className = '';
	}
	this.className = 'active'; 
	text.innerHTML = '<h4>'+(this.index+1)+'月</h4><p>'+arr[this.index]+'</p>'
		}
	}
};
</script>
	</head>
	<body>
		<div id="calendar">
			<ul id="ul">
				<li class="active">Jan</li>
				<li>Feb</li>
				<li>Mar</li><br />
				<li>Apr</li>
				<li>May</li>
				<li>Jun</li><br />
				<li>Jul</li>
				<li>Aug</li>
				<li>Sep</li><br />
				<li>Oct</li>
				<li>Nov</li>
				<li>Dec</li><br />
			</ul>
			<div id="text">
			</div>
		</div>
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值