原生js实现网页顶部自动下拉/收缩广告效果


Posted in Javascript onJanuary 20, 2017

知识要点

1.实现原理:

通过递归改变div的高度值达到缓慢下拉的效果。

2.一共分为3个步骤我写了三个函数

第一个show()函数(下拉):初始值高度h<300的话 h+5  反之return退出停止,调用setTimeout方法30毫秒执行一次+5

第二个hide()函数(收回):只是高度的判断不同高度h-5 反之return退出停止,调用setTimeout方法30毫秒执行一次-5

第三个dd()函数(再次弹出):这里要注意的是第二次弹出的div是一个新的div把它的高度设置为0,实现原理与第一个函数一样,

并且一定要在第二个函数(收回)执行后再执行

完整代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>demo</title>
<style>
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{margin:0;padding:0;}
h1,h2,h3,h4,h5,h6{font-size:100%;}
address,cite,dfn,em,var{font-style:normal;}
code,kbd,pre,samp{font-family:courier new,courier,monospace;}
ul,ol{list-style:none;}
a{text-decoration:none;}
a:hover{text-decoration:none;}
sup{vertical-align:text-top;}
sub{vertical-align:text-bottom;}
legend{color:#000;}
fieldset,img{border:0;}
button,input,select,textarea{font-size:100%;}
table{border-collapse:collapse;border-spacing:0;}
.clear{clear: both;float: none;height: 0;overflow: hidden;}
#container{width: 600px; margin: 0 auto;}
p{ line-height: 28px; }
.hidden{background: #E6E6E6; text-align: center; height: auto; overflow: hidden;}
.show{ background: #808080;text-align: center; height: 0; overflow: hidden; }
</style> 
</head> 
<body>
 <div id="container">
  <div class="hidden" id="hid"><p>广告图</p></div>
  <div class="show" id="sho"><p>哈哈哈哈改装成功</p></div>
 </div>
 <script type="text/javascript"> 
 window.onload=function aa(){
 show();
 setTimeout("hide()",3000);
 }
 var h=0;
 var hid=document.getElementById("hid");
 var sho=document.getElementById("sho");
 function show(){
 if(h<300){
  h+=5;
  hid.style.height=h+"px";
 }else{
  return;
 }
 setTimeout("show()",30);
 } 
 function hide(){
 if(h>0){
  h-=5;
  hid.style.height=h+"px";
 }else{
  dd();
  return;
 }
 setTimeout("hide()", 30);
 }
 var a=0;
 function dd(){
 if(a<60){
  a+=1;
  sho.style.height=a+"px";
 }else{
  return;
 }
 setTimeout("dd()",30);
 }
 </script>
</body> 
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
MSN消息提示类
Sep 05 Javascript
让FireFox支持innerText的实现代码
Dec 01 Javascript
jQuery提示插件alertify使用指南
Apr 21 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
Nov 09 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
Dec 24 Javascript
JavaScript两个变量交换值的实现方法
Mar 01 Javascript
深入解析Vue 组件命名那些事
Jul 18 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
Dec 06 Javascript
angularjs实现table增加tr的方法
Feb 27 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
Jul 30 Javascript
快速解决vue在ios端下点击响应延时的问题
Aug 27 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
Nov 02 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
Jan 20 #Javascript
轻松理解Javascript变量的相关问题
Jan 20 #Javascript
js+css3实现旋转效果
Jan 20 #Javascript
Bootstrap 手风琴菜单的实现代码
Jan 20 #Javascript
浅谈angularjs $http提交数据探索
Jan 20 #Javascript
原生js实现无限循环轮播图效果
Jan 20 #Javascript
原生js实现弹出层效果
Jan 20 #Javascript
You might like
PHP的Yii框架入门使用教程
2016/02/15 PHP
网页常用特效代码整理
2006/06/23 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
浅析JavaScriptSerializer类的序列化与反序列化
2016/11/22 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
AngularJS之ionic 框架下实现 Localstorage本地存储
2017/04/22 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
Python学习笔记之解析json的方法分析
2017/04/21 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
pymysql模块的使用(增删改查)详解
2019/09/09 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
python解释器安装教程的方法步骤
2020/07/02 Python
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
2014/04/23 面试题
药学专业大专生的自我评价
2013/12/12 职场文书
家长通知书家长评语
2014/04/17 职场文书
自主招生学校推荐信
2014/09/26 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
2014年副班长工作总结
2014/12/10 职场文书
Vue OpenLayer 为地图绘制风场效果
2022/04/24 Vue.js