题目





分析

三个皮肤切换按钮的选择
  • 用li即可。
点击显示白点
  • li中嵌套一个li,onclick时改变子元素li的css
onload

当页面加载完成后立即执行一段JavaScript代码。

onload 属性在对象已加载时触发。

onload 常用在"body"中,一旦完全加载所有内容(包括图像、脚本文件、CSS 文件等),就执行一段脚本。

在 HTML 中:

<body onload="SomeJavaScriptCode">

在 JavaScript 中:

window.onload=function(){SomeJavaScriptCode};

总结

在怎么显示三个并排的换肤按钮和点击显示白点这两块纠结很久,一方面想要更优雅的实现不想用嵌套div,一方面又想学习小练习1中的循环遍历思想,所以花了很久时间。其实思路很清晰,自己能力还是需要大大加强,多练习。

疑问

这里的onload不是很明白,代码中去掉onload显示是正常的,不知道这里的onload是否可有可无?

代码

效果:网页换肤

<!DOCTYPE html>
<html>
<head>
<title>网页换肤</title>
<link rel="shortcut icon" href="../icons/project.jpg">
<style type="text/css">
body {
background-color: rgb(255, 221, 221);
}
.main {
width: 500px;
margin: 0 auto;
}
button {
width: 12px;
height: 12px;
margin: 2px;
padding: 0;
outline: none;
border: 0;
text-align: center;
}
#red {
background-color: red;
}
#green {
background-color: green;
}
#black {
background-color: black;
}
#content {
margin-top: 5px;
text-align: center;
border-collapse: collapse;
background-color: red;
}
#content td {
width: 600px;
height: 23px;
border: 1px solid white;
font-size: small;
color: white;
}
td:hover {
text-decoration: underline;
cursor: pointer;
}
li {
width: 4px;
height: 4px;
background-color: white;
list-style-type: none;
margin-left: 4px;
display: none;
}
</style>
</head>
<body>
<div class="main"> <button id="red" title="红色" class="current"><li></li></button>
<button id="green" title="绿色" ><li></li></button>
<button id="black" title="黑色"><li></li></button>
<table id="content">
<tr>
<td>新闻</td>
<td>娱乐</td>
<td>体育</td>
<td>电影</td>
<td>音乐</td>
<td>旅游</td>
</tr>
</table>
<p id="demotest"></p>
</div>
<script>
var setTacolor = function(ccolor) {
var ta = document.getElementById("content");
ta.style.backgroundColor = ccolor;
}
var setBacolor = function(ccolor) {
document.body.style.backgroundColor = ccolor;
}
var oTa = document.getElementById("content");
var baColor = ["rgb(255, 221, 221)", "rgb(163, 197, 168)", "rgb(204, 204, 204)"]
;
var taColor = ["red", "green", "black"];
var oBtn = document.getElementsByTagName("button");
var oLi = document.getElementsByTagName("li");
window.onload = function() {
for(var i = 0; i < oBtn.length; ++ i) {
oBtn[i].index = i;
oBtn[i].onclick = function() {
for(var j = 0; j < oBtn.length; ++ j) {
j != this.index && (oLi[j].style.display = "none");
}
oLi[this.index].style.display = "block";
setTacolor(taColor[this.index]);
setBacolor(baColor[this.index]);
}
}
} </script>
</body>
</html>

JavaScript小练习2-网页换肤的更多相关文章

  1. JavaScript网页换肤

    使网页背景颜色可选黄/粉 <!doctype html> <html> <head><title>网页换肤</title></head ...

  2. JS实现网页换肤功能效果

    网页换肤的基本原理 使用 JS 切换对应的 CSS 样式表.例如hao123首页的右上方就有网页换肤功能.除了切换 CSS 样式表文件之外,通常的网页换肤还需要通过 Cookie 来记录用户之前更换过 ...

  3. js网页换肤

    使网页背景颜色可选黄/粉 <html> <head> <meta charset="utf-8"> <meta name="ge ...

  4. 【转】Javascript+css 实现网页换肤功能

    来源:http://www.php100.com/html/webkaifa/DIV_CSS/2008/1014/2326.html Html代码部分: 1.要有一个带id的样式表链接,我们要通过操作 ...

  5. 网页换肤,模块换肤,jQuery的Cookie插件使用(转)

    具体效果如下: 第一次加载如下图: 然后点击天蓝色按钮换成天蓝色皮肤如下图: 然后关闭网页重新打开或者在打开另一个网页如下图: 因为皮肤用Cookie保存了下来,所以不会重置 具体的实现代码如下: & ...

  6. 基于js的网页换肤(不需要刷新整个页面,只需替换css文件)

    1. [代码][JS]代码    <HTML><HEAD><link ID="skin" rel="stylesheet" typ ...

  7. JavaScript实现网页换肤

    <html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...

  8. 网上找到的一个jquery版网页换肤特效

    这个跟我之前在锋利的JQuery那本书里看到的那个一模一样. <!DOCTYPE html> <html> <head> <meta name="& ...

  9. css, js 项目练习之网页换肤

    首先,该练习参考自:https://www.jianshu.com/p/2961d9c317a3 我就直接上代码了(颜色可以自己调). HTML: <nav> <li>< ...

随机推荐

  1. SSRS 2008R2 执行Log 查询

    1. 可以参考ExecutionLog3试图,此为系统安装Reporting Service自带的试图. 2. 可以使用以下语句查询: SELECT els.LogEntryId, els.Insta ...

  2. 关于H5的自定义属性data-*

    data-* 是H5的新属性,用来让开发者对标签添加自定义属性的. 其读写方式有如下几种: 如果是 data-abc 的格式,则采用正常格式 abc 来读写该属性值 <div id=" ...

  3. PHP 多图片上传实例demo

    upload.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  4. nodejs + redis/mysql 连接池问题

    nodejs + redis/mysql 连接池问题 需不需要连接池 连接池的作用主要是较少每次临时建立连接所带来的开销.初步一看,nodejs运行单线程上,它不能同时使用多个连接,乍一看是不需要连接 ...

  5. Java任务调度框架Quartz入门

    Quartz[kwɔːts]:石英,其框架和名字一样简单朴素又不失魅力,在Java程序界,Quartz大名鼎鼎,很多Java应用几乎都集成或构建了一个定时任务调度系统,Quartz是一个定时任务调度框 ...

  6. PHP开发必用的mysql那么你知道Mysql中MyISAM和InnoDB的区别吗?

    构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个文件的名字以表的名字开始,扩展名指出文件类型. .frm文件存储表定义. 数据文件的扩展名为.MYD (MYData). 索引文件的扩展名 ...

  7. Oracle 查看占用undo大的sql语句

    select s.sid,s.serial#,s.sql_id,v.usn,segment_name,r.status, v.rssize/1024/1024 mb     from dba_roll ...

  8. CDN缓存策略

    以下内容就是FAQ,自己也学习一下... 1.CDN加速原理通过动态域名解析,网友的请求被分配到离自己最快的服务器.CDN服务器直接返回缓存文件或通过专线代理原站的内容.网络加速+内容缓存,有效提供访 ...

  9. ego network的概念

    转:http://greatpowerlaw.wordpress.com/2013/01/05/ego-network/ 所谓的ego network,它的节点是由唯一的一个中心节点(ego),以及这 ...

  10. webpack学习(三)html-webpack-plugin插件

    一.html-webpack-plugin插件 简单创建 HTML 文件,用于服务器访问 例如:我们要为输出文件添加哈希值标记,避免老的不变的文件重新加载,避免新修改的文件受缓存影响. 在前后两次在终 ...