[Bootstrap] Probleem met modal

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Rogie25
  • Registratie: Maart 2015
  • Laatst online: 19-04 20:38
Hallo allemaal,

Ik heb een probleem met het toevoegen van een modal binnen het Bootstrap 3.2 framework. Hij opent de modal precies zoals zou moeten, maar vervolgens zijn de grijze overlay over het gehele scherm, inclusief de modal, en zorgt klikken op elke willekeurige plaats voor het sluiten van de Modal en het verdwijnen van de grijze overlay. Het probleem doet zich in zowel Chrome als IE voor. Gezien deze problemen heb ik alles gereduceerd tot het openen van de standaard voorbeeld modal, terwijl de originele bootstrap.css ingeladen wordt zonder additionele css bestanden. De code voor de modal staat direct achter de body tag.

Heeft iemand enig idee waar dit aan kan liggen?

BVD!

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<div class="modal fade" id="photoPopup" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            <h4 class="modal-title" id="myModalLabel">Modal title</h4>
          </div>
          <div class="modal-body">
            ...
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            <button type="button" class="btn btn-primary">Save changes</button>
          </div>
        </div>
      </div>
    </div>

Acties:
  • 0 Henk 'm!

  • xFeverr
  • Registratie: Juni 2011
  • Laatst online: 14-10 12:47
Nou... je mist hier sowieso al een sluit-tag voor div. Onderaan nog even </div> toevoegen en kijken wat dat doet

Acties:
  • 0 Henk 'm!

  • MrMonkE
  • Registratie: December 2009
  • Laatst online: 10-10 16:22

MrMonkE

★ EXTRA ★

Die is natuurlijk bij het pasten weggevallen.

★ What does that mean? ★


Acties:
  • 0 Henk 'm!

  • C0rnelis
  • Registratie: Juni 2010
  • Laatst online: 26-08 22:21
Alle divs kloppen, de indent ziet er hooguit wat raar uit - de bovenste is verder naar voren gehaald gezien daar het "kopieren" is begonnen ;)

@Rogie25; documentatie al eens gelezen ? http://getbootstrap.com/javascript/#modals-options

Je beschrijf nu standaard gedrag en data-backdrop="static" is volgens mij waar je naar vraagt als ik je zinnen goed begrijp.

[ Voor 5% gewijzigd door C0rnelis op 08-04-2015 23:19 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
xFeverr schreef op woensdag 08 april 2015 @ 23:01:
Nou... je mist hier sowieso al een sluit-tag voor div. Onderaan nog even </div> toevoegen en kijken wat dat doet
Helemaal niet. De indenting klopt van geen meter maar er worden evenveel div tagss geopend als gesloten ;)

@Rogie25: het is altijd handig als je even een testcase online zet zodat mensen snel/makkelijk je probleem kunnen zien / reproduceren.

Edit: 8)7 Ik zie net dat:
C0rnelis schreef op woensdag 08 april 2015 @ 23:18:
Je beschrijf nu standaard gedrag en data-backdrop="static" is volgens mij waar je naar vraagt als ik je zinnen goed begrijp.
die link niet naar de data-backdrop documentatie gaat zoals ik verwachtte maar, naar een fiddle :o d:)b

[ Voor 32% gewijzigd door RobIII op 09-04-2015 00:14 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Rogie25
  • Registratie: Maart 2015
  • Laatst online: 19-04 20:38
Dankjulliewel voor jullie reactie. De backdrop optie heeft volgens mij alleen betrekking tot het wel of niet laten sluiten van de modal bij erop klikken.

In deze Fiddle werkt het naar behoren. Als ik dezelfde code echter op de pagina inbouw, gaat het mis en komt de modal achter de backdrop terecht. Ik heb alle andere componenten al eruit gehaald, behalve een standaard menubalk van Bootstrap. Ik laad de originele bootstrap.css in en de nieuwste jquery versie.

Mijn vraag is dus, heeft iemand deze problemen ook gehad en wat kan de oorzaak zijn? Is er een interactie met de menubalk?

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
 <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="favicon.ico">

    <title>{{@WEBSITE_TITLE}} - Dashboard</title>

    <!-- Bootstrap core CSS -->
    <link href="/css/bootstrap.css" rel="stylesheet">
    
    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>

  <body>
    <div class="modal fade" id="photoPopup" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            <h4 class="modal-title" id="myModalLabel">Modal title</h4>
          </div>
          <div class="modal-body">
            ...
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            <button type="button" class="btn btn-primary">Save changes</button>
          </div>
        </div>
      </div>
    </div>
    
    <div class="container">

      <nav class="navbar navbar-default" role="navigation">
      <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#"><img src="/images/logo_white.png" height="20px" /></a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav">
            <li class="active"><a href="/">Dashboard</a></li>
            <li><a href="/info">Information</a></li>
            <li><a data-toggle="modal" data-target="#photoPopup">Test</a></li>
          </ul>
          
          <ul class="nav navbar-nav navbar-right">
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Menu <span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/account">My account</a></li>
                <li><a href="/progress">Progress</a></li>
                <li class="divider"></li>
                {{@ADMIN_PANEL_LINK}}
                <li><a href="/logout">Log off</a></li>
              </ul>
            </li>
          </ul>
        </div><!-- /.navbar-collapse -->
      </div><!-- /.container-fluid -->
    </nav>

    <div class="jumbotron">
        <h1>Welcome {{@PARTICIPANT_NAME}}!</h1>
        
        <div class="row">
            <div class="col-md-5">
                <p>Welcome on <i>e-learning</i> website!</p>
            </div>
        </div>
        <!--<p><a class="btn btn-info btn-lg" href="{{@URL_NEXT_MODULE}}" role="button">Start/continue available module &raquo;</a></p>-->
        <p><a class="btn btn-info btn-lg" href="/info" role="button">Read more about our project &raquo;</a></p>
    </div>


    <div class="row">
{{@MODULES}}
    </div>

    <footer class="footer">
      <div class="container">
        <p class="text-muted">&copy; 2015 {{@COMP_NAME}}</p>
      </div>
    </footer>

    
    
    
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="/js/bootstrap.min.js"></script>
    <script src="/js/docs.min.js"></script>
    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="/js/ie10-viewport-bug-workaround.js"></script>
  </body>
</html>

[ Voor 78% gewijzigd door Rogie25 op 09-04-2015 09:07 ]


Acties:
  • 0 Henk 'm!

  • eXtreaL
  • Registratie: Juli 2009
  • Laatst online: 14-10 17:28
Rogie25 schreef op donderdag 09 april 2015 @ 08:58:
Dankjulliewel voor jullie reactie. De backdrop optie heeft volgens mij alleen betrekking tot het wel of niet laten sluiten van de modal bij erop klikken.

In deze Fiddle werkt het naar behoren. Als ik dezelfde code echter op de pagina inbouw, gaat het mis en komt de modal achter de backdrop terecht. Ik heb alle andere componenten al eruit gehaald, behalve een standaard menubalk van Bootstrap. Ik laad de originele bootstrap.css in en de nieuwste jquery versie.

Mijn vraag is dus, heeft iemand deze problemen ook gehad en wat kan de oorzaak zijn? Is er een interactie met de menubalk?
Misschien eens je CSS inspecteren en kijken of er iets van een z-index op de backdrop of de modal staat?

[ Voor 14% gewijzigd door eXtreaL op 09-04-2015 09:11 ]


Acties:
  • 0 Henk 'm!

  • Rogie25
  • Registratie: Maart 2015
  • Laatst online: 19-04 20:38
Ik heb de standaard CSS class nu gebruikt. De Z-index van de modal lijkt voor die van de backdrop te liggen. modal-fullwidth is mijn eigen class, de rest is originele Bootstrap.

Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
.modal-open {
  overflow: hidden;
}
.modal {
  display: none;
  overflow: hidden;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  -webkit-overflow-scrolling: touch;
  outline: 0;
}
.modal.fade .modal-dialog {
  -webkit-transform: translate3d(0, -25%, 0);
  transform: translate3d(0, -25%, 0);
  -webkit-transition: -webkit-transform 0.3s ease-out;
  -moz-transition: -moz-transform 0.3s ease-out;
  -o-transition: -o-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}
.modal-dialog {
  position: relative;
  width: auto;
  margin: 10px;
}
.modal-content {
  position: relative;
  background-color: #ffffff;
  border: 1px solid #999999;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 6px;
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  background-clip: padding-box;
  outline: 0;
}
.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000000;
}
.modal-backdrop.fade {
  opacity: 0;
  filter: alpha(opacity=0);
}
.modal-backdrop.in {
  opacity: 0.5;
  filter: alpha(opacity=50);
}
.modal-header {
  padding: 15px;
  border-bottom: 1px solid #e5e5e5;
  min-height: 16.428571429px;
}
.modal-header .close {
  margin-top: -2px;
}
.modal-title {
  margin: 0;
  line-height: 1.428571429;
}
.modal-body {
  position: relative;
  padding: 15px;
}
.modal-footer {
  padding: 15px;
  text-align: right;
  border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
  margin-left: 5px;
  margin-bottom: 0;
}
.modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
  margin-left: 0;
}
.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}
@media (min-width: 768px) {
  .modal-dialog {
    width: 600px;
    margin: 30px auto;
  }
  .modal-content {
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  }
  .modal-sm {
    width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg {
    width: 900px;
  }
  .modal-fullwidth {
    width: 95%;
  }
}

Acties:
  • 0 Henk 'm!

  • eXtreaL
  • Registratie: Juli 2009
  • Laatst online: 14-10 17:28
En check eens hoe je DOM eruit ziet na het openen van de modal (met developer tools, F12), staan de elementen in de juiste volgorde? Hier kun je overigens ook checken wat voor eventuele styles Bootstrap met Javascript nog op de elementen gooit.

Acties:
  • 0 Henk 'm!

  • Rogie25
  • Registratie: Maart 2015
  • Laatst online: 19-04 20:38
Ik zie dat het backdrop element boven het modal element komt te staan. Als ik de z-index verander naar 0 in de backdrop zit hij nog steeds voor de modal. Als ik de z-index helemaal uitzet, dan komt die achter de modal. Hoe kan het dat dit wel werkt in de standaard Bootstrap, maar dat het op mijn pagina fout gaat?

Misschien gaat het consequenties hebben op bepaalde pagina's, maar voor nu lijkt het uitschakelen van de z-index in de backdrop de oplossing.

Acties:
  • 0 Henk 'm!

  • eXtreaL
  • Registratie: Juli 2009
  • Laatst online: 14-10 17:28
Als ik je HTML door de W3 validator ( http://validator.w3.org/check ) haal krijg ik te zien dat je .container div niet afgesloten is. Misschien heeft dat er nog mee te maken.

In feite zou Bootstrap de backdrop ten alle tijden in de body moeten appenden, zodat deze als laatste element in je DOM staat. Het is dus om te beginnen al apart dat dit niet gebeurd..

Acties:
  • 0 Henk 'm!

  • Rogie25
  • Registratie: Maart 2015
  • Laatst online: 19-04 20:38
Het afsluiten van de div maakt geen verschil.

Kan dit toch een versie probleem zijn van bootstrap.js misschien?

Acties:
  • 0 Henk 'm!

  • C0rnelis
  • Registratie: Juni 2010
  • Laatst online: 26-08 22:21
Dus als ik je goed begrijp:
je modal verschijnt, maar de backdrop is een laag vóór het modal ? Dus interactie met het modal = interactie met de backdrop ergo je modal verdwijnt ?

Ik denk dat je dan toch moet kijken naar je eigen javascript/css. Wanneer ik de HTML kopieer naar een los bestandje en de bootstrap css/js vervang door de cdn versie (3.2.0 uit mijn vorige jsfiddle) dan werkt het gewoon als het bootstrap voorbeeld wanneer ik op "test" klik. Werkt het bij jou als je al je niet-bootstrap styles en sheets achterwege laat ? Jouw HTML met inline referenties naar een cdn met de bootstrapbestanden: http://jsfiddle.net/6aex4pty/

Acties:
  • 0 Henk 'm!

  • Rogie25
  • Registratie: Maart 2015
  • Laatst online: 19-04 20:38
@C0rnelis: klopt, dat is precies het probleem. In Fiddler werkt het inderdaad. Als ik alleen originele files gebruik, werkt het nog steeds niet.

Acties:
  • 0 Henk 'm!

  • C0rnelis
  • Registratie: Juni 2010
  • Laatst online: 26-08 22:21
Werkt het lokaal zonder alle niet-bootstrap scripts en sheets ? Zo ja, dan moet je aan het debuggen van je eigen javascript / css om erachter te komen wat conflicteert.

Acties:
  • 0 Henk 'm!

  • Rogie25
  • Registratie: Maart 2015
  • Laatst online: 19-04 20:38
Dat is het hem juist, ik heb het geprobeerd met alleen de bootstrap.css, jquery.js en bootstrap.js. Ook dan werkt het niet.

Acties:
  • 0 Henk 'm!

  • C0rnelis
  • Registratie: Juni 2010
  • Laatst online: 26-08 22:21
Lokaal gedownloade versies van bootstrap.css, jquery.js en bootstrap.js of ook de bootstrap van het cdn ?

Acties:
  • 0 Henk 'm!

  • Rogie25
  • Registratie: Maart 2015
  • Laatst online: 19-04 20:38
Aha, probleem gelokaliseerd. Alleen bij het lokale gebruik van bootstrap.js gaat het mis, terwijl bij verwijzing naar de laatste online versie het goed gaat. Ik heb niet aan dit bestand geknutseld, dus ik verwachtte hier niks geks in.
Pagina: 1