简单实现邮件系统的界面功能

2023-05-16

 

【文章标题】简单实现邮件系统的界面功能

【文章作者】曾健生

【作者邮箱】zengjiansheng1@126.com

【作者QQ190678908

【作者博客】http://blog.csdn.net/newjueqi

【编程环境】Dreamweaver

【作者声明】欢迎转载文章,但转载请保留文章的完整性以及注明文章的出处。

 

*******************************************************************************

       邮件系统是个很常见的功能系统,本文主要模拟实现了其中界面功能的实现方法,最原始的界面如下图1

                                                 1

 

 

其中要实现的界面功能如下:

1mail列表颜色间隔显示。

2.鼠标悬停行要有高亮效果。

3.实现全选复选框

4.“全选”按钮,“反选”按钮,“全部取消”按钮功能。

5.实现删除选中邮件功能。

 

下面对上面的功能分别实现如下:

 

一.    mail列表颜色间隔显示和鼠标悬停行要有高亮效果。

 

DOM中,把HTML中的每个元素都封装成一个对象,其中表格也是一个对象tabletable对象中有个rows集合,是table 对象的 tr (表格行)对象的集合,也就是所有的行对象,

通过遍历这个对象,我们可以得到每一行的对象,然后通过CSS样式表,分别改变奇数行和偶数行的颜色,就能实现mail列表颜色间隔显示。

       那现在又有一个问题:怎么方便地改变每一行的颜色,难道要访问一行就改变一行吗?答案是CSS样式表。在CSS中有三种常用的选择器,其中有一个是类选择器,可以让CSS样式表作用于具有相同类名的对象,只要通过javascript改变奇数行和偶数行的类名,使奇数行和偶数行分别拥有不同的样式表,就能方便地改变每一行的颜色。

       鼠标悬停行要有高亮效果的原理也很简单,我们知道鼠标悬停就是鼠标进入行的事件,我们只要在在鼠标进入事件处理函数中设置对行选择一个显示高亮效果的样式表,然后在鼠标移出事件处理函数中恢复原来的样式表,就能实现鼠标悬停高亮效果。

实现代码如下:

 

/*

1mail列表颜色间隔显示。

2,鼠标悬停行要有高亮效果。

*/

var oldClassName; //记录原来的className,用于当鼠标移出后恢复原来的样式表

 

//1.设置表格的行间隔颜色

//2.鼠标移动到表格行后高亮显示

function showTableColor()

{

       //获取表格对象

       var tabObj = document.getElementsByTagName("table")[0];

 

       //获取所有的行对象

       var trArr = tabObj.rows;

      

       for( var x=1; x<trArr.length-1; x++ )

       {

              //通过改变类的名字来改变该行的样式

              if( x%2==0 )

              {

                     trArr[x].className="two";

              }

              else

              {

                     trArr[x].className="one";

              }    

             

              //鼠标进入表格行高亮

              trArr[x].onmouseenter =function()

              {

                     oldClassName=this.className;

                     this.className="over";

              }

             

              //鼠标离开表格行恢复原来的颜色

              trArr[x].onmouseleave =function()

              {

                     this.className=oldClassName;

              }                  

       }

      

       mail列表颜色间隔显示的效果如图2

                                                 2

 

鼠标悬停行高亮效果如图3:

                                                        3

 

 

二.    实现全选复选框

全选的实现很简单,只需要获取列表中每一行的复选框对象,通过遍历的形式把全选复选框的选择状态赋给每一个复选框对象即可。

这里有个问题应该注意的,如果按了全选复选框后取消了某个复选框的选中状态,那么全选复选框就必须要重设为不选中,在这里本人用了一个比较简单的实现,当某个复选框的状态改变后就遍历一次所有复选框的状态,如果发现不全为选中,就把全选复选框的状态设置为不选中,否则就设置为选中。当然,这就要设置行对象的鼠标点击事件的响应函数了。

 

实现代码如下:

//“全选”复选框的功能实现

function checkAll( checkObj )

{

       var checkArr=document.getElementsByName( "mail" );

       for( var x=0; x<checkArr.length; x++ )

       {

              checkArr[x].checked=checkObj.checked;

       }

}

 

//网页加载时设置每个单选框的点击事件

function setCheckChick()

{

       var checkArr=document.getElementsByName( "mail" );

       for( var x=0; x<checkArr.length; x++ )

       {

              checkArr[x].οnclick=ResetCheckBox;

       }

 

}

 

/*每个复选框状态改变后重置全选复选框的状态

*/

function ResetCheckBox()

{

 

       //复选框默认的状态

       var flag=true;

       //获取表格内容所有的复选框对象

       var checkArr=document.getElementsByName( "mail" );

      

       //获取表头的复选框对象

       var checkObj=document.getElementById( "checkid" );

      

       //遍历表格内所有的复选框

       for( var x=0; x<checkArr.length; x++ )

       {

              if( checkArr[x].checked==false )

              {

                     flag=false;

                     break;

              }

       }

      

       //根据标志重新设置表头复选框的状态

       if( true==flag )

       {

              checkObj.checked=true;

       }

       else

       {

              checkObj.checked=false;

       }

 

      

}

 

三.“全选”按钮,“反选”按钮,“全部取消”按钮功能。

“全选”按钮:把每个复选框设置为选中状态。

“反选”按钮:把每个复选框设置为非选中状态。

“全部取消”按钮:把每个复选框的状态取反。

 

由于以上三个按钮都是改变每个复选框的状态,只是改变的方式不同,所以可以把以上三个功能用一个函数实现,那究竟是哪个功能,就由传入的参数决定。

 

/*按下“全选”“取消”“反选”按钮后重置列表中复选框的状态

参数的三个值:

0:把每个复选框设置为不选中

1:把每个复选框设置为选中

2:把每个复选框的状态取反

*/

function checkSel( selPar )

{

       var checkArr=document.getElementsByName( "mail" );

 

       for( var x=0; x<checkArr.length; x++ )

       {

              //改变表格中复选框状态

              if( selPar==2 )

              {

                     checkArr[x].checked=!( checkArr[x].checked );

              }

              else

              {    

                     checkArr[x].checked=selPar;

              }           

       }

      

       //按下“全选”“取消”“反选”按钮后重置复选框的状态

       ResetCheckBox();

 

}

 

四.实现删除选中邮件功能

根据该行中的复选框是否选中决定是否删除该行。

 

表格中的对象有以下的层次关系:

 

 

Table

|--Tbody

       |--tr

              |--td

|--复选框

              |--td terttret

              |--td terttret

|--td terttret

 

 

从以上的层次关系可看出:TbodyTable的一个子节点,Tbodytr的父节点,td是复选框对象的父节点。

所以我们在获得了复选框对象后,就可以通过复选框对象。parentNodeparentNode”这个语句获取行对象,然后根据复选框的状态决定是否在tbody对象中是否删除该行。

实现的代码如下:

//删除列表中被选中的几项

function delMail()

{

       //获取所有的复选框对象

       var checkArr=document.getElementsByName( "mail" );

      

       //获取TBODY对象

       var tbodyObj=document.getElementsByTagName("table")[0].childNodes[0];

 

       //所有应该删除的行的集合

       var rowArray=new Array();

      

       var count=0;

       for( var x=0; x<checkArr.length; x++ )

       {

              if( checkArr[x].checked )

              {

                     //把应删除的行对象保存到数组中

                     rowArray[count++]=checkArr[x].parentNode.parentNode;

              }

       }

      

       //删除被选中的行

       for( var x=0; x<rowArray.length; x++ )

       {

              tbodyObj.removeChild( rowArray[x] );

       }

 

       //由于删除行后行数的奇偶性发生了变化,所以要重新设置一下每一行的颜色

       showTableColor();

      

}

 

选中要删除的邮件列表如图4

                                                 4

 

删除后的效果如图5

                                                 5

文章附件下载:http://newjueqi.ys168.com/

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

简单实现邮件系统的界面功能 的相关文章

  • 七. 200多万元得到的创业教训--周鸿祎传授的“活法”

    摘要 xff1a 怎么才能让自身的产品在激烈的移动互联网竞争中活下来 xff1f 方法概况起来就是 小步快走 xff0c 不断试错 健生干货分享 xff1a 第7篇 在上一篇文章中 xff0c 我提到了移动互联网重要的事情是快速开发产品 x
  • 八.200多万元得到的创业教训--从3款产品学到的3点

    摘要 xff1a 先后开发了3款移动互联网产品 xff0c 有两款产品是从创意阶段就参与进去 xff0c 从中学会了最重要的3点 xff1a 快速迭代 xff0c 不断试错 xff0c 了解用户的需求 健生干货分享 xff1a 第8篇 第一
  • 九. 200多万元得到的创业教训--“雕爷”是忽悠吗?

    摘要 xff1a 这一年 xff0c 是移动互联网火爆的一年 xff0c 互联网思维 伴随着这股热潮红遍大江南北 xff0c 其中的一位 互联网思维 代表者是雕爷 xff0c 它带来的是真理还是在忽悠 xff1f 健生干货分享 xff1a
  • 推荐《十倍速影像阅读法》

    文章标题 推荐 十倍速影像阅读法 文章作者 newjueqi 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者 blog http blog csdn net newjueqi 文章说明 欢
  • 十. 加班等于团队建设?

    摘要 xff1a 在IT界 xff0c 加班是不可避免的事情 但是 xff0c 加班的方式和心态 xff0c 将会影响加班的效率和加班的效果 健生干货分享 xff1a 第10篇 在移动互联网的日常工作中 xff0c 不能不提的是加班 总体来
  • 十一. 没有这4项素质,别想在创业公司

    摘要 xff1a 习惯了在大企业工作方式 xff0c 初次来到创业公司工作会觉得很不习惯 xff0c 因为创业公司中 xff0c 对人员有很特殊的素质要求 健生干货分享 xff1a 第11篇 在创业公司里工作久了 xff0c 慢慢就习惯了里
  • 十二.200多万元得到的创业教训--app名字是关键

    摘要 xff1a 当完成了一个app后 xff0c 就要需要上应用市场 xff0c 下面讲一下起名和上应用市场的一些技巧 健生干货分享 xff1a 第12篇 1 必须是先上app store xff0c 再上其他应用市场 为啥要这样做 xf
  • 解决bug: .cpython-37m-x86_64-linux-gnu.so: undefined symbol:

    解决bug cpython 37m x86 64 linux gnu so undefined symbol 时间 xff1a 2023年1月23日 一 问题 用python下pytorch编写cuda算子时 xff0c 在执行setup
  • 十三.200多万元得到的创业教训--用户体验就是人性

    摘要 用户体验是在产品或服务中重要的一环 xff0c 懂得人性 xff0c 什么是良好的用户体验就很明了 健生干货分享 xff1a 第13篇 在百度百科中的定义 xff1a 用户体验 xff08 UserExperience xff0c 简
  • 软件DIY----用汇编语言给XP记事本添加“自动保存”功能

    文章标题 用汇编语言 给XP记事本添加 自动保存 功能 文章作者 newjueqi 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 使用工具 OD xff0c LordPE xff0c eXeS
  • 用16进制编辑器编写一个DLL文件

    文章标题 用16进制编辑器编写一个DLL文件 文章作者 newjueqi 作者邮箱 zengjiansheng1 64 126 com 作者QQ号 190678908 软件名称 Hello 软件大小 4K 编写语言 机器码 使用工具 Win
  • 浅谈快速阅读法

    文章标题 浅谈快速阅读法 文章作者 newjueqi 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者 blog http blog csdn net newjueqi 文章说明 欢迎转载文
  • 十四.200多万元得到的创业教训--不健康,别创业

    摘要 xff1a 34 年轻时拿命换钱 xff0c 岁数大后拿钱换命 34 xff0c 这种说法 xff0c 真的是正确的吗 xff1f 健生干货分享 xff1a 第14篇 有多少人想过 xff0c 自己创业的目的是什么 xff1f 是为了
  • 十五.电商业老二,老三也能生存

    摘要 在互联网行业 xff0c 有句话 xff1a 人们只记得老大 xff0c 但随着移动互联网的崛起 xff0c 依托于社交红利 xff0c 这个现象正慢慢发生变化 健生干货分享 xff1a 第15篇 在传统的互联网中 xff0c 入口少
  • 十六.月收入过万的淘宝从业者的执行力,吓呆我了

    摘要 淘宝开店现在好不好做 xff0c 很多人说现在淘宝已经不好做 xff0c 但淘宝的生意真的没有生存的空间了吗 在不久前 xff0c 和一个做淘宝行业相关的哥们聊天 xff0c 他自曝月收入过万 xff0c 被他那狠狠的执行力吓呆了 健
  • 自媒体16天后的总结

    摘要 在网上写了一些文章 xff0c 16天过去了 xff0c 总结一下自己在16天里的得失 健生干货分享 xff1a 第17篇 写了16天的文章 xff0c 有的文章我很用心的写 xff0c 但反应平淡 xff0c 有的文章 xff0c
  • 改变Windows窗口颜色,保护好眼睛

    研究表明 xff0c 绿色和蓝色对眼睛最好 xff0c 在长时间用电脑后 xff0c 经常看看蓝天 绿地就能在一定程度上缓解视疲劳 如果我们把电脑屏幕和网页的底色变为淡淡的苹果绿 xff0c 也可在一定程度上有效地缓眼睛疲劳症状了 在桌面上
  • 一个保护眼睛的小技巧

    一般情况用我都是800 600分辨率 xff0c 字体比较大 xff0c 看着舒服 如果在阅读文字资料时 xff0c 我喜欢用比较大的字体 xff0c 背景色是蓝色 xff0c 如下图 嘻嘻 xff0c 是不是看起来一点都不费神 xff0c
  • MySQL四种安装方式

    仓库安装 先在mysql官网上找到需要版本的域名然后用rpm安装下载下来 root 64 bb rpm ivh https repo mysql com mysql80 community release el9 1 noarch rpm
  • 十八. 200多万元得到的创业教训--社交软件之殇

    健生干货分享 xff1a 第18篇 摘要 xff1a 用了两年时间 xff0c 完成了两款社交app的开发 xff0c 两款app都挂掉了 xff0c 社交app成功的关键的是对用户 xff0c 产品的把握 xff0c 整合资源的能力 xf

随机推荐

  • 初学python

    文章作者 newjueqi 作者邮箱 zengjiansheng1 64 126 com 作者QQ号 190678908 作者博客 http blog csdn net newjueqi 作者声明 欢迎转载文章 xff0c 但转载请保持文章
  • 十九. 想快速开发app,需要找外包吗?

    健生干货分享 xff1a 第19篇 摘要 xff1a 最近和两位准备开发app的创业者聊天 xff0c 他们之前没有移动互联网的相关经验 xff0c 有的是想法和资金 他们在纠结 想快速开发app xff0c 需要找外包吗 xff1f 最近
  • 一种进制转换的特殊方法

    文章标题 一种进制转换的特殊方法 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程环境 JDK 1 6 0
  • 从计算机的核心思想探讨一种进制转换的方法

    文章标题 从计算机的核心思想探讨一种进制转换的方法 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程环境
  • 用面向对象的思想探讨游戏“魔兽争霸”(1)

    文章标题 用面向对象的思想探讨游戏 魔兽争霸 xff08 1 xff09 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net new
  • 用面向对象的思想探讨游戏“魔兽争霸”(2)-继承和多态的应用(修改版)

    文章标题 用面向对象的思想探讨游戏 魔兽争霸 2 继承和多态的应用 修改版 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net ne
  • 改良用简单工厂模式构造的计算器代码—“反射”技术

    文章标题 改良用简单工厂模式构造的计算器代码 反射 技术 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程
  • 用面向对象的思想探讨游戏“魔兽争霸”(3)-模板模式的应用(修改版)

    文章标题 用面向对象的思想探讨游戏 魔兽争霸 3 模板模式的应用 修改版 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net new
  • 打造山寨产品和伪造产品的利器——装饰模式

    文章标题 打造山寨产品和伪造产品的利器 装饰模式 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程环境 J
  • 信号中断 与 慢系统调用

    1 术语 1 1 慢系统调用 xff08 Slow system call xff09 该术语适用于那些可能永远阻塞的系统调用 永远阻塞的系统调用是指调用永远无法返回 xff0c 多数网络支持函数都属于这一类 如 xff1a 若没有客户连接
  • nodejs中处理回调函数的异常

    如果是使用nodejs 43 express3这个经典的组合 xff0c 那么有一种很方面的处理回调函数异常的方法 xff1a 1 安装模块 xff1a express domain middleware 2 加入如下的代码 xff1a a
  • 简单模拟Java中创建多线程的两种方法

    文章标题 简单模拟 Java 中创建多线程的两种方法 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程环境
  • 虚拟桌面技术的初步探讨

    文章标题 虚拟桌面技术的初步探讨 文章作者 newjueqi 作者邮箱 zengjiansheng1 64 126 com 作者QQ号 190678908 编写语言 VC 43 43 6 0 操作平台 XP SP2 作者声明 感觉到这是一种
  • 一个网游盗号木马的汇编源码分析

    文章标题 xff1a 一个网游盗号木马的汇编源码分析 文章作者 newjueqi 作者邮箱 zengjiansheng1 64 126 com 作者QQ号 190678908 使用工具 IDA 操作平台 XP SP2 作者声明 今年7月份学
  • miranda分析报告

    文章标题 miranda分析报告 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 作者声明 欢迎转载文章 xf
  • Java线程类小结(附思维导图)

    文章标题 Java 线程类小结 xff08 附思维导图 xff09 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjue
  • Java集合类小结(思维导图版)

    文章标题 Java 集合类小结 思维导图版 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程环境 JDK
  • 简单文件分割合并器的Java实现

    文章标题 简单文件分割合并器的 Java 实现 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程环境 JD
  • 层级菜单动态效果的实现

    文章标题 层级菜单动态效果的实现 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程环境 Dreamweav
  • 简单实现邮件系统的界面功能

    文章标题 简单实现邮件系统的界面功能 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程环境 Dreamwe