模拟系统的弹出框

系统自带的弹出框 总结 链接  http://blog.csdn.net/anhuidelinger/article/details/17024491

参考这个网站学习模态框的动态弹出   http://tympanus.net/codrops/2013/06/25/nifty-modal-window-effects/,网站提供打包好的资源下载。

html中的基本结构:

<div class="md-modal md-effect-1" id="modal-1">
<div class="md-content">
<h3>Modal Dialog</h3>
<div>
<p>This is a modal window. You can do the following things with it:</p>
<ul>
<li><strong>Read:</strong> Modal windows will probably tell you something important so don't forget to read what it says.</li>
<li><strong>Look:</strong> modal windows enjoy a certain kind of attention; just look at it and appreciate its presence.</li>
<li><strong>Close:</strong> click on the button below to close the modal.</li>
</ul>
<button class="md-close">Close me!</button>
</div>
</div>
</div> ... <div class="md-overlay"></div>

通过js来控制 .md-modal 元素的classs来实现模态框的动画效果。

文中没有引用jquery 而是对原生js进行封装得到个classie对象;

* classie.has( elem, 'my-class' ) -> true/false 布尔值 根据元素是否含有指定的classname(my-class)来做出判断

* classie.add( elem, 'my-new-class' ) -> 为元素加上classname(my-new-class)

* classie.remove( elem, 'my-unwanted-class' )-> 为元素删除classname(my-unwanted-class)

*classie.toggle( elem, 'my-class' ) -> 元素切换classname(my-class),如果元素含有这个class则删除,没有则添加。

创造这个对象时用到一个 classList 属性。这个家伙竟然是原生的 ,它的构造器是DOMTokenList,它提供了这些已知的API:length、item、add、remove、contains、toggle。请在控制台中查看这个神奇的东西,document.body.classList!

js 部分 中的动态为一个元素(文中是div.md-overlay)添加时间,element.addEventListener(“eventString”,callBack),要在开始前先移除元素本身的事件,因为addEventListener方法可以为元素绑定相同事件多次。

这点jquery中的事件的绑定方式和这个是一样的,都需要先移除一次时间在绑定。

css中主要用到了transition过渡属性,通过控制 transfrom( translate scale rotate  ) transform-style:perspective-3d  opacity 等属性来控制元素的显示

3d中perspective 视距的运用以及3d时的z轴距离,在3轴上的deg问题(从每个轴的正向看回去,正角度代表顺时针,负角度代表逆时针)

效果未开始前的主要样式
/* 最后几个效果需要3d效果,需要用到perspective属性 该属性定义3d元素距视图的距离,以像素计 */
.md-perspective body  {
background: #;
-webkit-perspective: 600px;
-moz-perspective: 600px;
perspective: 600px;
} .md-modal {
position: fixed;
top: %;
left: %;
width: %;
max-width: 630px;
min-width: 320px;
height: auto;
z-index: ;
visibility: hidden;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-transform: translateX(-%) translateY(-%);
-moz-transform: translateX(-%) translateY(-%);
-ms-transform: translateX(-%) translateY(-%);
transform: translateX(-%) translateY(-%);/* 是元素居中 */
}

/* transition 过渡属性 */
.md-overlay {
position: fixed;
width: %;
height: %;
visibility: hidden;
top: ;
left: ;
z-index: ;
opacity: ;
background: rgba(,,,0.8);
-webkit-transition: all .3s;
-moz-transition: all .3s;
transition: all .3s;/* 过渡,所有属性 0,3miao */
}

/* 通过给div.md-modal添加md-show,根据这个选择器来控制div.md-overlay的显示。 visibility:hidden的元素虽然在某些元素的上面但是不妨碍这些元素的事件 */
.md-show ~ .md-overlay {
opacity: ;
visibility: visible;
}
---------不考虑兼容性------ (transform、transition)

效果一:淡入,放大。

css:

.md-effect- .md-content {

   transform: scale(0.7);
opacity: ;
transition: all .3s; /* transiton-property:opacity,transform;transition-duration:0.3s;transiton-timing-function:ease;transition-delay:0; */
} .md-show.md-effect- .md-content {
transform: scale();
opacity: ;
}

效果二:从右边滑入。

css:  .

md-effect-2 .md-content {

   transform: translateX(20%);
opacity: 0;
transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); /* transiton-property:opacity,transform;transition-duration:0.3s;transiton-timing-function:cubic-bezier(0.25,0,5,0,5,0.9);transition-delay:0; */
} .md-show.md-effect-2 .md-content {
transform: translateX(0);
opacity: 1;
}

效果三:从下滑入

css:

.md-effect-3 .md-content {
opacity: 0;
transition: all 0.3s;/* 同上 */
} .md-show.md-effect-3 .md-content {
transform: translateY(0);
opacity: 1;
}

效果四:新闻类(旋转进入,从小变大)

css

.md-effect-4 .md-content {
transform: scale(0) rotate(720deg);/* 旋转720度 正数顺时针,负数逆时针 */
opacity: 0;
} .md-show.md-effect-4 ~ .md-overlay,
.md-effect-4 .md-content {
transition: all 0.5s;/* transition-property:transform,opacity;transition-duration:0.5s;transition-timing-function:ease;transtion-delay:0;*/
} .md-show.md-effect-4 .md-content {
transform: scale(1) rotate(0deg);
opacity: 1;
}

效果五:下落

css

.md-effect-5.md-modal {
perspective: 1300px;/* 设置视距1300px */
} .md-effect-5 .md-content {
transform-style: preserve-3d;/* transform样式 flat 子元素将不保留期3位置 perspective-3d 子元素保留3d位置 */
transform: translateZ(600px) rotateX(20deg); /* 初始时z轴正向位置600px(垂直于屏幕方向,靠近我们的一侧为z轴正向) x轴正向看过去(在屏幕上从左向右看过去)顺时针旋转20度 */
opacity: 0;
} .md-show.md-effect-5 .md-content {
transition: all 3s ease-in;
transform: translateZ(0px) rotateX(0deg);
opacity: 1;
}

效果六:滑入和滑落结合

css

.md-effect-6.md-modal {
perspective: 1300px;
} .md-effect-6 .md-content {
transform-style: preserve-3d;
transform: translate(30%) translateZ(600px) rotate(10deg); /* translate(30%)->translateX(30%);translateY(30%),同理 rotate() */
opacity: 0;
} .md-show.md-effect-6 .md-content {
transition: all 3s ease-in;
transform: translate(0%) translateZ(0) rotate(0deg);
opacity: 1;
}

效果七:滑入并且固定在屏幕上方

css

.md-effect-7{
top: 0;
transform: translateX(-50%);
} .md-effect-7 .md-content {
transform: translateY(-200%);
transition: all .3s; /* translateX(-50% - > 0);translateY(-200% -> 0) opaacity(0 -> 1) border-bottom-right(0 -> 3px) border-bottom-left(0 -> 3px)*/
opacity: 0;
} .md-show.md-effect-7 .md-content {
transform: translateY(0%);
border-radius: 0 0 3px 3px;
opacity: 1;
}

效果八:水平翻转

css

.md-effect-8.md-modal {
perspective: 1300px;
} .md-effect-8 .md-content {
transform-style: preserve-3d;
transform: rotateY(-70deg);/* 从y轴正向看去逆时针转70度 */
transition: all 0.3s;
opacity: 0;
} .md-show.md-effect-8 .md-content {
transform: rotateY(0deg);
opacity: 1;
}

效果九:垂直翻转

css

.md-effect-9.md-modal {
perspective: 1300px;
} .md-effect-9 .md-content {
transform-style: preserve-3d;
transform: rotateX(-70deg);/* 从X轴正向看去逆时针转70度*/
transition: all 0.3s;
opacity: 0;
} .md-show.md-effect-9 .md-content {
transform: rotateX(0deg);
opacity: 1;
} 效果十:3d 转入
css
.md-effect-10.md-modal {

    perspective: 1300px;
} .md-effect-10 .md-content {
transform-style: preserve-3d;
transform: rotateX(-60deg);
transform-origin: 50% 0; /* 规定原点位置 在元素上边的中点为原点 */
opacity: 0;
transition: all 0.3s;
} .md-show.md-effect-10 .md-content {
transform: rotateX(0deg);
opacity: 1;
}


js 常见弹出框学习的更多相关文章

  1. js自定义弹出框

    js自定义弹出框: 代码如下 <html> <head><title>自定义弹出对话框</title> <style type ="te ...

  2. 【原创】贡献一个JS的弹出框代码...

    一.前言 最近在做一个项目,自己感觉系统自带的alert()方法的弹出框实在是不堪入目,所以在网上找了一些资料,然后自己加工了一下,做出了自己的一个js弹出框,在这里贡献出来,希望对你有帮助. 二.开 ...

  3. js登录弹出框插件

    第一步:页面引入css:<link rel="stylesheet" type="text/css"" href="common/cs ...

  4. jsp + js + 前端弹出框

    在项目中,前端页面我们时常需要各种各样的弹出框: 1.alert对话框:显示含有给定消息的"JavaScript Alert"对话框 代码: var a = "Hello ...

  5. js swal()弹出框

    做前端开发的时候时常会遇到修改成功.新增成功这类弹出框,用alert的话未免有点太low了,而swal()是一个简单又实用的弹出框方法 alert 弹出框样式如下: swal() 弹出框样式如下: 代 ...

  6. js实现弹出框的拖拽

    //HTML部分 <div class="wrap"></div> <div class="popUpBox"> <d ...

  7. js实现弹出框跟随鼠标移动

    又是新的一天网上冲浪,在bing的搜索页面下看到这样一个效果: 即弹出框随着鼠标的移动而移动.思路大概为: 调用onmousemove函数,将鼠标的当前位置赋予弹出框即可 //html <div ...

  8. Js:消息弹出框、获取时间区间、时间格式、easyui datebox 自定义校验、表单数据转化json、控制两个日期不能只填一个

    (function ($) { $.messageBox = function (message) { $.messager.show({ title:'消息框提示', msg:message, sh ...

  9. 原生js制作弹出框

    完整代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

随机推荐

  1. AJAX需要注意的

    当你写好了与数据库连接的时候,例如这段代码:xmlHttp.open("GET","check.php?user="+url,true); 你不要认为你段代码就 ...

  2. lnmp 设置ci pathinfo和去掉index.php

    LNMP上各个版本pathinfo各个版本的设置基本一样: lnmp v1.1上,修改对应虚拟主机的配置文件去掉#include pathinfo.conf前面的#,把try_files $uri = ...

  3. Git ——分布式版本控制系统

    Git ——分布式版本控制系统 本人git主页地址:https://github.com/lendoon/test.git git使用心得:初次接触git在课堂上,老师给我们提供了一个代码托管的场所, ...

  4. 为Informix数据库开启事务

    1.首先在Informix数据库安装根目录的etc文件夹下找到名为ONCONFIG.on_xxxx的配置文件: 2.打开ONCONFIG.on_xxxx文件,在第409行的位置找到TAPEDEV \\ ...

  5. 【转】Java反射 之 反射基础

    一.反射 反射:Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为 ...

  6. win7下KiWi Syslog服务器的安装与配置

    今天就来聊聊日志服务器KiWi Syslog的安装与配置. 首先,所需文件有以下2个: 1.Kiwi_Syslog_Server_9.5.0.Eval.setup.exe[此版本只有14天寿命][Ki ...

  7. java学习笔记(菜鸟原创)

    搭建Java开发环境使用开发工具开发Myeclipse基础核心:JAVASEEEME面向对象 API JVM.JAVAEE是指java enterprise edition,java企业版,多用于企业 ...

  8. FB

    转眼间,开始工作到现在好几年,忙着功能,忙着补漏填坑,忙着项目,现在回顾着开始的理想,一时有点恍惚,然后鄙视了下自己居然还在“理想”中…… 那就开始吧,做点什么呢? DX9/DX11的支持是必须的,S ...

  9. 线程的2个ID

    我们知道进程ID是操作系统调度的最小单位,有时候根据业务的需要,我们会使用到多线程技术,当创建了多个线程时,也会有一个线程ID,那这个线程ID和进程ID有什么不一样吗? 其中,线程组的线程ID是属于N ...

  10. 如何在Outlook中打开后缀 .eml 的附件

    引用:http://jingyan.baidu.com/article/6fb756ec82c301241858fb1e.html