7.做一个简单的日历

本文介绍了一个使用JavaScript实现的简单月份切换效果示例。通过点击不同的列表项来更改显示的月份,并更新页面上的文本内容。该示例展示了如何利用DOM操作实现基本的交互功能。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>

<script>

onload = function () {

var box1 = document.getElementById("box"); // 提取ul

var tExt = document.getElementsByTagName("div")[0]; //提取div

var month = document.getElementssByTagName("li"); // 声明变量保存所有的月份

var len = month.length;

function mOnth(){

for(var i = 0; i<len;i++){

month[i].index = i;

month[i].onclick = function () {

for(var j = 0;j<len;j++){

month[i].className = ""; // 遍历所有的li 中的class为空(清除)

}

this.className = "active"; // 给每一个遍历到的li元素,添加css中的一个class名为active的样式

tExt.innerHTML = (this.index+1) + "月份"; //输出文本框中的内容,只有数字变化,所以拼接每一个li的下标数+1(下标从0开始的);

}

}

}

mOnth ();

}

</script>
<style>
body{
background: black;
}
*{
margin: 0;padding: 0;
}
.active{
background: white;
color: yellow;
}
ul{
height: 400px;
width: 700px;
display: flex;
flex-wrap: wrap;
justify-content: space-around;
background: #ccc;
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
margin: auto;
}
li{
transition: all 1s;
margin-top: 10px;
list-style: none;
height: 80px;
width: 145px;
background: red;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
li:hover{
transform: scale(1.2);
transform: rotateZ(360deg);
}
li p {
font-size: 25px;
font-weight: 700;
font-family: "微软雅黑";
}
.text{
width: 240px;
height: 58px;

text-align: center;
line-height: 58px;
font-size: 30px;
font-family:"微软雅黑";


}
</style>
<body>


<ul id="box">
<li class="active">
<p>1</p>
<a>Jan</a>
</li>
<li>
<p>2</p>
<a>Jan</a>
</li>
<li >
<p>3</p>
<a>Jan</a>
</li>
<li>
<p>4</p>
<a>Jan</a>
</li>
<li>
<p>5</p>
<a>Jan</a>
</li>
<li>
<p>6</p>
<a>Jan</a>
</li>
<li>
<p>7</p>
<a>Jan</a>
</li>
<li>
<p>8</p>
<a>Jan</a>
</li>
<li>
<p>9</p>
<a>Jan</a>
</li>
<li>
<p>10</p>
<a>Jan</a>
</li>
<li>
<p>11</p>
<a>Jan</a>
</li>
<li>
<p>12</p>
<a>Jan</a>
</li>


<div class="text">
1月份
</div>
</ul>


</body>
</html>

好的,以下是一个简单的Java Swing日历实现: ``` import javax.swing.*; import java.awt.*; import java.util.Calendar; import java.util.GregorianCalendar; public class CalendarApp extends JFrame { private JLabel monthLabel; private JPanel monthPanel; private JPanel dayPanel; private JLabel[] dayLabels; public CalendarApp() { setTitle("Calendar"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new BorderLayout()); // 创建月份标签 monthLabel = new JLabel(); monthLabel.setHorizontalAlignment(SwingConstants.CENTER); add(monthLabel, BorderLayout.NORTH); // 创建月份面板 monthPanel = new JPanel(new GridLayout(0, 7)); add(monthPanel, BorderLayout.CENTER); // 创建日期面板 dayPanel = new JPanel(new GridLayout(0, 7)); add(dayPanel, BorderLayout.SOUTH); // 创建日期标签 dayLabels = new JLabel[42]; for (int i = 0; i < dayLabels.length; i++) { dayLabels[i] = new JLabel(); dayLabels[i].setHorizontalAlignment(SwingConstants.CENTER); dayPanel.add(dayLabels[i]); } // 设置窗口大小并显示 setSize(400, 300); setVisible(true); // 更新日历 updateCalendar(); } private void updateCalendar() { // 获取当前月份和年份 Calendar calendar = new GregorianCalendar(); int month = calendar.get(Calendar.MONTH); int year = calendar.get(Calendar.YEAR); // 设置月份标签 monthLabel.setText((month + 1) + "/" + year); // 清除日历 for (int i = 0; i < dayLabels.length; i++) { dayLabels[i].setText(""); } // 获取当前月份的第一天 calendar.set(Calendar.DAY_OF_MONTH, 1); int firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); // 设置月份面板 String[] daysOfWeek = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; for (int i = 0; i < daysOfWeek.length; i++) { JLabel label = new JLabel(daysOfWeek[i]); label.setHorizontalAlignment(SwingConstants.CENTER); monthPanel.add(label); } for (int i = 1; i < firstDayOfWeek; i++) { monthPanel.add(new JLabel()); } for (int i = 1; i <= calendar.getActualMaximum(Calendar.DAY_OF_MONTH); i++) { JLabel label = new JLabel(Integer.toString(i)); label.setHorizontalAlignment(SwingConstants.CENTER); monthPanel.add(label); } } public static void main(String[] args) { new CalendarApp(); } } ``` 这个日历应用程序使用了Java的Swing组件和Calendar类来生成日历。它包括一个月份标签、一个月份面板和一个日期面板。在月份面板中,我们将星期几的名称添加到第一行,并在第二行添加第一个日期。在日期面板中,我们添加了每个日期的标签,并将它们按照星期几的顺序排列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值