<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - Blogs - Darkaurora</title>
		<link>https://www.developpez.net/forums/blogs/372430-darkaurora/</link>
		<description>Developpez.com, le Club des Développeurs et IT Pro</description>
		<language>fr</language>
		<lastBuildDate>Sun, 19 Apr 2026 02:02:12 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.jpg</url>
			<title>Forum du club des développeurs et IT Pro - Blogs - Darkaurora</title>
			<link>https://www.developpez.net/forums/blogs/372430-darkaurora/</link>
		</image>
		<item>
			<title>Étendre les fenêtres modals de Bootstrap.</title>
			<link>https://www.developpez.net/forums/blogs/372430-darkaurora/b446/etendre-fenetres-modals-bootstrap/</link>
			<pubDate>Thu, 16 Apr 2015 07:42:45 GMT</pubDate>
			<description>Cela fait déjà longtemps que...</description>
			<content:encoded><![CDATA[<blockquote class="blogcontent restore">Cela fait déjà longtemps que j'utilise ce composant proposé par le framework Bootstrap mais malheureusement il lui manquait une fonctionnalité intéressante: stackable.<br />
<br />
Dans ces dernières versions la modal de BS permet justement de s'empiler mais malheureusement il y a un effet, que je trouve désagréable, c'est qu'a chaque ouverture d'une fenêtre un élément &quot;backdrop&quot; viens s'ajouter au DOM, rendant l'arrière plan de plus en plus opaque au fur et à mesure de l'ouverture de fenêtre.<br />
<br />
Je me suis donc penché sur les solutions permettant de minimiser l'effet et deux solutions s'offrent à nous:<br />
<ul><li style="">Soit nous définissons un code &quot;rustine&quot; qui permettra de corriger le problème.</li><li style="">Soit nous agissons directement au niveau du plugin.</li></ul><br />
<br />
La première solution est normalement celle que tout le monde devrait choisir, en effet les modals BS offrent une API permettant d'agir sur les éléments à 4 étapes de l'initialisation et de la destruction des fenêtres. De plus agir de cette manière nous assure l'intégrité du framework BS notamment lorsque décision est prise de le mettre à jour.<br />
<br />
Malheureusement cette solution souffre d'un problème de &quot;timing&quot; dans notre cas d'étude, en agissant de cette manière et avec le même code que je propose ci dessous, vous constaterez des effets visuels indésirables.<br />
<br />
C'est pourquoi j'ai opté pour la deuxième solution, un peu plus contraignante mais très fonctionnelle:<br />
<br />
Après avoir lut le code du plugin deux fonctions nous intéressent:<br />
<span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">Modal.prototype.show</span> et <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">Modal.prototype.backdrop</span>.<br />
<br />
Fonction Show:<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code javascript :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br /></div></td><td valign="top"><pre style="margin: 0">Modal.<span style="color: #0000ff;">prototype</span>.show = <span style="color: #0000ff;">function</span> <span class="br0">&#40;</span>_relatedTarget<span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span style="color: #0000ff;">var</span> that = <span style="color: #0000ff;">this</span>
    <span style="color: #0000ff;">var</span> e    = <span style="color: #0000ff;">$</span>.<span style="color: #0080ff;">Event</span><span class="br0">&#40;</span><span style="color: #FF0000;">'show.bs.modal'</span>, <span class="br0">&#123;</span> <span style="color: #800000;">relatedTarget</span>: _relatedTarget <span class="br0">&#125;</span><span class="br0">&#41;</span>
&nbsp;
    <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>element.<span style="color: #0080ff;">trigger</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span>
&nbsp;
    <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #0000ff;">this</span>.isShown || e.<span style="color: #0080ff;">isDefaultPrevented</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span style="color: #0000ff;">return</span>
&nbsp;
    <span style="color: #0000ff;">this</span>.isShown = <span style="color: #339933;">true</span>
&nbsp;
    <span style="color: #0000ff;">this</span>.<span style="color: #0080ff;">checkScrollbar</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
    <span style="color: #0000ff;">this</span>.<span style="color: #0080ff;">setScrollbar</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
    <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>body
      .<span style="color: #0080ff;">addClass</span><span class="br0">&#40;</span><span style="color: #FF0000;">'modal-open'</span><span class="br0">&#41;</span>
<span style="color: #808080;">// Nous intervenons ici afin d'enregistrer un nombre de modals ouvertes</span>
      .<span style="color: #0080ff;">data</span><span class="br0">&#40;</span><span style="color: #FF0000;">'modalIndice'</span>, <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>body.<span style="color: #0080ff;">data</span><span class="br0">&#40;</span><span style="color: #FF0000;">'modalIndice'</span><span class="br0">&#41;</span> ?
        <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>body.<span style="color: #0080ff;">data</span><span class="br0">&#40;</span><span style="color: #FF0000;">'modalIndice'</span><span class="br0">&#41;</span> + <span style="color: #cc66cc;">1</span> :
        <span style="color: #cc66cc;">1</span>
      <span class="br0">&#41;</span>
&nbsp;
    <span style="color: #0000ff;">this</span>.<span style="color: #0080ff;">escape</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
    <span style="color: #0000ff;">this</span>.<span style="color: #0080ff;">resize</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
    <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>element
      .<span style="color: #0080ff;">on</span><span class="br0">&#40;</span><span style="color: #FF0000;">'click.dismiss.bs.modal'</span>, <span style="color: #FF0000;">'[data-dismiss=&quot;modal&quot;]'</span>, <span style="color: #0000ff;">$</span>.<span style="color: #0080ff;">proxy</span><span class="br0">&#40;</span><span style="color: #0000ff;">this</span>.hide, <span style="color: #0000ff;">this</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
<span style="color: #808080;">// Grace &agrave; la donn&eacute;e modalIndice nous pouvons attribuer un num&eacute;ro ordonn&eacute; &agrave; la modal actuelle.</span>
      .<span style="color: #0080ff;">data</span><span class="br0">&#40;</span><span style="color: #FF0000;">'modalOrder'</span>, <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>body.<span style="color: #0080ff;">data</span><span class="br0">&#40;</span><span style="color: #FF0000;">'modalIndice'</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
&nbsp;
    <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>dialog.<span style="color: #0080ff;">on</span><span class="br0">&#40;</span><span style="color: #FF0000;">'mousedown.dismiss.bs.modal'</span>, <span style="color: #0000ff;">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
      that.<span style="color: #0000ff;">$</span>element.<span style="color: #0080ff;">one</span><span class="br0">&#40;</span><span style="color: #FF0000;">'mouseup.dismiss.bs.modal'</span>, <span style="color: #0000ff;">function</span> <span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #0000ff;">$</span><span class="br0">&#40;</span>e.target<span class="br0">&#41;</span>.<span style="color: #0080ff;">is</span><span class="br0">&#40;</span>that.<span style="color: #0000ff;">$</span>element<span class="br0">&#41;</span><span class="br0">&#41;</span> that.ignoreBackdropClick = <span style="color: #339933;">true</span>
      <span class="br0">&#125;</span><span class="br0">&#41;</span>
    <span class="br0">&#125;</span><span class="br0">&#41;</span>
&nbsp;
    <span style="color: #0000ff;">this</span>.<span style="color: #0080ff;">backdrop</span><span class="br0">&#40;</span><span style="color: #0000ff;">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
      <span style="color: #0000ff;">var</span> transition = <span style="color: #0000ff;">$</span>.support.transition &amp;&amp; that.<span style="color: #0000ff;">$</span>element.<span style="color: #0080ff;">hasClass</span><span class="br0">&#40;</span><span style="color: #FF0000;">'fade'</span><span class="br0">&#41;</span>
&nbsp;
      <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>!that.<span style="color: #0000ff;">$</span>element.<span style="color: #0080ff;">parent</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">length</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        that.<span style="color: #0000ff;">$</span>element.<span style="color: #0080ff;">appendTo</span><span class="br0">&#40;</span>that.<span style="color: #0000ff;">$</span>body<span class="br0">&#41;</span> <span style="color: #808080;">// don't move modals dom position</span>
      <span class="br0">&#125;</span>
&nbsp;
      that.<span style="color: #0000ff;">$</span>element
        .<span style="color: #0080ff;">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
        .<span style="color: #0080ff;">scrollTop</span><span class="br0">&#40;</span><span style="color: #cc66cc;">0</span><span class="br0">&#41;</span>
&nbsp;
      that.<span style="color: #0080ff;">adjustDialog</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
      <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>transition<span class="br0">&#41;</span> <span class="br0">&#123;</span>
        that.<span style="color: #0000ff;">$</span>element<span class="br0">&#91;</span><span style="color: #cc66cc;">0</span><span class="br0">&#93;</span>.offsetWidth <span style="color: #808080;">// force reflow</span>
      <span class="br0">&#125;</span>
&nbsp;
      that.<span style="color: #0000ff;">$</span>element
        .<span style="color: #0080ff;">addClass</span><span class="br0">&#40;</span><span style="color: #FF0000;">'in'</span><span class="br0">&#41;</span>
        .<span style="color: #0080ff;">attr</span><span class="br0">&#40;</span><span style="color: #FF0000;">'aria-hidden'</span>, <span style="color: #339933;">false</span><span class="br0">&#41;</span>
&nbsp;
      that.<span style="color: #0080ff;">enforceFocus</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
      <span style="color: #0000ff;">var</span> e = <span style="color: #0000ff;">$</span>.<span style="color: #0080ff;">Event</span><span class="br0">&#40;</span><span style="color: #FF0000;">'shown.bs.modal'</span>, <span class="br0">&#123;</span> <span style="color: #800000;">relatedTarget</span>: _relatedTarget <span class="br0">&#125;</span><span class="br0">&#41;</span>
&nbsp;
      transition ?
        that.<span style="color: #0000ff;">$</span>dialog <span style="color: #808080;">// wait for modal to slide in</span>
          .<span style="color: #0080ff;">one</span><span class="br0">&#40;</span><span style="color: #FF0000;">'bsTransitionEnd'</span>, <span style="color: #0000ff;">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            that.<span style="color: #0000ff;">$</span>element.<span style="color: #0080ff;">trigger</span><span class="br0">&#40;</span><span style="color: #FF0000;">'focus'</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">trigger</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span>
          <span class="br0">&#125;</span><span class="br0">&#41;</span>
          .<span style="color: #0080ff;">emulateTransitionEnd</span><span class="br0">&#40;</span>Modal.TRANSITION_DURATION<span class="br0">&#41;</span> :
        that.<span style="color: #0000ff;">$</span>element.<span style="color: #0080ff;">trigger</span><span class="br0">&#40;</span><span style="color: #FF0000;">'focus'</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">trigger</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span>
    <span class="br0">&#125;</span><span class="br0">&#41;</span>
  <span class="br0">&#125;</span></pre></td></tr></table></pre>
</div><br />
Fonction Backdrop:<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code javascript :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br /></div></td><td valign="top"><pre style="margin: 0">Modal.<span style="color: #0000ff;">prototype</span>.backdrop = <span style="color: #0000ff;">function</span> <span class="br0">&#40;</span>callback<span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span style="color: #0000ff;">var</span> that = <span style="color: #0000ff;">this</span>
    <span style="color: #0000ff;">var</span> animate = <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>element.<span style="color: #0080ff;">hasClass</span><span class="br0">&#40;</span><span style="color: #FF0000;">'fade'</span><span class="br0">&#41;</span> ? <span style="color: #FF0000;">'fade'</span> : <span style="color: #FF0000;">''</span>
    <span style="color: #0000ff;">var</span> lastVisibleBackdrop = <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>body.<span style="color: #0080ff;">find</span><span class="br0">&#40;</span><span style="color: #FF0000;">'.modal-backdrop:last:visible'</span><span class="br0">&#41;</span> <span style="color: #808080;">// Nous r&eacute;cup&eacute;rons le dernier arri&egrave;re plan visible</span>
    <span style="color: #0000ff;">var</span> lastHiddenBackdrop = <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>body.<span style="color: #0080ff;">find</span><span class="br0">&#40;</span><span style="color: #FF0000;">'.modal-backdrop:hidden:last'</span><span class="br0">&#41;</span> <span style="color: #808080;">// Nous r&eacute;cup&eacute;rons le dernier arri&egrave;re plan cach&eacute;</span>
&nbsp;
    <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #0000ff;">this</span>.isShown &amp;&amp; <span style="color: #0000ff;">this</span>.options.backdrop<span class="br0">&#41;</span> <span class="br0">&#123;</span>
      <span style="color: #0000ff;">var</span> doAnimate = <span style="color: #0000ff;">$</span>.support.transition &amp;&amp; animate
<span style="color: #808080;">// On cache tous les autres backdrop &agrave; part celui actif puis on r&eacute;duis le z-index des autres modals pour les faire passer sous le backdrop actif</span>
      <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>lastVisibleBackdrop.<span style="color: #0080ff;">length</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        lastVisibleBackdrop.<span style="color: #0080ff;">hide</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;
        <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>body.<span style="color: #0080ff;">find</span><span class="br0">&#40;</span><span style="color: #FF0000;">'.modal:visible'</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">each</span><span class="br0">&#40;</span><span style="color: #0000ff;">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
          <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #0000ff;">this</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span style="color: #cc66cc;">0</span><span class="br0">&#93;</span> !== that.<span style="color: #0000ff;">$</span>element<span class="br0">&#91;</span><span style="color: #cc66cc;">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #0000ff;">this</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">css</span><span class="br0">&#40;</span><span style="color: #FF0000;">'z-index'</span>, <span style="color: #cc66cc;">1030</span><span class="br0">&#41;</span>
          <span class="br0">&#125;</span>
        <span class="br0">&#125;</span><span class="br0">&#41;</span>
      <span class="br0">&#125;</span>
&nbsp;
      <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>backdrop = <span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #FF0000;">'&lt;div class=&quot;modal-backdrop '</span> + animate + <span style="color: #FF0000;">'&quot; /&gt;'</span><span class="br0">&#41;</span>
          .<span style="color: #0080ff;">appendTo</span><span class="br0">&#40;</span><span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>body<span class="br0">&#41;</span>
&nbsp;
      <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>element.<span style="color: #0080ff;">on</span><span class="br0">&#40;</span><span style="color: #FF0000;">'click.dismiss.bs.modal'</span>, <span style="color: #0000ff;">$</span>.<span style="color: #0080ff;">proxy</span><span class="br0">&#40;</span><span style="color: #0000ff;">function</span> <span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #0000ff;">this</span>.ignoreBackdropClick<span class="br0">&#41;</span> <span class="br0">&#123;</span>
          <span style="color: #0000ff;">this</span>.ignoreBackdropClick = <span style="color: #339933;">false</span>
          <span style="color: #0000ff;">return</span>
        <span class="br0">&#125;</span>
        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>e.target !== e.currentTarget<span class="br0">&#41;</span> <span style="color: #0000ff;">return</span>
        <span style="color: #0000ff;">this</span>.options.backdrop == <span style="color: #FF0000;">'static'</span>
          ? <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>element<span class="br0">&#91;</span><span style="color: #cc66cc;">0</span><span class="br0">&#93;</span>.<span style="color: #0080ff;">focus</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
          : <span style="color: #0000ff;">this</span>.<span style="color: #0080ff;">hide</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
      <span class="br0">&#125;</span>, <span style="color: #0000ff;">this</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
&nbsp;
      <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>doAnimate<span class="br0">&#41;</span> <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>backdrop<span class="br0">&#91;</span><span style="color: #cc66cc;">0</span><span class="br0">&#93;</span>.offsetWidth <span style="color: #808080;">// force reflow</span>
&nbsp;
      <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>backdrop.<span style="color: #0080ff;">addClass</span><span class="br0">&#40;</span><span style="color: #FF0000;">'in'</span><span class="br0">&#41;</span>
&nbsp;
      <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>!callback<span class="br0">&#41;</span> <span style="color: #0000ff;">return</span>
&nbsp;
      doAnimate ?
        <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>backdrop
          .<span style="color: #0080ff;">one</span><span class="br0">&#40;</span><span style="color: #FF0000;">'bsTransitionEnd'</span>, callback<span class="br0">&#41;</span>
          .<span style="color: #0080ff;">emulateTransitionEnd</span><span class="br0">&#40;</span>Modal.BACKDROP_TRANSITION_DURATION<span class="br0">&#41;</span> :
        <span style="color: #0080ff;">callback</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
    <span class="br0">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>!<span style="color: #0000ff;">this</span>.isShown &amp;&amp; <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>backdrop<span class="br0">&#41;</span> <span class="br0">&#123;</span>
      <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>backdrop.<span style="color: #0080ff;">removeClass</span><span class="br0">&#40;</span><span style="color: #FF0000;">'in'</span><span class="br0">&#41;</span>
<span style="color: #808080;">// On affiche le dernier backdrop cach&eacute; puis on augmente le z-index de la modal ayant l'indice juste au dessous de celle qui est active et en cours de destruction</span>
      <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>lastHiddenBackdrop.<span style="color: #0080ff;">length</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        lastHiddenBackdrop.<span style="color: #0080ff;">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;
        <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>body.<span style="color: #0080ff;">find</span><span class="br0">&#40;</span><span style="color: #FF0000;">'.modal:visible'</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">each</span><span class="br0">&#40;</span><span style="color: #0000ff;">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
          <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #0000ff;">this</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">data</span><span class="br0">&#40;</span><span style="color: #FF0000;">'modalOrder'</span><span class="br0">&#41;</span> === that.<span style="color: #0000ff;">$</span>element.<span style="color: #0080ff;">data</span><span class="br0">&#40;</span><span style="color: #FF0000;">'modalOrder'</span><span class="br0">&#41;</span> - <span style="color: #cc66cc;">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #0000ff;">this</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">css</span><span class="br0">&#40;</span><span style="color: #FF0000;">'z-index'</span>, <span style="color: #cc66cc;">1050</span><span class="br0">&#41;</span>
          <span class="br0">&#125;</span>
        <span class="br0">&#125;</span><span class="br0">&#41;</span>
      <span class="br0">&#125;</span>
&nbsp;
      <span style="color: #0000ff;">var</span> callbackRemove = <span style="color: #0000ff;">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        that.<span style="color: #0080ff;">removeBackdrop</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
        callback &amp;&amp; <span style="color: #0080ff;">callback</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
      <span class="br0">&#125;</span>
      <span style="color: #0000ff;">$</span>.support.transition &amp;&amp; <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>element.<span style="color: #0080ff;">hasClass</span><span class="br0">&#40;</span><span style="color: #FF0000;">'fade'</span><span class="br0">&#41;</span> ?
        <span style="color: #0000ff;">this</span>.<span style="color: #0000ff;">$</span>backdrop
          .<span style="color: #0080ff;">one</span><span class="br0">&#40;</span><span style="color: #FF0000;">'bsTransitionEnd'</span>, callbackRemove<span class="br0">&#41;</span>
          .<span style="color: #0080ff;">emulateTransitionEnd</span><span class="br0">&#40;</span>Modal.BACKDROP_TRANSITION_DURATION<span class="br0">&#41;</span> :
        <span style="color: #0080ff;">callbackRemove</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
    <span class="br0">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>callback<span class="br0">&#41;</span> <span class="br0">&#123;</span>
      <span style="color: #0080ff;">callback</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
    <span class="br0">&#125;</span>
  <span class="br0">&#125;</span></pre></td></tr></table></pre>
</div><br />
Et le tour est joué :). Certes il reste encore pas mal de travail afin de fournir un plugin plus fournis que l'original et ainsi s'en détaché, mais l'idée est là et elle n'est pas bien compliqué.<br />
<br />
Avis, remarques et optimisations sont les bienvenus ;)<br />
<br />
Le code est disponible <a href="https://github.com/GLacourt/Modal-Bootstrap-hack" target="_blank">ici</a></blockquote>

]]></content:encoded>
			<dc:creator>Darkaurora</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/blogs/372430-darkaurora/b446/etendre-fenetres-modals-bootstrap/</guid>
		</item>
	</channel>
</rss>
