1、需求分析
改变元素的宽、高、颜色、显示、重置等属性。
2、技术分析
基础的css、html、js
3、详细分析
如图,单击按钮,改变元素属性:
3.1 HTML部分
根据视图不难发现,内容分两大不分:按钮栏和效果图,所以设置两个div。
<body> <div class="outer"> <input type="button" value="变宽" > <input type="button" value="变高" > <input type="button" value="变色" > <input type="button" value="隐形" > <input type="button" value="重置" > </div> <div class="content"> </div> </body>
3.2 CSS部分
<style type="text/css">
/*页面格式化,清除浏览器默认编剧(浏览器预留给滚动条边距)*/ *{ padding: 0; margin: 0; } /*设置元素宽度,元素居中,文本居中*/ .outer{ 500px; argin: 0 auto; text-align: center; } /*元素样式*/ .content{ 100px; height: 100px; background: black; margin: 10px auto; } </style>
3.3 JS部分
<script type="text/javascript"> var changeStyle=function(elem,attr,value){//声明一个函数,包含三个参数(元素,属性,值),外部函数1 elem.style[attr]=value//三个参数之间的函数关系,元素的样式属性的集合等于值(点操作符:对象,方括号操作符:对象,数组) }; window.onload=function(){//文档加载完成时,调用函数 /*声明四大变量:按钮,元素,属性,值*/ var btn=document.getElementsByTagName("input");//按钮变量来自标签 var ctt=document.getElementClssName("content");//元素变量来自类名 var att=["width","height","background","display","display"];//属性名数组集合 var val=["200px","200px","red","none","block"];//属性值数组集合,属性值与属性名一一对应 for(var i=0;i<btn.length;i++){ btn[i].index=i;//数组btn中元素的索引值=i,给按钮数组中的每个元素编号 btn[i].onclick=function(){//给数组中的元素添加点击事件,点击第i个按钮,调用函数 changeStyle(ctt,att[this.index],val[this.index])//结合外部函数1,形成闭包,ctt为元素,this.index为按钮数组中元素的索引值,即i;属性att数组的第(this.index=i)个元素,属性值数组val的第(this.index=i)个元素值。 this.index==btn.length-1&&(ctt.style.cssText=" ");//可写成:if(this.index==btn.length-1){ctt.style.cssText=""},点击第四个按钮,清空css样式(cssText()适用块元素) } } } </script>