-
Notifications
You must be signed in to change notification settings - Fork 116
/
how-to-use-bootstrap-javascript.html
238 lines (217 loc) · 13.9 KB
/
how-to-use-bootstrap-javascript.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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>How to Use Bootstrap JavaScript Components</title>
<link meta="description" content="How to use Bootstrap guide that explains aspects of using Javascript and jQuery Bootstrap components">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" />
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet" />
<link href="//cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.1/animate.min.css" rel="stylesheet" />
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/ionicons/3.0.0/css/ionicons.css" />
<link rel="stylesheet" href="css/styles.css" />
<link rel="icon" href="favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<meta property="og:image" name="twitter:image" content="http://themes.guide/favicon-1024.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ThemesGuide">
<meta name="twitter:creator" content="@ThemesGuide">
<meta name="twitter:title" content="How to Use Bootstrap Components">
<meta name="twitter:description" content="How to use Bootstrap guide that explains aspects of using Javascript and jQuery Bootstrap components">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103606808-1', 'auto');
ga('send', 'pageview');
</script>
<script src="https://www.codeply.com/js/embed.js"></script>
</head>
<body id="page-top" data-spy="scroll" data-target=".fixed-top" data-offset="60">
<nav class="navbar navbar-custom navbar-dark fixed-top navbar-expand-md" role="navigation">
<div class="container">
<a class="navbar-text page-scroll font-weight-bold text-uppercase py-3" href="http://themes.guide">
<span>Themes.guide</span>
</a>
<button type="button" class="navbar-toggler" data-toggle="collapse" data-target=".navbar-collapse">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse">
<ul class="navbar-nav ml-md-auto">
<li class="nav-item"><a class="page-scroll active nav-link pr-3" href="./">Bootstrap 4</a></li>
<li class="nav-item"><a class="page-scroll nav-link pr-3" target="_ext" href="https://themestr.app" title="Bootstrap theme builder">Themestr.app</a></li>
<li class="nav-item"><a class="page-scroll nav-link pr-3" title="Bootstrap 4 themes collection" href="http://themes.guide/#freebies">Free Themes</a></li>
<li class="nav-item"><a class="page-scroll nav-link pr-0" href="http://themes.guide/#themes">Pro Themes</a></li>
</ul>
</div>
</div>
</nav>
<div class="container pt-5">
<div class="row mt-5">
<div class="col-md-12">
<h4>
<a href="how-to.html">
<img src="./assets/howto/bootstrap-punchout.svg" alt="How to Bootstrap 4" class="bg-primary border rounded border-primary mr-2 mb-1" style="width:30px;height:30px">
How to... Bootstrap</a>
</h4>
</div>
<div class="col-md-12 pt-5 text-center">
<h1 class="font-weight-light">How to Use Bootstrap JavaScript Components</h1>
</div>
</div>
</div>
<section id="howto">
<div class="container">
<div class="row mb-3">
<div class="col-sm-10 mx-auto">
<p class="lead">
The Bootstrap documentation, has a very large “<a targe="_new" href="https://getbootstrap.com/docs/4.1/components/">Components</a>” section that includes most of the stylized CSS
Components that I explained before. However, there’s overlap between the Bootstrap CSS and JavaScript Components. CSS is used to style Components, while <b>JavaScript is used
to make Components functional.</b></p>
<p class="lead">
Some Bootstrap Components only provide CSS-driven formatting and style so they don’t utilize JavaScript. These CSS-only Components were explored earlier in the
<a href="how-to-use-bootstrap-css.html">Bootstrap CSS</a> section: Badges, Breadcrumbs, Buttons, Cards, Form inputs, Jumbotron, Pagination.</p>
<p class="lead">
But, most Components have <b>JavaScript-driven behaviors</b>:</p>
<ul>
<li><a target="_new" href="http://getbootstrap.com/docs/4.1/components/modal/">Modals</a></li>
<li><a target="_new" href="http://getbootstrap.com/docs/4.1/components/alert/">Alerts (no configuration options)</a></li>
<li><a target="_new" href="http://getbootstrap.com/docs/4.1/components/carousel/">Carousel</a></li>
<li><a target="_new" href="http://getbootstrap.com/docs/4.1/components/collapse/">Collapse</a></li>
<li><a target="_new" href="http://getbootstrap.com/docs/4.1/components/dropdown/">Dropdowns</a></li>
<li><a target="_new" href="http://getbootstrap.com/docs/4.1/components/navbar/">Navbar</a></li>
<li><a target="_new" href="http://getbootstrap.com/docs/4.1/components/popover/">Popovers</a></li>
<li><a target="_new" href="http://getbootstrap.com/docs/4.1/components/scrollspy/">Scrollspy</a></li>
<li><a target="_new" href="http://getbootstrap.com/docs/4.1/components/tooltip/">Tooltips</a></li>
</ul>
<p class="lead">
You might also know that Bootstrap requires jQuery. This is because all of the Bootstrap JavaScript Components are
implemented as jQuery Plugins. There are 2 ways to set options for (configure) any of the Bootstrap JavaScript Components.</p>
<h4>Data Attributes</h4>
<p class="lead">
The preferred method is using <a target="_new" href="https://getbootstrap.com/docs/4.1/getting-started/javascript/#data-attributes">Data Attributes</a>. This method doesn’t require you to add additional JavaScript/jQuery code since the data- attribute can be used directly in the HTML markup. For example,</p>
<pre class="bg-dark text-white rounded mb-5">
<div id="myModal" class="modal" data-backdrop="false">
<div class="modal-dialog">...</div>
</div></pre>
<h4>jQuery</h4>
<p class="lead">
The other way to use Bootstrap’s JavaScript Components is jQuery. Use the appropriate jQuery selector the element, and an Object containing the
appropriate Options for the Component. The Options for each Component are described in the Bootstrap docs.</p>
<pre class="bg-dark text-white rounded mb-5">
$("#myModal").modal({backdrop:false})</pre>
<p class="lead">
As you can see the Component Options align with the data-attributes. Most Components are automatically initialized by simply using the appropriate Bootstrap
data-toggle=”…” attribute and classes. Two exceptions are the Popover and Tooltip which must be manually initialized with jQuery. For example:</p>
<pre class="bg-dark text-white rounded mb-5">
$(function () {
$('[data-toggle="popover"]').popover()
$('[data-toggle="tooltip"]').tooltip()
})</pre>
<p class="lead">
JavaScript Component Usage is clearly described in the Documentation which is the best reference and constantly maintained.
Don’t rely on 3rd party tutorials and sites like W3Schools are they tend to get outdated quickly, and you’ll end-up wondering “Why is my Bootstrap not working?”.</p>
</div>
<div class="col-sm-10 mx-auto mt-5 py-4 border-top">
<div class="row">
<div class="col-sm mr-auto">
<a href="how-to-responsive-design-with-bootstrap.html">Prev: How to Responsive Design with Bootstrap</a>
</div>
<div class="col-sm-auto text-right">
<a href="how-to-customize-bootstrap.html">Next: How to Customize Bootstrap</a>
</div>
</div>
</div>
</div>
</div>
</section>
<div id="modalContact" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header d-block">
<h3 class="text-center">How can we help you?</h3>
</div>
<div class="modal-body">
<form id="contactForm" role="form" method="post">
<div class="form-group">
<label for="inputEmail" class="col-md-2 form-control-label">Email</label>
<div class="col-md-12">
<input type="email" class="form-control" id="inputEmail" name="contactEmail" required="">
</div>
</div>
<div class="form-group">
<label for="inputMessage" class="col-md-2 form-control-label">Message</label>
<div class="col-md-12">
<textarea class="form-control" id="inputMessage" rows="6" name="contactMessage"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-xl-12">
<button type="submit" id="contactBtn" class="btn btn-primary btn-lg mx-auto">Send it</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div id="modalThanks" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header d-block text-center">
<h3>Thank you!</h3>
<h6>We'll be in touch</h6>
</div>
</div>
</div>
</div>
<footer id="footer" class="bg-dark text-white">
<div class="container pt-3">
<div class="row">
<div class="col-6 col-md-6 col-lg-3 column">
<h6>Information</h6>
<ul class="list-unstyled">
<li><a href="http://themes.guide/#freebies">Free Themes</a>
</li>
<li><a href="http://themes.guide/#themes">Pro Themes</a>
</li>
<li><a href="http://themes.guide/#about">Benefits</a>
</li>
</ul>
</div>
<div class="col-6 col-lg-3 column text-lg-left text-right">
<h6>Tools</h6>
<ul class="list-unstyled">
<li><a href="https://themestr.app" title="Custom Bootstrap theme creator - SASS to CSS">Themestr.app</a>
</li>
<li><a href="http://bootstrap4.guide" title="Learn about Bootstrap 4">Bootstrap4.guide</a>
</li>
<li><a href="http://www.codeply.com" title="Prototype and edit code for Bootstrap and other responsive frameworks">Codeply</a>
</li>
</ul>
</div>
<div class="col-6 col-lg-3 column">
<h6></h6>
</div>
<div class="col-6 col-lg-3 column text-right">
<h6>Follow</h6>
<ul class="nav float-right">
<li><a class="nav-link px-1" href="//twitter.com/ThemesGuide" title="@ThemesGuide"><i class="fa fa-3x ion-logo-twitter"></i></a></li>
<li><a class="nav-link px-1" href="https://github.com/ThemesGuide/bootstrap-themes" title="Star on GitHub"><i class="fa fa-3x ion-ios-star-outline"></i></a></li>
<li><a class="nav-link pl-1 pr-0" href="https://github.com/ThemesGuide" title="Follow on GitHub"><i class="fa fa-3x ion-logo-github"></i></a></li>
</ul>
</div>
</div>
</div>
<div class="container pt-5">
<p class="small text-right">Made with ♥ by <a class="text-white" href="http://themes.guide">Themes.guide</a> ©2018</p>
</div>
</footer>
<!--scripts loaded here-->
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.13.0/umd/popper.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js"></script>
</body>
</html>