javascript实现掉落弹出层------Day29
顾名思义。所谓“掉落弹出层”。就是出现一个弹出层,而出现的位置是从上方向下掉落。掉落到指定的位置停止,这样分析起来。和“右下角弹出提醒对话框”比起来,确有异曲同工之妙啊,一个从上向下。一个由下及上。
实现原理:
我们最好还是肢解了这个动作来看,能够大概分为这几个部分:
1、弹出弹出层,弹出层位置在屏幕上方不可见。
2、弹出层从上而下的降落;
3、弹出层到达指定位置,停止降落。
假设加上缓冲弹跳效果的话,就是四部分:
4、出现缓冲弹跳效果。直到精巧,而弹跳效果简单了说,就是以停止降落的位置为轴,弹出层不断出现上下对称位置,而且出现位置距离轴距离逐渐变小,知道重合停止跳动,说起来挺别扭,等会写一下代码就明了了。接下来还是一步步进行分析:
实现步骤:
我们首先要出现弹出层,才干有接下来兴许的部分,而弹出层的出现。事实上能够有下面几种:
*像之前写过的弹出层一样,document.createElement("div");这个在前面已经记录过好几次了呢也
*再有就是提前用html语言写出来,然后用css的样式设置,像visibility:hidden或者display:none,通过js改变其样式visibility:visible或者display:block。这里就不再具体写了。
当然我们须要设定它的弹出位置,事实上至关重要的仅仅有一点:它尽管就在那里,但我们看不到它。
那它到底在哪呢,这里假定已经弹出层是已经存在的,为<div id="test" style="width:300px;height:50px;position:absolute;"></div>,而document.body.scrollTop在ie里通经常使用来表示滚动条距页面的高度,初始阶段一般都是为0的。这样我们将div的top值设为负的div的高,即height值,或者用代码来描写叙述的话就是
var basePostion= document.body.scrollTop-document.getElementById("test").style.height
这样我们有了弹出层。就要来实现它,又要用到我们熟悉的setInterval()了,神器啊
dropstart=setInterval("dropin()",50)//这是上面显现方法,就不所有展示了,各自发挥嘛,上面的两种方式随便选
}
function dropin(){//实现掉落的函数
if (parseInt(crossobj.top)<200+document.getbody.scrollTop){
crossobj.top=parseInt(crossobj.top)+40//这里是每调用一次方法就显露一点。直到所有露出,并不断下降
else{
clearInterval(dropstart)//停止掉落,開始抖动
bouncestart=setInterval(bouncein,50)
}
}
事实上,这里仅仅是将设定距离定在了200上。到这里我们假想,假设将指定的距离变大,再将滚动栏去掉的话,是不是就是一个完整的游戏滚屏啊。听起来不错的样子,不知道是不是真的这么实现的。
书归正传。我们来设定一下最后的这个弹跳效果,一个小应用。可是会增色不少。
function bouncein(){//这里的初始值能够设定为随意数值,可是一定要是以下的增量的整倍数。这样才干终于与对称轴重合
crossobj.top=parseInt(crossobj.top)-bouncelimit//是说距离上方距离=距离上方的位置-弹跳的幅度,分别在上方和下方显示
if (bouncelimit<0){bouncelimit+=8;}//这里是增量
bouncelimit=bouncelimit*-1//这个地方是实现的关键。不管设定值为多少。都要在以下出现一次,在上面出现一次。才干减小距离
if (bouncelimit==0){
clearInterval(bouncestart)
}
}
知识点总结:
事实上在原文中,有非常多关于兼容的一些设定。看了之后大有感慨,那个之后了解全面了再说吧。不似这个就一个小技巧;
神器setInterval();
var a=function(){}和function a(){}是能够类同的,所以我们在调用的时候,能够直接调动a。也能够调用“a()”,这里就注意引號的使用了,函数名调用时不用引號,方法调用时带引號,才发现的。
如今的项目快要收尾了额,顿时感觉轻松了好多。今晚能够早睡会了.....
javascript实现掉落弹出层------Day29的更多相关文章
- JavaScript学习笔记(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
		
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
 - JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
		
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
 - Jquery和Javascript 实际项目中写法基础-弹出窗和弹出层 (4)
		
一.实际项目中有很多如下界面效果. 二.该效果可以归结为弹出窗或者弹出层来实现的,为什么这么说?看如下代码: <!DOCTYPE html> <html> & ...
 - 使用JavaScript实现弹出层效果
		
声明 阅读本文需要有一定的HTML.CSS和JavaScript基础 设计 实现弹出层效果的思路非常简单:将待显示的内容先隐藏,在触发某种条件后(如点击按钮),将原本隐藏的内容显示出来. 实现 < ...
 - javascript网页弹出层练习
		
网页中经常出现很多"popup"弹窗效果,这里做一个练习,给我们初学者一个参考. HTML代码: <div id="popup"></div& ...
 - html+javascript实现可拖动可提交的弹出层对话框效果
		
本文为大家介绍下使用html+javascript实现可拖动弹出层.对话框.可提交,具体代码如下,感兴趣的朋友可以参考下,希望对大家有所帮助 <!DOCTYPE HTML PUBLIC &quo ...
 - JavaScript学习总结(二)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
		
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
 - 【Javascript Demo】遮罩层和百度地图弹出层简单实现
		
其实想做的就是显示百度地图的弹出层,现在已经简单实现了.示例和代码如下,点击按钮可以看到效果: 1.示例: 2.代码: <!DOCTYPE html PUBLIC "-//W3C/ ...
 - JavaScript实现弹出层(以layer.open为例)
		
首先,引用layer,自行下载. 添加如下两行 <script src=" ../layer/jquery.min.js"></script> <sc ...
 
随机推荐
- Netdata----Linux 性能实时监测工具
			
https://my-netdata.io/ https://github.com/firehol/netdata/wiki http://soluck.iteye.com/blog/2291618
 - pkgadd 软件安装二种方法
			
安装文件 pkgadd -d /soft/top-3.6.1-sol10-x86-local 安装目录文件: pkgadd -d ./ SUNWi1cs SUNWi15cs
 - BMP文件格式实例分析
			
1. 以下为一个RGB565-16位BMP位图实际的部分数据: 00000000h: 42 4D 46 58 02 00 00 00 00 00 46 00 00 00 28 00 ; BMFX... ...
 - 转  UIActivityIndicatorView、UIProgressView 活动与进度指示器-IOS开发
			
活动指示器(UIActivityIndicatorView)可以告知用户有一个操作正在进行中.进度指示器(UIProgressView )也具有同样功能,而且还可以告知用户离操作结束还多远. 这两个指 ...
 - Selenium2+python自动化39-关于面试的题
			
前言 最近看到群里有小伙伴贴出一组面试题,最近又是跳槽黄金季节,小编忍不住抽出一点时间总结了下, 回答不妥的地方欢迎各位高手拍砖指点. 一.selenium中如何判断元素是否存在? 首先selen ...
 - javax.mail 遇到501 mail from address must be same as authorization user 的問題
			
使用不同的兩個帳戶发送email时,第一个账户可以发送成功,但到第二个账户的时候就报出了501 mail from address must be same as authorization user ...
 - [翻译] FMDB
			
FMDB https://github.com/ccgus/fmdb This is an Objective-C wrapper around SQLite: http://sqlite.org/ ...
 - Android之Volley使用
			
转自:http://blog.csdn.net/lfdfhl/article/details/12223345 稍微做了一点儿修改 /** * 利用NetworkImageView显示网络图片 */ ...
 - waf bypass
			
1.前言 去年到现在就一直有人希望我出一篇关于waf绕过的文章,我觉得这种老生常谈的话题也没什么可写的.很多人一遇到waf就发懵,不知如何是好,能搜到的各种姿势也是然并卵.但是积累姿势的过程也是迭代的 ...
 - 让IE6/IE7/IE8支持HTML5标签的js代码
			
让IE(ie6/ie7/ie8)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement声明,利用条件注释针对IE来调用这个j ...