简易万年历

在这里插入图片描述
在这里插入图片描述
这是万年历,效果是当你点击每个li时,下方的div标签中的p和h2标签相应的改变。

我先写一下我的思路:
先把要放进p标签的内容放进一个数组里
获取各个标签
//外部循环
//遍历li 给每个li加不可见的自定义属性,用来设置每个li的索引值,来匹配对应的p标签的内容.
//onclick点击事件
//内循环
//再遍历一遍li来清除所有li的class
//点谁this就是谁 获取的是你当时点击的那个li给它active属性 this.classname=‘active’
//再把p标签的内容设置为根据索引值获取那个数组中的字符。
//h2标签中的月份就是索引值+1

js代码如下:

var obox=document.getElementById("box");
        var ali=obox.querySelectorAll('li');
        var oh2=document.querySelector(".text h2")
        var op=document.querySelector('.text p');
        for (var i=0;i<ali.length;i++){
            // var i in ali
            ali[i].index =i;//自定义属性不可见的存的是什么就是什么,可见的必须要存字符
            console.log(ali,i);
            ali[i].οnclick=function(){
                for (var j=0;j<ali.length;j++){
                    //var j in ali
                    ali[j].className="";
                }
                this.className="active";
                oh2.innerHTML=this.index+1 +"月活动";
                op.innerHTML=arr[this.index];
            }
    }

为了方便大家测试
这里是html:

<body>
<div id="tab" class="calendar">
 <ul id="box">
     <li class="active"><h2>1</h2><p>JAN</p></li>
     <li ><h2>2</h2><p>FER</p></li>
     <li ><h2>3</h2><p>MAR</p></li>
     <li ><h2>4</h2><p>APR</p></li>
     <li ><h2>5</h2><p>MAY</p></li>
     <li><h2>6</h2><p>JUN</p></li>
     <li><h2>7</h2><p>JUL</p></li>
     <li><h2>8</h2><p>AUG</p></li>
     <li><h2>9</h2><p>SEP</p></li>
     <li><h2>10</h2><p>OCT</p></li>
     <li><h2>11</h2><p>NOV</p></li>
     <li><h2>12</h2><p>DEC</p></li>
 </ul>
 <div class="text" id="txt">
     <h2>1月活动</h2>
     <p>快过年了,大家可以商量着去哪玩吧~</p>
 </div>
</div>
</body>

下面是css:

<style type="text/css">
     * { padding: 0; margin: 0; }
     li { list-style: none; }
     body { background: #f6f9fc; font-family: arial; }

     .calendar { width: 210px; margin: 0 auto; padding: 10px 10px 20px 20px; background: #eae9e9; }
     .calendar ul { width: 210px; overflow: hidden; padding-bottom: 10px; }
     .calendar li { float: left; width: 58px; height: 54px; margin: 10px 10px 0 0; border: 1px solid #fff; background: #424242; color: #fff; text-align: center; cursor: pointer; }
     .calendar li h2 { font-size: 20px; padding-top: 5px; }
     .calendar li p { font-size: 14px; }

     .calendar .active { border: 1px solid #424242; background: #fff; color: #e84a7e; }
     .calendar .active p { font-weight: bold; }

     .calendar .text { width: 178px; padding: 0 10px 10px; border: 1px solid #fff; padding-top: 10px; background: #f1f1f1; color: #555; }
     .calendar .text h2 {font-size: 14px; margin-bottom: 10px; }
     .calendar .text p { font-size: 12px; line-height: 18px; }

 </style>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值