黑马程序员技术交流社区

标题: [石家庄校区]web-day03 [打印本页]

作者: Black_Y    时间: 2018-5-3 15:35
标题: [石家庄校区]web-day03


web-day03

# 使用JS完成图片轮播效果
# 使用JS完成页面定时弹出广告
# 使用JS完成表单的校验
# 使用JS完成表格的隔行换色
# 使用JS完成复选框的全选效果
# 使用JS完成省市联动效果

##图片轮播
```html
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title></title>
  <script type="text/javascript">
   /*function setTime(){
    window.setInterval("alert('aaa')",3000);
   }*/
   //匿名函数
   window.onload=function(){
    window.setInterval("change()",3000)
   
   }
   var i=1;
   function change(){
    i++;
    if(i>3){
     i=1;
    }
    var imge=document.getElementById("image")
    imge.src="../img/img/"+i+".jpg"
   }
   
  </script>
  
</head>
<body >
  //步骤一创建html文件
  //步骤二页面加载使用onload事件
  //步骤三出发函数setTime()
  //步骤四获得图片的控制权
  //修改图片的src属性
  <table>
   <tr>
    <td>
     <img id="image" src="../img/img/1.jpg"/>
    </td>
   </tr>
   <!--<tr>
    <td>
     <img src="../img/img/middle01.jpg"/>
    </td>
   </tr>-->
  </table>

  
</body>
</html>
```


##页面定时弹出广告(无限循环)
```html
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title></title>
  <script>
   var time;
   window.onload=function(){
    time=window.setInterval("show()",2000)
   }
   //显示图片
   function show(){
    var adDiv=document.getElementById("adDiv")
    adDiv.style.display="block"
    clearInterval(time)
    setInterval("hide()",2000)
   
   }
   //隐藏图片
   function hide(){
    var adDiv=document.getElementById("adDiv")
    adDiv.style.display="none"
    clearInterval(time)
    setInterval("show()",2000)
   }

   
   
  </script>
  
  
</head>
<body>
  <div id="adDiv" style="display: none;">
   <img src="../img/img/ad.jpg"/>
  </div>
  <div>
   <img src="../img/img/1.jpg"/>
  </div>
</body>
</html>
```
##表单校验(表单中的必要属性 type name id-----name是后台需要的 id是前台需要的 type是基本的属性类型)
```html
<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title></title>
  <script type="text/javascript">
   function checkForm() {
    var username = document.getElementById("username").value
    if(username == "") {
     //alert("用户名不能为空");
     var sp=document.getElementById("sp")
     sp.innerHTML="<font color='red'>用户名不能为空</font>"
     return false;
    }
    var password=document.getElementById("mima").value
    if(password==""){
     return false;
    }
    return true;
   }
   
  </script>
  <script>
   function tips(){
   
    var sp=document.getElementById("sp")
    sp.innerHTML="<font color='red'>用户名必须字母开头</font>"
   }
  </script>

</head>
<body>
  <table border="1px" width="90%">
   <!--<tr>
    <td>
     <img src="../img/img/header.png"/>
    </td>
   </tr>
   <tr>
    <td>
     <img src="../img/img/2.jpg"/>
    </td>
   </tr>-->
   <tr>
    <td>
     <img src="../img/img/ad.jpg" />
    </td>
   </tr>
   <tr>
    <td>
     <form action="../JS和CSS/定时弹出广告.html" method="get">
      <table width="40%" align="center" height="500">
       <tr>
        <td>用户名</td>
        <td>
         <input type="text" class="requide" name="aaa" id="username"/>
         <span id="sp"></span>
        </td>
       </tr>
       <tr>
        <td>密码</td>
        <td>
         <input type="password" class="requide" id="mima" />
        </td>
       </tr>
       <tr>
        <td>邮箱</td>
        <td>
         <input type="email" class="requide" id="el" />
        </td>
       </tr>
       <tr>
        <td>籍贯</td>
        <td>
         <select name="provice">
          <option value="请选择">请选择</option>
          <option value="北京">北京</option>
          <option value="上海">上海</option>
          <option value="天津">天津</option>
         </select>
         <select name="city">
          <option value="请选择">请选择</option>
          <option value="石家庄">石家庄</option>
          <option value="保定">保定</option>
          <option value="廊坊">廊坊</option>
         </select>
        </td>
       </tr>
       <tr>
        <td>性别</td>
        <td>
         <!--记得加上name属性,这样会同属一组,单选选项必须在同一组中-->
         <input type="radio" name="radio" value="男" checked="checked"/>男
         <input type="radio"name="radio" />女
        </td>
       </tr>
       <tr>
        <td>提交</td>
        <td>
         <input type="submit"  value="提交" />
        </td>
       </tr>
       <tr>
        <td>重置</td>
        <td>
         <input type="reset" value="重置" />
        </td>
       </tr>
      </table>
     </form>
    </td>
   </tr>
  </table>

</body>
</html>
```
```html
【步骤一】创建一个html文档
【步骤二】在要去校验的文本框上添加事件.
【步骤三】触发函数
【步骤四】在函数中向文本框后的html的区域中写入一段提示的内容.
1.4.3 代码实现:
   function tips(id,content){
    document.getElementById(id+"Span").innerHTML = "<font color='red'>"+content+"</font>";
   }
   
   function checkForm(){
    // 判断用户名不能为空:
    var username = document.getElementById("username").value;
    if(username == ""){
     document.getElementById("usernameSpan").innerHTML = "<font color='red'>用户名不能为空!</font>";
     return false;
    }
   
    var password = document.getElementById("password").value;
    if(password == ""){
     document.getElementById("passwordSpan").innerHTML = "<font color='red'>密码不能为空!</font>";
     return false;
    }
   }
JS的事件的总结:

* onload :
* onclick :
* onsubmit :
* onfocus :
* onblur :
* onchange :下拉列表改变事件.
* ondblclick:双击某个元素的事件.

键盘操作事件:
* onkeydown :
* onkeyup :
* onkeypress:

鼠标操作事件:
* onmousemove:
* onmouseout:
* onmouseover:
* onmousedown
* onmouseup

```
##隔行换色
###技术分析
```html
var tab1=document.getElementById("tab1")//获得对象控制权
var len=tab1.rows.length//获得该表格的行数

其中,tab1.rows方法是获得一个表格的行数数组
```
```html
<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title></title>
  <script type="text/javascript">
   window.onload=function(){
    var tab1=document.getElementById("tab1")
    var len=tab1.rows.length
    for(var i=0;i<len;i++){
     if(i%2==0){
      tab1.rows.style.backgroundColor="red"
     }else{
      tab1.rows.style.backgroundColor="yellow"
     }
    }
   }
  </script>
</head>

<body>
  <!--1.5.2.2 步骤分析:
  【步骤一】创建一个HTML页面:可以使用后台设计页面.
  【步骤二】确定事件:onload事件.
  【步骤三】触发一个函数.在这个函数中获得操作的表格.
  【步骤四】获得表格中的所有的行数.
  【步骤五】遍历表格的行数.
  【步骤六】判断是否是奇数行还是偶数行
  -->
  <!--插入表格   六行四列-->
  <table border="1px" align="center" width="50%" id="tab1">
   <tr>
    <td align="center"><b>分类的ID</b></td>
    <td align="center"><b>分类的名称</b></td>
    <<td align="center"><b>分类的描述</b></td>
     <td align="center"><b>分类的操作</b></td>
   </tr>
   <tr>
    <td>1</td>
    <td>手机数码</td>
    <td>手机数码</td>
    <td>
     <a href="#">修改</a>
     <a href="#">删除</a>
    </td>
   </tr>
   <tr>
    <td>2</td>
    <td>电脑办公</td>
    <td>电脑办公</td>
    <td>
     <a href="#">修改</a>
     <a href="#">删除</a>
    </td>
   </tr>
   <tr>
    <td>3</td>
    <td>烟酒糖茶</td>
    <td>烟酒糖茶</td>
    <td>
     <a href="#">修改</a>
     <a href="#">删除</a>
    </td>
   </tr>
   <tr>
    <td>4</td>
    <td>鞋靴箱包</td>
    <td>鞋靴箱包</td>
    <td>
     <a href="#">修改</a>
     <a href="#">删除</a>
    </td>
   </tr>
   <tr>
    <td>5</td>
    <td>汽车用品</td>
    <td>汽车用品</td>
    <td>
     <a href="#">修改</a>
     <a href="#">删除</a>
    </td>
   </tr>
  </table>
</body>

</html>
```
##表格复选框的全选和全不选
```html
1.6.2.2 步骤分析:
【步骤一】创建一个HTML页面.
【步骤二】确定事件:复选框的单击事件.
【步骤三】触发一个函数
【步骤四】在函数中,获得上面的复选框是否被选中.
【步骤五】如果选中,下面的所有的复选框都被选中.
【步骤六】如果不选中,下面的所有的复选框都不选中.

function checkAll(){
    // 获得上面的复选框
    var selectAll = document.getElementById("selectAll");
    // 判断这个复选框是否被选中.
    var ids = document.getElementsByName("ids");
    if(selectAll.checked == true){
     // 上面复选框被选中:获得下面所有的复选框,修改checked属性
     for(var i = 0 ;i<ids.length;i++){
      ids.checked = true;
     }
    }else{
     // 上面复选框没有被选中:获得下面所有的复选框,修改checked属性
     for(var i = 0 ;i<ids.length;i++){
      ids.checked = false;
     }
    }
   
   }


```
```html
DOM的常用的操作】
 获得元素:
* document.getElementById();  -- 通过ID获得元素.
* document.getElementsByName();  -- 通过name属性获得元素.
* document.getElementsByTagName(); -- 通过标签名获得元素.
 创建元素:
* document.createElement();   -- 创建元素
* document.createTextNode();  -- 创建文本
 添加节点:
* element.appendChild();   -- 在最后添加一个节点.
* element.insertBefore();   -- 在某个元素之前插入.
 删除节点:
* element.removeChild();   -- 删除元素
```

省市联动
```html
1.7.2.1 技术分析:
【JS中创建数组】

【JS的事件】
下拉的列表的改变的事件.onchange.
【JS的DOM的操作】
创建元素:
添加元素:
1.7.2.2 步骤分析
【步骤一】创建一个HTML文件.
【步骤二】确定事件:onchange事件.
【步骤三】触发函数,在函数中编写代码.
【步骤四】获得到所选择的省份的信息.
【步骤五】根据选择的省份的信息获得到对应的数组中的市的数据.
【步骤六】遍历数组中的市的信息.
【步骤七】创建元素,创建文本,最后将元素添加到第二个列表中.
1.7.3 代码实现:
   // 定义数组:二维数组:
   var arrs = new Array(5);
   arrs[0] = new Array("杭州市","绍兴市","温州市","义乌市","嘉兴市");
   arrs[1] = new Array("南京市","苏州市","扬州市","无锡市");
   arrs[2] = new Array("武汉市","襄阳市","荆州市","宜昌市","恩施");
   arrs[3] = new Array("石家庄市","唐山市","保定市","邢台市","廊坊市");
   arrs[4] = new Array("长春市","吉林市","四平市","延边市");
   
   function changeCity(value){
    // 获得到选中的省份的信息.
    var city = document.getElementById("city");
   
    // 清除第二个列表中的内容:
    for(var i=city.options.length;i>0;i--){
     city.options = null;
    }
    // city.options.length = 0;
   
    // alert(value);
    for(var i= 0 ;i< arrs.length;i++){
     if(value == i){
      // 获得所有的市的信息.
      for(var j=0;j<arrs.length;j++){
       // alert(arrs[j]);
       // 创建元素:
       var opEl = document.createElement("option");// <option></option>
       // 创建文本节点:
       var textNode = document.createTextNode(arrs[j]);
       // 将文本的内容添加到option元素中.
       opEl.appendChild(textNode);
       // 将option的元素添加到第二个列表中.
       city.appendChild(opEl);
      }
     }
    }
   }

```





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2