【码歌】养兵千日用兵一时,你准备好了吗?

直奔主题,今日分享就是两个小案例,帮助我们去融会贯通之前学过的JavaScript。

案例练习

1、九九乘法表

利用控制语句实现九九乘法表的打印。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>九九乘法表</title>
</head>
<body>
<!-- 
逻辑推导过程 
<table>
<tr>
<td style="border: 1px solid black;">1 * 1 = 1</td>
</tr>
<tr>
<td style="border: 1px solid black;">1 * 2 = 2</td>
<td style="border: 1px solid black;">2 * 2 = 4</td>
</tr>
<tr>
<td style="border: 1px solid black;">1 * 3 = 2</td>
<td style="border: 1px solid black;">2 * 3 = 6</td>
<td style="border: 1px solid black;">3 * 3 = 9</td>
</tr>
</table>
-->

<script type="text/javascript">
// 使用DOM对象创建一个table,并写入body
document.write("<table>");

// 外圈控制行数
for (var i = 1; i <= 9; i++) {
// 使用DOM对象创建一个tr,并写入到body的table中
document.write("<tr>");

// 内圈控制个数
for (var j = 1; j <= i; j++) {
// 使用DOM对象创建一个td,并写入到body中的table中的tr中
//console.log(i + " * " + j + " = " + i*j);
document.write("<td style='border: 1px solid black;'>" + j + " * " + i + " = " + i*j + "</td>");
}

document.write("</tr>");
}

document.write("</table>");
</script>
</body>
</html>

演示效果:

 

2、程序员求签

先看效果演示:

利用HTML+CSS+JS开发具有动态效果的程序员求签工具。

<!-- 必须写在HTML文件首行 -->
<!DOCTYPE html>
<!-- HTML文档的开始 -->
<html>
<!-- HTML文档的开头部分 -->
<head>
<!-- 文档属性 告诉浏览器采用什么编码解析文档 -->
<meta charset="utf-8" />
<!-- 文档标题 -->
<title>程序员求签</title>
<!-- 引入外部css文件 -->
<link rel="stylesheet" href="css/good_luck.css" />
<!-- HTML文档的开头结束 -->
</head>

<!-- HTML文档的主体部分开始 -->
<body>
<!-- 内容 -->
<div id="container">
<!-- 标题 -->
<div id="title">
程序员求签<sup>beta</sup><!-- sup上标字 -->
</div>

<!-- 详细信息 -->
<div id="info">
<b>求</b>婚丧嫁娶亲友疾病编程测试升职跳槽陨石核弹各类吉凶
</div>

<!-- 日期时间 -->
<div id="date"></div>

<!-- 求签部分 -->
<div id="good_luck">
<ul>
<li>编码测试修复提交之前求一签,可避凶趋吉</li>
<li>选择所求之事并在心中默念,再单击“求”即可</li>
<li>同一件事只能求一次,下次再求请刷新页面</li>
</ul>
<table id="table">
<tr>
<td>编码</td>
<td>测试</td>
<td>修复BUG</td>
<td>提交代码</td>
<td>其他</td>
</tr>
</table>
</div>

<!-- 求签结果 -->
<div id="result">
<div id="check">请点击所求之事</div>
<div id="ask">求</div>
<div id="answer">超大吉</div>
</div>

<!-- 引入外部js文件 -->
<script type="text/javascript" src="js/good_luck.js" ></script>
</div>
<!-- HTML文档的主体部分结束 -->
</body>
<!-- HTML文档的结束 -->
</html>

good_luck.css

/* 采用什么编码解析文件 */
@charset "utf-8";

/*
* 使用id选择器渲染id="container"标签的样式
*/
#container {
width: 350px;/* 宽350px */
margin: 50px auto;/* 顶部外间距50px 居中 */
}

/* -------------------------标题 begin------------------------- */
/*
* 使用id选择器渲染id="title"标签的样式
*/
#title {
background: gray;/* 背景色灰色 */
color: white;/* 字体白色 */
font-weight: bold;/* 字体加粗 */
font-size: 20px;/* 字体大小 */
padding: 10px 20px;/* 设置内间距 */
margin-bottom: 10px;/* 设置底部外间距10px */
}
/* -------------------------标题 end--------------------------- */

/* -------------------------详细信息 begin---------------------- */
/*
* 使用id选择器渲染id="info"标签的样式
*/
#info {
font-size: 12px;/* 字体大小 */
text-align: center;/* 文本居中 */
color: red;/* 字体红色 */
}

/*
* 使用id选择器定位id="info"标签
* 然后渲染其子标签b的样式
*/
#info b {
background: crimson;/* 背景色深红色 */
color: white;/* 字体白色 */
padding: 0 3px;/* 设置内间距 */
margin: 0 3px;/* 设置外间距 */
}
/* -------------------------详细信息 end------------------------ */

/* -------------------------日期时间 begin---------------------- */
/*
* 使用id选择器渲染id="date"标签的样式
*/
#date {
font-size: 22px;/* 字体大小 */
font-weight: bold;/* 字体加粗 */
line-height: 40px;/* 行间距 */
   text-align: center;/* 居中 */
   border-bottom: 1px solid gray;/* 底部边框颜色灰色 粗细1px */
}
/* -------------------------日期时间 end------------------------ */

/* -------------------------求签部分 begin---------------------- */
/*
* 使用id选择器渲染id="good_luck"标签的样式
*/
#good_luck {
font-size: 14px;/* 字体大小 */
}

/*
* 使用id选择器定位id="table"标签
* 然后渲染其子标签tr的子标签td的标签样式
*/
#table tr td {
width: 100px;/* 宽100px */
background: #CCCCCC;/* 背景色 */
padding: 10px 0;/* 设置顶部和底部内间距10px 左右为0 */
text-align: center;/* 居中 */
cursor: pointer;/* 鼠标变手势 */
border-radius: 2px;/* 边角变圆角 */
}

/* 添加鼠标移动至指定元素的样式修改 */
#table tr td:hover {
background: #AAAAAA;/* 背景色 */
}
/* -------------------------求签部分 end------------------------ */

/* -------------------------求签结果 begin---------------------- */
/*
* 使用id选择器渲染id="result"标签的样式
*/
#result {
height: 200px;/* 高度200px */
border: 2px solid #FFAAAA;/* 边框颜色 粗细2px */
margin-top: 10px;/* 设置外间距 */
position: relative;/* 子标签相对于父标签定位 */
overflow: hidden;/* 超出标签范围内容隐藏 */
}

/*
* 使用id选择器渲染id="check"标签的样式
*/
#check {
text-align: center;/* 居中 */
font-size: 30px;/* 字体大小 */
padding-top: 70px;/* 设置顶部内间距70px */
}

/*
* 使用id选择器渲染id="ask"标签的样式
*/
#ask {
background: crimson;/* 背景色深红色 */
position: absolute;/* 相对于父标签使用绝对定位 */
top: 205px;/* 从父标签顶部开始计算 */
left: 0px;/* 从父标签左部开始计算 */
width: 100%;/* 宽度是其父元素的100% */
height: 100%;/* 高度是其父元素的100% */
font-size: 100px;/* 字体大小 */
font-weight: bold;/* 字体加粗 */
cursor: pointer;/* 鼠标变手势 */
text-align: center;/* 居中 */
   line-height: 200px;/* 行间距 */
   color: white;/* 字体白色 */
   
   transition: all 0.5s;/* 所有样式改变效果耗时0.5秒 */
}

/*
* 使用id选择器渲染id="answer"标签的样式
*/
#answer {
background: white;/* 背景色白色 */
position: absolute;/* 相对于父标签使用绝对定位 */
top: 205px;/* 从父标签顶部开始计算 */
left: 0px;/* 从父标签左部开始计算 */
width: 100%;/* 宽度是其父元素的100% */
height: 100%;/* 高度是其父元素的100% */
font-size: 100px;/* 字体大小 */
font-weight: bold;/* 字体加粗 */
cursor: pointer;/* 鼠标变手势 */
text-align: center;/* 居中 */
   line-height: 200px;/* 行间距 */
   
   transition: all 0.5s;/* 所有样式改变效果耗时0.5秒 */
}
/* -------------------------求签结果 end------------------------ */

good_luck.js

/*
* 页面加载以后就执行的函数
*/
window.onload = function() {
// 创建日期对象
var today = new Date();

// 创建数组并初始化数组
var weeks = ["日 ", "一 ", "二 ", "三 ", "四 ", "五 ", "六 "];

// 拼接字符串得到一个中文日期,并设置为id="date"的div标签的内容
document.getElementById('date').innerHTML = "今天是 " + today.getFullYear() + "年 " + (today.getMonth() + 1) + "月 " + today.getDate() + "日 星期" + weeks[today.getDay()];

// 根据标签名称获取所有td标签
var tds = document.getElementsByTagName('td');

// 循环遍历td标签,给每一个td都添加一个点击事件
for(var i = 0; i < tds.length; i++) {
// 添加点击事件
tds[i].onclick = function() {
// 根据id获取id="asd"的div标签,并设置其top属性为0px(标签样式0.5秒移动至0px)
document.getElementById('ask').style.top = '0px';

// 根据id获取id="card"的div标签,并设置其display属性为none(隐藏div)
document.getElementById('check').style.display = 'none';

// 根据id获取id="answer"的div标签,并设置其top属性为205px(标签样式0.5秒移动至205px)
document.getElementById('answer').style.top = '205px';
}
}

// 创建数组并初始化数组
var results = ['超大吉', '大吉', '吉', '小吉', '小凶', '凶', '大凶', '超大凶'];

// 根据id获取id="asd"的div标签,并添加点击事件
document.getElementById('ask').onclick = function() {
// 生成一个0~7的随机数
var num = Math.floor(Math.random() * 8);
// 根据随机数(下标)获取results数组内对应的求签结果,并设置为id="answer"的div标签的内容
document.getElementById('answer').innerHTML = results[num];

// 根据id获取id="answer"的div标签,并设置其top属性为0px(标签样式0.5秒移动至0px)
document.getElementById('answer').style.top = '0px';
// 根据id获取id="asd"的div标签,并设置其top属性为205px(标签样式0.5秒移动至205px)
document.getElementById('ask').style.top = '205px';
}
}

好了,这里就是今天分享的内容。如果想获取素材自己练习,可以去找码歌悠悠QQ :1811119218 获取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值