zoukankan      html  css  js  c++  java
  • js案例

    JS

    今日任务

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

    教学导航

    教学目标

    掌握JS中的BOM对象

    掌握JS中的常用的事件

    掌握JS中的常用DOM操作

    了解JS中的内置对象

    教学方法

    案例驱动法

     

    1.1 使用JS定时弹出广告

    1.1.1 需求分析

    在浏览网站的时候,通常会5秒左右在顶部显示一个广告。过了5秒钟将这个广告隐藏。在网站的首页上显示这个广告。

    1.1.2 分析:

    1.1.2.1 技术分析:

    JS的定时操作】

    setInterval();

    setTimeout();

     

    clearInterval();

    clearTimeout();

    CSS控制显示和隐藏的属性】

    display:

    l block :显示的

    l none :隐藏的

    1.1.2.2 步骤分析:

    • 步骤一:确定事件:onload.
    • 步骤二:在函数中设置定时的操作.5秒显示这个div.
    • 步骤三:清除原来的定时,重新设置一个定时操作.5秒以后隐藏掉.
    • 步骤四:设置5秒后隐藏的定时,可以清除.

    1.1.3 代码实现

    <script>

    var time;

    function init(){

    // 设置定时操作:

    time = setInterval("showAd()",5000);

    }

     

    function showAd(){

    // 获得div元素

    var divAd = document.getElementById("divAd");

    divAd.style.display = "block";

    // 清除之前的定时操作:

    clearInterval(time);

    // 重新设置一个定时:5秒钟隐藏:

    time = setInterval("hideAd()",5000);

    }

     

    function hideAd(){

    // 获得div元素

    var divAd = document.getElementById("divAd");

    divAd.style.display="none";

    clearInterval(time);

    }

    </script>

    1.1.4 总结

    1.1.4.1 扩展内容

    JS的引入的方式】

    • 内部的JS

    使用<script>标签

    • 外部的JS

    创建一个.js的文件

    使用<script src="ad.js"></script>

    BOM中的对象】

     

    l Window对象:浏览器最顶层的对象.

     

    l Navigator

     

    l Screen

     

    l History

     

    l Location

     

    1.2 使用JS完成表单的校验

    1.2.1 需求分析

    之前已经完成了一个表单校验,弹出提示框的形式。用户的体验不是特别的好。现在当鼠标点到文本框的时候,在文本框的后面给我们一段提示.当光标离开的时候完成校验.将信息写到文本框的后面的位置而不是提示框的形式。

    1.2.2 分析

    1.2.2.1 技术分析

    JS中的事件】

    之前使用的事件:

    onclick

    onsubmit

    onload

     

    使用:

    onfocus :获得焦点

    onblur :失去焦点

    JS控制向HTML的某个元素中写入内容】

    document.getElementById(“”).innerHTML = “”;

    1.2.2.2 步骤分析

    • 确定事件获得焦点和失去焦点
    • 定义函数,在函数中进行校验
    • 将校验的内容写入到文本框后面的<span>元素

    1.2.3 代码实现:

    <script>

    function showTips(uid,info){

    // 控制后面的span元素:

    document.getElementById(uid+"span").innerHTML = "<font color='gray'>"+info+"</font>";

    }

     

    function checkUsername(uid,info){

    // 判断用户名是否为""

    var uValue = document.getElementById(uid).value;

    if(uValue == ""){

    document.getElementById(uid+"span").innerHTML = "<font color='red'>"+info+"</font>";

    }else{

    document.getElementById(uid+"span").innerHTML = "";

    }

    }

    </script>

    1.2.4 总结

    1.2.4.1 JS的事件的总结

    onchange :下拉列表上

    ondblclick :双击

    onkeydown :键盘按下

    onkeyup :键盘抬起

    onmouseover :鼠标在上面

    onmouseout :鼠标离开

    onmousemove :鼠标移动

     

    需求:表格鼠标放上显示一个颜色,鼠标离开样式没有了!

    <script>

    function changeColor(tid,flag){

    if(flag == 'over'){

    var tid = document.getElementById(tid);

    tid.style.backgroundColor="gold";

    }else if(flag == 'out'){

    var tid = document.getElementById(tid);

    tid.style.backgroundColor="white";

    }

    }

    </script>

    1.3 使用JS控制表格的行换色

    1.3.1 需求

    在网站的后台的表格页面中让表格显示出隔行换色的效果:

    1.3.2 分析

    1.3.2.1 技术分析

    【使用JS控制表格】

    var tab1 = Document.getElementById(“tab1”);

    var rows = tab1.rows.length;

    for(){

    if(i % 2 == 0){

     

    }

    }

    1.3.2.2 步骤分析

    • 步骤一确定事件:onload事件
    • 步骤二:获得表格元素
    • 步骤三:获得表格的所有行的长度
    • 步骤四:遍历表格的所有行
    • 步骤五:使用下标对2取余
    • 步骤六:设置奇数行和偶数行的颜色。

    1.3.3 代码实现

    <script>

    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[i].style.backgroundColor = "#33FF22";

    }else{

    tab1.rows[i].style.backgroundColor = "#883311";

    }

    }

    }

    </script>

    1.3.4 总结

    表格隔行换色的时候,将最上一行也换掉了。第一行往往不需要进行换色的。

    <table>

    <thead>

    <tr>

    <th></th>

    <tr>

    </thead>

    <tbody>

    <tr>

    <td></td>

    <tr>

    </tbody>

    </table>

     

    代码实现:

    window.onload = function(){

    // 获得表格元素:

    var tab1 = document.getElementById("tab1");

    // 查找表格中tbody中的所有的行数。

    var len = tab1.tBodies[0].rows.length;

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

    if(i % 2 == 0){

    tab1.tBodies[0].rows[i].style.backgroundColor="green";

    }else{

    tab1.tBodies[0].rows[i].style.backgroundColor="gold";

    }

    }

    }

    1.4 使用JS控制复选框的全选和全不选的效果

    1.4.1 需求的分析

    在后台管理页面中,往往会有批量删除数据的效果,就需要有复选框全选和全部选的效果。

     

    1.4.2 分析

    1.4.2.1 步骤分析

    • 步骤一确定事件单击事件
    • 步骤二获得下面的所有的复选框
    • 步骤三:如果上面的复选框被选中,将下面的所有的复选框选中状态变为checked=true.
    • 步骤四:如果上面的复选框没被选中,将下面的所有的复选框选中状态变为checked=false.

    1.4.3 代码实现

    function selectAll(){

    // alert("aaa");

    // 获得上面的复选框:

    var sAll = document.getElementById("selectAll");

     

    if(sAll.checked == true){

    // 上面的复选框被选中

    // 将下面的所有的复选框都被选中。

    var selectOnes = document.getElementsByName("selectOne");

    // 遍历数组中的每个元素,让每个元素都被选中:

    for(var i = 0;i<selectOnes.length;i++){

    selectOnes[i].checked = true;

    }

    }else{

    // 上面的复选框被选中

    // 将下面的所有的复选框都被选中。

    var selectOnes = document.getElementsByName("selectOne");

    // 遍历数组中的每个元素,让每个元素都被选中:

    for(var i = 0;i<selectOnes.length;i++){

    selectOnes[i].checked = false;

    }

    }

    }

    1.4.4 总结

    1.4.4.1 DOM的操作

    DOMDocument Object Model 文档对象模型.

    HTML文档装载到内存,HTML文档形成一个DOM的树形结构.

     

     

    Document:文档对象.代表的是加载到内存中的整个的文档.

    方法:

    l document.getElementById(“”);

    l document.getElementsByName(“”);

    l document.getElementsByTagName(“”);

    l document.createElement(“”);

    Element:元素对象.代表文档中的每个元素(标签)

    <ul>

    <li>北京</li>

    <li>上海</li>

    <li>深圳</li>

    </ul>

     

    属性:

    l firstChild:获得其第一个孩子节点

    l lastChild:获得其最后一个子节点

    方法:

    l appendChild();将节点添加到当前节点的最后.

    l insertBefore();将节点添加到某个元素之前.

    Attribute:属性对象.代表元素上的属性.

     

    Document,Element,Attribute统称为Node(节点)

    1.5 JS控制二级联动:

    1.5.1 需求

    在注册页面上有一个下拉列表,下拉列表显示省份信息,有另一个下列列表.选择某个省份,将这个省份下的城市列出.

    1.5.2 分析:

    1.5.2.1 技术分析

    DOM创建元素】

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title></title>

    <script>

    function addEl(){

    // 创建元素:

    var liEl = document.createElement("li");// <li></li>

    // 创建文本节点:

    var textEl = document.createTextNode("广州");// 广州

    // 将文本放入到li元素:

    liEl.appendChild(textEl);// <li>广州</li>

    // 获得ul元素:

    var ulEl = document.getElementById("ul1");

    // li放入到ul

    ulEl.appendChild(liEl);

    }

    </script>

    </head>

    <body>

    <ul id="ul1">

    <li>北京</li>

    <li>上海</li>

    <li>深圳</li>

    </ul>

     

    <input type="button" value="点击" onclick="addEl()"/>

    </body>

    </html>

    【数组对象的使用】

    创建数组

     

    数组的属性:

     

    数组的方法:

     

    1.5.2.2 步骤分析

    • 步骤一确定事件onchange.
    • 步骤二:获得改变的省份值 .
    • 步骤三:比较省份的值 数组中定义的值是否相等,如果相等获得这个省份对应的所有的市的数组.
    • 步骤四:创建option元素,将数组中的值添加到option元素中。
    • 步骤五:将option添加到第二个下拉列表中.

    1.5.3 代码实现

     

     

    // 定义二维数组:

    var cities = new Array(4);

    cities[0] = new Array("长春市","吉林市","松原市","延边市");

    cities[1] = new Array("济南市","青岛市","烟台市","潍坊市","淄博市");

    cities[2] = new Array("石家庄市","唐山市","邯郸市","廊坊市");

    cities[3] = new Array("南京市","苏州市","扬州市","无锡市");

     

    function selectCity(val){

    // alert(val);

    var citySel = document.getElementById("city");

    // 清除原有的option:

    citySel.options.length = 0;

     

    // 遍历数组:

    for(var i=0;i<cities.length;i++){

    if(val == i){

    // 遍历数组:

    for(var j = 0 ;j<cities[i].length;j++){

    // alert(cities[i][j]);

    // 创建option元素:

    var opEl = document.createElement("option");

    // 创建文本元素:

    var textNo = document.createTextNode(cities[i][j]);

    // 将文本添加到option中.

    opEl.appendChild(textNo);

    // option添加到第二个下拉列表中

    citySel.appendChild(opEl);

    }

    }

    }

    }

    1.5.4 总结

     

    查看文档了解方法

     

    全局函数:

     

    parseInt(); 将字符串转出整型

    parseFloat(); 将字符串转成小数

     

    encodeURI()

    decodeURI()

    encodeURIComponent()

    decodeURIComponent()

     

    eval() :将一段字符串当成一个JS的代码来运行.

    1.6 JS控制下拉列表左右选择:

    1.6.1 需求

    有两个列表,需要将左侧列表中的数据添加到右侧的列表中:

     

    1.6.2 分析

    1.6.2.1 步骤分析

    • 单击事件
    • 编写函数:获得左侧的下拉列表.
    • 遍历左侧列表中的所有的option元素.判断是否被选中。
    • 如果被选中添加到右侧.
    • 单击事件
    • 编写函数:获得左侧的下拉列表.
    • 遍历左侧的列表中的所有的option.
    • 全部添加到右侧.
  • 相关阅读:
    国王游戏【贪心+证明】
    简练软考知识点整理-项目沟通管理简介
    简练软考知识点整理-项目人力资源管理简介
    简练软考知识点整理-项目质量管理简介
    简练软考知识点整理-项目成本管理简介
    简练软考知识点整理-项目时间管理简介
    简练软考知识点-项目范围管理过程简介
    简练软考知识点整理-项目整合管理介绍
    简练软考知识点整理-边际效用递减法则
    简练软考知识点整理-ABC成本法和ABC分析图法
  • 原文地址:https://www.cnblogs.com/nextgg/p/7646572.html
Copyright © 2011-2022 走看看