文档库 最新最全的文档下载
当前位置:文档库 › Bootstrap模态对话框:动态载入内容

Bootstrap模态对话框:动态载入内容

Bootstrap模态对话框:动态载入内容
Bootstrap模态对话框:动态载入内容

Bootstrap模态对话框:动态载入内容

Bootstrap官方文档给出了一个模态对话框的例子:

这是一个静态案例,写在页面上可以通过href或者js调用显示。

现在,当前页面上可能有多个模态对话框。如果使用静态的方式,那么有多少模

态对话框就要重写上面的代码多少遍。一个页面中填满了类似的代码,非常不友好。

于是希望,页面上只保留一个

用于容器,每个模态对话框的具体内容抽出

来,单独写到一个页面中。当需要显示哪个模态对话框时,只需要将该模态对话框对应页面的内容载入到

容器中即可。

Bootstrap的modal本身就提供了这种能力。

Bootstrap主要分两部分:

①最外层

,含modal与fade类。

②内层的内容,有3个

,分别含modal-header,modal-body和modal-f

ooter类。

有的模态对话框如下:

这样的模态对话框有四个部分:

①最外层

,含modal与fade类。

②第二层

,含modal-dialog类。

③第三层

,含modal-content类。

④第四层内容,有3个

,分别含modal-header,modal-body和modal-f

ooter类。

实际上,起主要作用的是最外层

,modal类是必须的。modal-dialog,m odal-content以及内层的3个
的类主要是用于样式,因此是可以缺少和修改的。不过,建议维持原格式。

Bootstrap的modal.options.remote属性可以指定一个渲染页面,或者一个请求,只要这个请求最终也是返回一个渲染页面即可。

当用js来启动modal时,就会获取到指定的渲染页面,并填充到modal-body部分的内容里。

这种方法有个问题,那就是模态对话框的渲染页面只会初始化一次,直到再次刷新页面为止。目前普遍的一个解决方法是在隐藏模态窗的时候去除数据:

$("#myModal").on("hidden", function() {

$(this).removeData("modal");

});

但该方法在某些情况下并不好用。

而实际上,除了上述方法外,还可以调用jQuery的load()函数来为

加载渲染页面。直接调用jQuery的load()会将指定的
所有的子内容全部清除,替换为渲染页面。

使用jQuery的load(),同样需要在隐藏模态窗的时候去除数据,但不会出现失灵的情况。

以下为Bootstrap中Modal的源码:

var Modal = function (element, options) {

this.options = options

this.$element = $(element)

.delegate('[data-dismiss="modal"]', 'click.dismiss.modal ', $.proxy(this.hide, this))

this.options.remote && this.$element.find('.modal-body').l oad(this.options.remote)

}

可以看到最后一行,当this.options.remote存在时,会调用this.$elem ent.find('.modal-body').load(this.options.remote),也就是说会找到

含modal-body类的

,对该
调用jQuery的load(),来将remote所指向的渲染页面加载到该
中。

现在使用jQuery的load()方式。

要创建一个动态加载的模态对话框,可以使用如下方式:

1.在主页面中,:

其中showModal()函数可以由按钮等控件进行调用。

2.在模态对话框页面中只填写内容部分:

这样,当调用主页面的showModal()函数时,就会请求模态对话框页面(即2中的内容)。该模态对话框页面会以jQuery.load()的方式加载到$("#myModal")中,也就显示出了模态对话框。

注意要将页面加载给哪个

,就由哪个
调用jQuery.load()。这个
不一定是最外层的

但调用jQuery. modal('show')的一定是最外层的

可以与下面的代码进行对比:

1.在主页面中,:

2.在模态对话框页面中只填写内容部分:

MFC中非模态对话框不响应PreTranslateMessage函数的解决方法

MFC中非模态对话框不响应PreTranslateMessage函数的解决方法 程序员真心不容易啊,为了一个好的用户体验真可谓是操碎了心。今天由于项目需要,需要在非模态对话框上,当鼠标处于某个位置的时候有提示框显示。实现这个功能本来很简单,但是却遇到了一个郁闷的问题:PreTranslateMessage函数没响应。于是各种度娘,可惜度娘非谷歌,找了一个小时终于在一个隐蔽的地方找到了解决方法。 首先我介绍下当鼠标处于特定位置的时候有提示信息显示的实现方法。 需要使用MFC的CToolTipCtrl控件。 1.首先在Dialog类中添加一个成员对象 [cpp]view plain copy 1.//消息提示框 2. CToolTipCtrl m_toolTip; 1.//创建消息提示框 2. EnableToolTips(TRUE);//enable use it 3.BOOL bRet = m_toolTip.Create(this, TTS_ALWAYSTIP | WS_CHILD | WS_VISIBLE ); 4. m_toolTip.AddTool(this); 5. m_toolTip.Activate(TRUE); 6. m_toolTip.SetDelayTime(150); 3.捕获鼠标的移动消息OnMouseMove,当鼠标处在某一特定区域的时候,弹出消息提示框。切换消息内容使用CToolTipCtrl::UpdateTipText函数。 [cpp]view plain copy

1.void CDisplayPicDlg::OnMouseMove(UINT nFlags, CPoint point) 2.{ 3.//如果鼠标在矩形所在区域,需要把箭头鼠标变成手型的 4.int iSel = GetSelectCameraNo(point); 5.if(-1 != iSel) 6. { 7. SetCursor(LoadCursor(NULL, IDC_HAND)); 8. m_toolTip.UpdateTipText(m_stMonitorCamera[iSel].szCamereName, this); 9. } 10.else//还原成箭头鼠标形式 11. { 12. SetCursor(LoadCursor(NULL, IDC_ARROW)); 13. m_toolTip.UpdateTipText("", this); 14. } 15.if(-1 != m_lCameraIdPre) 16. { 17. SetCursor(LoadCursor(NULL, IDC_ARROW) ); 18. } 19.//..................... 20.} 1.BOOL CDisplayPicDlg::PreTranslateMessage(MSG* pMsg) 2.{ 3. m_toolTip.RelayEvent(pMsg); 4.return CDialog::PreTranslateMessage(pMsg); 5.} 6. 好了,做到这四部就基本完成了。当自己满怀信息一运行发现根本没有弹出提示信息。经过调试发现,PreTranslateMessage函数并没有被调用,于是引出了重要的主题,非模态对话框如何响应PreTranslateMessage函数的问题。经过一番百度,终于找到了解决方法。 在MFC的App类中需要用Hook来勾取消息,需要注意的是GetMessageProc是个回调函数,所以我们需要将它设成类的静态成员函数。 即: [cpp]view plain copy

js闪烁的星空特效源码

1 颜色选择器 页面背景篇--颜色选择器

页面背景篇--颜色选择器



2 闪烁星空 页面背景篇--闪烁星空

页面背景篇--闪烁星空

Qt 模态对话框和非模态对话框

详解 Qt 模态对话框和非模态对话框 2011-07-01 11:33 佚名互联网我要评论(0)字号:T | T 如果从线程角度来讲,模态对话框实际上是线程阻塞的,也就是子对话框是一个线程,但是在创建这个子线程之后,父窗口就阻塞了;模态对话框则不是阻塞型的线程模型,父子线程可以并行运行。 AD:Qt 模态对话框和非模态对话框是本文介绍的内容,本文认为本篇是一篇很有意思的文章,不多说,我们先来看内容。 模态对话框就是指在子对话框弹出时,焦点被强行集中于该子对话框,子对话框不关闭,用户将无法操作其他的窗口。非模态相反,用户仍然可以操作其他的窗口,包括该子对话框的父对话框。 如果从线程角度来讲,模态对话框实际上是线程阻塞的,也就是子对话框是一个线程,但是在创建这个子线程之后,父窗口就阻塞了;模态对话框则不是阻塞型的线程模型,父子线程可以并行运行。 和所有流行的图形类库一样,Qt也提供了创建模态和非模态对话框的机制。 在Qt中创建模态对话框,主要用到了QDialog的exec函数: 1.SonDialog dlg(this); 2.int res = dlg.exec(); 3.if (res == QDialog::Accepted) 4.{ 5. QMessageBox::information(this, "INFORMATION", "You clicked OK bu tton!"); 6.} 7.if (res == QDialog::Rejected) 8.{ 9. QMessageBox::information(this, "INFORMATION", "You clicked CANCE L button!"); 10.} 正如上面代码所显示的,可以通过exec函数的返回值来判断用户点击了哪个按钮使得模态对话框退出的,这可以使得我们能够根据用户的不同行为在推出退出模态对话框之后采

模态分析理论

模态分析理论 Document number:WTWYT-WYWY-BTGTT-YTTYU-2018GT

模态分析指的是以振动理论为基础、以模态参数为目标的分析方法。首先建立结构的物理参数模型,即以质量、阻尼、刚度为参数的关于位移的振动微分方程;其次是研究其特征值问题,求得特征对(特征值和特征矢量),进而得到模态参数模型,即系统的模态频率、模态矢量、模态阻尼比、模态质量、模态刚度等参数。 特征根问题 以图3所示的三自由度无阻尼系统为例,设123m =m =m =m ,123k =k =k =k , 图三自由度系统 其齐次运动方程为: mz?+kz =0(8) 其中m ,k 分别为系统的质量矩阵和刚度矩阵, 12 3m 00m 00m=0m 0=0m 000m 00m ????????????????????,1 12 1222 1k -k 0k -k 0k=-k k +k -k =-k 2k -k 0 -k k 0-k k ???? ???????????????? ,则运动方程展开式为: ¨1 1¨22¨33z m 00k k 0z 00m 0z k 2k k z 000m 0k k z 0z ?? ??-???????? ??????????+--=????????????????????-???????????? (9) 定义主振型 由于是无阻尼系统,因此系统守恒,系统存在振动主振型。主振型意味着各物理坐标振动的相位角不是同相(相差0o )就是反相位(相差180o ),即同时达到平衡位置和最大位置。主振型定义如下: ()i i j ωt+i i sin ωt+=Im(e )φφi mi mi z =z z (10)

浮动div代码

随滚动条移动的层- https://www.wendangku.net/doc/669026273.html,

正中...
左上...
Response.Write(""); Response.Write("
");

模态分析中的几个基本概念模态分析中的几个基本概念分析

模态分析中的几个基本概念 物体按照某一阶固有频率振动时,物体上各个点偏离平衡位置的位移是满足一定的比例关系的,可以用一个向量表示,这个就称之为模态。模态这个概念一般是在振动领域所用,你可以初步的理解为振动状态,我们都知道每个物体都具有自己的固有频率,在外力的激励作用下,物体会表现出不同的振动特性。一阶模态是外力的激励频率与物体固有频率相等的时候出现的,此时物体的振动形态叫做一阶振型或主振型;二阶模态是外力的激励频率是物体固有频率的两倍时候出现,此时的振动外形叫做二阶振型,以依次类推。一般来讲,外界激励的频率非常复杂,物体在这种复杂的外界激励下的振动反应是各阶振型的复合。模态是结构的固有振动特性,每一个模态具有特定的固有频率、阻尼比和模态振型。这些模态参数可以由计算或试验分析取得,这样一个计算或试验分析过程称为模态分析。有限元中模态分析的本质是求矩阵的特征值问题,所以“阶数”就是指特征值的个数。将特征值从小到大排列就是阶次。实际的分析对象是无限维的,所以其模态具有无穷阶。但是对于运动起主导作用的只是前面的几阶模态,所以计算时根据需要计算前几阶的。一个物体有很多个固有振动频率(理论上无穷多个),按照从小到大顺序,第一个就叫第一阶固有频率,依次类推。所以模态的阶数就是对应的固有频率的阶数。振型是指体系的一种固有的特性。它与固有频率相对应,即为对应固有频率体系自身振动的形态。每一阶固有频率都对应一种振型。振型与体系实际的振动形态不一定相同。振型对应于频率而言,一个固有频率对应于一个振型。按照频率从低到高的排列,来说第一振型,第二振型等等。此处的振型就是指在该固有频率下结构的振动形态,频率越高则振动周期越小。在实验中,我们就是通过用一定的频率对结构进行激振,观测相应点的位移状况,当观测点的位移达到最大时,此时频率即为固有频率。实际结构的振动形态并不是一个规则的形状,而是各阶振型相叠加的结果。 固有频率也称为自然频率( natural frequency)。物体做自由振动时,其位移随时间按正弦或余弦规律变化,振动的频率与初始条件无关,而仅与系统的固有特性有关(如质量、形状、材质等),称为固有频率,其对应周期称为固有周期。 物体做自由振动时,其位移随时间按正弦规律变化,又称为简谐振动。简谐振动的振幅及初相位与振动的初始条件有关,振动的周期或频率与初始条件无关,而与系统的固有特性有关,称为固有频率或者固有周期。 物体的频率与它的硬度、质量、外形尺寸有关,当其发生形变时,弹力使其恢复。弹力主要与尺寸和硬度有关,质量影响其加速度。同样外形时,硬度高的频率高,质量大的频率低。一个系统的质量分布,内部的弹性以及其他的力学性质决定 模态扩展是为了是结果在后处理器中观察而设置的,原因如下: 求解器的输出内容主要是固有频率,固有频率被写到输出文件Jobname.OUT 及振型文件Jobnmae.MODE 中,输出内容中也可以包含缩减的振型和参与因子表,这取决于对分析选项和输出控制的设置,由于振型现在还没有被写到数据库或结果文件中,因此不能对结果进行后处理,要进行后处理,必须对模态进行扩展。在模态分析中,我们用“扩展”这个词指将振型写入结果文件。也就是说,扩展模态不仅适用于Reduced 模态提取方法得到的缩减振型,而且也适用与其他模态提取方法得到的完整振型。因此,如果想在后处理器中观察振型,必须先扩展模态。谱分析中的模态合并是因为激励谱是其实是由一系列的激励组合成的一个谱,里面的频率不会是只有一个,而不同的激励频率对于结构产生的结果是不一样的,对于结果的贡献也是不一样的,所以要选择模态组合法对模态进行组合,得到最终的响应结果。

两边条幅浮动窗口代码

浮动对联广告代码(asp)(2008-12-17 20:27:25) 使用方法: 方法一.直接把以上代码插入到网页合适位置,修改以上汉字提示信息(效果如本页面实例展示,本页面显示的图片大小是100*250象素). 方法二.1、用记事本保存以上源代码,建立后缀名为.js的文件,比如ad.js 2.在需要显示浮动广告的网页中加入 表示调用该ad.js文件。 注意事项: 1.新建立的显示浮动广告的网页,需要删除代码第一行的标签,如果不删除,只会显示广告图片,但该图片不会随着滚动条上下滚动。你可以先不删除,测试效果;然后删除,再看效果,应该有所不同。 2.如果需要单侧显示广告,比如只显示左侧,那么删除右侧显示代码就可以,即删除suspendcode14="

"

bootstrap-modal 学习笔记 源码分析===

bootstrap-modal 学习笔记源码分析 ?css部分呢Bootstrap由动态CSS语言Less写成,在很多方面类似CSS框架Blueprint ?Bootstrap自带了13个jQuery插件,jquery这个东东,也是个版本帝,现在都10.1了… ?一直做移动app,都是用的自己的框架或者zepto,jquery就没正儿八经的用过,源码就看过1.42的后来改动太大了,具体慢慢分析看看源码吧 引入 1: 2: 查看演示案例 3: 4: 5:

从所周知,javascript 采用事件驱动(event-driven)。它是在用形界面的环境下,使得一切输入变化简单化。通常鼠标或热键的动作我们称之为事件(Event),而由鼠标或热键引发的一连串程序的动作,称之为事件驱动(Event Driver)。而对事件进行处理程序或函数,我们称之为事件处理程序(Event Handler) Bootstrap是13个jquery插件,自然事件也是基于jquery处理的 我们先看看Bootstrap插件源码中常用的绑定机制 on方法 jQuery1.7开始,jQuery引入了全新的事件绑定机制,on()和off()两个函数统一处理事件绑定,因为在此之前有bind(), live(), delegate()等方法来处理事件绑定,jQuery从性能优化以及方式统一方面考虑决定推出新的函数来统一事件绑定方法并且替换掉以前的方法,老版本还有live() 现在好像被废弃掉了,至于那个版本去掉的,我就没注意了简单的说下区别: ?bind 是一对一的 ?live 是指默认绑定到document,通过冒泡过滤 ?delegate 则是直接绑定指定的content,然后通过冒泡过滤 呵呵考虑下(′a′).live()==(document).delegate('a') ? live废弃的原因,估计也是效率,然后不够灵活吧,尤其要提出来zepto的移动事件默认就绑定到document上,给项目带来不便…… on的处理机制也很简单, 看官方给的API的一个demo 1: Click me! 2: 3: 4: