bootstrap/docs
Patrick H. Lauke 6d64afe508 Replace dropdown backdrop hack with cleaner JS-only hack
* Replace backdrop with simple noop mouse listener

As discussed in https://github.com/twbs/bootstrap/pull/22422 the current
approach of injecting a backdrop (to work around iOS' broken event
delegation for the `click` event) has annoying consequences on
touch-enabled laptop/desktop devices.
Instead of a backdrop `<div>`, here we simply add extra empty/noop
mouse listeners to the immediate children of `<body>` (and remove
them when the dropdown is closed) in order to force iOS to properly
bubble a `click` resulting from a tap (essentially, method 2 from
https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html)
This is sufficient (except in rare cases where the user does manage to tap
on the body itself, rather than any child elements of body - which is not
very likely in an iOS phone/tablet scenario for most layouts) to get iOS to
get a grip and do the correct event bubbling/delegation, meaning the regular
"click" event will bubble back to the `<body>` when tapping outside of the dropdown,
and the dropdown will close properly (just like it already does, even without
this fix, in non-iOS touchscreen devices/browsers, like Chrome/Android and
Windows on a touch laptop).
This approach, though a bit hacky, has no impact on the DOM structure, and
has no unforeseen side effects on touch-enabled laptops/desktops. And crucially,
it works just fine in iOS.

* Remove dropdown backdrop styles

* Update doc for dropdowns and touch-enabled devices
2017-04-14 09:19:00 +01:00
..
_data move visibility docs and add .visible mention 2017-03-05 12:25:41 -08:00
_includes Fix JS components console error "Error: <Component> is transitioning" 2017-03-28 23:43:15 +02:00
_layouts Remove 'xs' from text utilities (#21217) 2016-11-26 20:33:46 -08:00
_plugins More config tweaks. 2017-03-21 21:37:33 +11:00
about Fixes #21195: Add more table of contents to pages with longer contents 2016-11-25 14:01:06 -08:00
assets grunt 2017-04-08 13:22:53 -07:00
components Replace dropdown backdrop hack with cleaner JS-only hack 2017-04-14 09:19:00 +01:00
content rewrite in markdown 2017-03-19 18:39:48 -07:00
dist grunt 2017-04-08 22:05:50 -07:00
examples Remove inappropriate role="listbox" from carousels 2017-04-11 11:12:30 +01:00
extend stub out icons page in docs 2017-02-04 21:14:41 -08:00
getting-started Fix JS components console error "Error: <Component> is transitioning" 2017-03-28 23:43:15 +02:00
layout fixes #22111 2017-03-26 13:23:49 -07:00
utilities Revert "Drop width from sizing utils given .col- classes can do the same thing (follow up to #22376)" 2017-04-08 15:15:14 -07:00
.htmlhintrc Update config files across the board. 2017-03-12 16:15:00 +11:00
.htmllintrc More config tweaks. 2017-03-21 21:37:33 +11:00
apple-touch-icon.png Losslessly compress apple-touch-icon.png. 2014-10-26 08:08:33 +02:00
browser-bugs.md Move .table-responsive from wrapper to .table 2016-12-31 16:39:42 -08:00
CNAME this sucks, but it's needed for now due to the grunt build control plugin 2015-08-20 15:08:43 -07:00
favicon.ico Fix favicon.ico after d763b0fe5b. 2014-06-09 11:13:24 +03:00
index.html update homepage to include depedencies, fixes #21250 2016-12-31 00:52:08 -08:00
LICENSE Rename docs/LICENSE-DOCS to docs/LICENSE 2014-01-14 13:47:18 +01:00
migration.md fixes #21608 2017-03-26 17:31:29 -07:00
robots.txt Remove layout: nil. 2014-08-01 19:45:11 +03:00
search.json Fix docs/search.json. 2015-12-05 11:30:27 +02:00