案例制作思路:

  1、先制作界面

    添加一个盒子包含一个按钮,使盒子绝对定位在右上角

    添加一个大盒子,同理,将盒子居于左下角;其中内部包含一个顶端盒子和底部盒子

            顶端盒子因为是属于大盒子内部的存在,所以宽度是占满整个大盒子的宽度,内部文本设置字体12号、居中显示、加粗

           底部盒子因为也是属于大盒子内部的存在,所以宽度也是占满整个大盒子的宽度,内部文本设置字体12号、居中显示、加粗、行高等

2、经思考分析,因为页面是在打开后3秒中进行跳转,所以需要一个延迟定时器(SetTimeout(code,millisec); code是代表一个函数的引用,millisec代表定时的毫秒数) 。所以页面一打开是没有广告存在的,所以在大盒子的css中不存在高度的设置,另设置了隐藏显示的属性!

  3、获取盒子的位置,并且设置其高度,进行接收。但是因为后的是一个对象,需要将对象进行转换成为数字。

  4、如果该数字等于0 ,表示该盒子处于隐藏的状态,则将其通过display属性中的block块状 来显现出来。【此时在右下角已然存在盒子了,只不过高度为0,需要放大进行查看】

  5、接下来,我们来操作盒子的高度问题。

    解决方案:我们可以通过定时器去完成盒子的高度设置。

          5.1.1、获取盒子

          5.1.2、获取盒子的高度

          5.1.3、判断接收到的参数是盒子高度递增或递减,若是递增参数,则需要判断盒子是否依然显示,若没有,将其递增显示,否则清除递增定时器。  若是递减参数,则需要判断盒子是否依然显示,若显示,将其递减到0,否则清除递增定时器并且隐藏盒子。

      

预览效果图:

Html代码:

<html>
</head>
<body>
<div id="div">
<button onclick="tips_pop()">3秒后会在右下角自动弹出窗口,如果没有弹出请点击这个按钮</button>
</div>
<!--大盒子-->
<div id="ad"> <!--顶端小盒子-->
<div class="toppop">
<b>您有新的短消息!</b><span onclick="tips_pop()">X</span>
</div> <!--底端小盒子-->
<div class="bottompop">1条未读信息(...)</div> </div>
</body>
</html>

Css代码:

#div{                     /*按钮盒子*/
position: absolute;  /*大盒子的定位为绝对定位*/
right:; /*大盒子距离右方为0像素*/
top:; /*大盒子距离上方为0像素*/
}
#ad{             /*大盒子*/
width: 200px; /*大盒子的宽度*/
height:; /*大盒子的高度*/
border: 1px solid #666;/*边框线为1像素 实线 灰黑色*/
position:absolute; /*大盒子的定位为绝对定位*/
bottom: 0px; /*大盒子距离下方为0像素*/
right: 0px; /*大盒子距离右方为0像素*/
display: none; /*不显示*/
}
.toppop{          /*顶端盒子*/
width: 100%; /*宽度自动适应到最宽*/
height: 22px; /*上面的盒子高22像素*/
background: gold; /*背景颜色为金黄色*/
text-align: center; /*字体居中*/
font-size: 12px; /*字号为12像素*/
}
.toppop span{       /*顶端盒子 中的 X*/
position: absolute; /*位置:绝对定位*/
right:; /*距离右侧边距为0*/
top: -1px; /*距离顶端距离为-1像素*/
color: #fff; /*“X”的颜色为白色*/
cursor: pointer; /*cursor 代表的是光标的类型;pointer代表 的是 一只小手*/
}
.bottompop{        /*底端盒子*/
width: 100%; /*宽度自动适应到最宽*/
height: 88px; /*下面的盒子高88像素*/
font-size: 12px; /*字号为12像素*/
text-align: center; /*字体居中*/
font-weight: 900px; /*字体为粗体*/
color: #ff0000; /*颜色为红色*/
line-height: 80px; /*字体的行高为80像素*/

JavaScript代码:

<script type="text/javascript">
window.onload = function(){            // 页面加载
document.getElementById("ad").style.height = '0px'
                                // setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
setTimeout("tips_pop()",3000);       // 设置定时器(每过3秒执行一次tips_pop)
} function tips_pop(){
var Msgpop = document.getElementById("ad");
                                // parseInt() 函数可解析一个对象,并返回一个整数
var popH = parseInt(Msgpop.style.height) // 将对象的高度转换成为数字
if(popH == 0){                //如果盒子的高度等于0 ,表示看不到 所以 处于一个隐藏状态
Msgpop.style.display="block";     //如果等于0,则去显示出来
show = setInterval("changeH('up')",3)// 设置定时器(显示的函数)
}else{
hide = setInterval("changeH('down')",3)// 设置定时器(隐藏的函数)
}
} function changeH(str){
var Msgpop = document.getElementById("ad");//Msgpop 代表的是大盒子
var popH = parseInt(Msgpop.style.height);//将对象的高度转换成为数字
                         //popH 代表盒子的高度 [是数字]
if(str == 'up'){                // 判断接受的参数是否是 up 如果是 则执行下方内容
if(popH <= 100){
                     //JavaScript toString()把数字转换为字符串:
Msgpop.style.height = (popH + 4).toString() + 'px';//设置大盒子的高度
}else{
clearInterval(show);
}
}
if(str == 'down'){
if(popH>=4){
Msgpop.style.height = (popH - 4).toString() + 'px';//设置大盒子的高度
}else{
clearInterval(hide);        // 清除定时器(隐藏的函数)
Msgpop.style.display = 'none'; //隐藏该盒子 div
}
}
}

 
作者: 杨校

出处: http://www.cnblogs.com/xiaoxiao5016

分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(397583050@qq.com)咨询。

最新文章

  1. [数据结构]——链表(list)、队列(queue)和栈(stack)
  2. Linux shell if [ -n ] 正确使用方法
  3. ACdream 1429 Rectangular Polygon
  4. 利用ArcMap对tiff或jpg格式地图图片的配准步骤
  5. JS 随机数
  6. HD1000A + B Problem
  7. &quot;Could not load type &#39;System.Runtime.CompilerServices.ExtensionAttribute&#39; from assembly &#39;mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b7
  8. js hashMap
  9. Java基础知识强化28:Scanner类之Scanner类的概述
  10. Measuring &amp; Optimizing I/O Performance
  11. C#使用NOPI导入Excel
  12. Java 求集合的所有子集
  13. hdu5730 Shell Necklace
  14. Python_Excel文件操作
  15. Python 学习笔记9 循环语句 For in
  16. Redis深入学习笔记(二)client list 命令详解
  17. 微软已发布 Windows 10 Timeline 功能的官方 Chrome 插件
  18. js中函数的 this、arguments 、caller,call(),apply(),bind()
  19. Web项目MySQL配置文件运维
  20. 树形dp(C - Choosing Capital for Treeland CodeForces - 219D )

热门文章

  1. Android APP新的“优雅”退出方式--EventBus大显身手
  2. 在 ServiceModel 客户端配置部分中,找不到引用协定“XX”的默认终结点元素的解决方法
  3. linux设置系统时间
  4. LeetCode之“排序”:Largest Number
  5. CMake命令行添加编译参数
  6. shell中关于sort的-o选项
  7. Spring Boot通过命令行启动发生FileNotFoundException
  8. 经典栈溢出之MS060-040漏洞分析
  9. 伸展树--java
  10. char 与 String 相等比较