Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/ratchet.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'js/segmented-controllers.js')
-rw-r--r--js/segmented-controllers.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/js/segmented-controllers.js b/js/segmented-controllers.js
new file mode 100644
index 0000000..359b5d6
--- /dev/null
+++ b/js/segmented-controllers.js
@@ -0,0 +1,47 @@
+/* ----------------------------------
+ * Segmented controls v2.0.0
+ * Licensed under The MIT License
+ * http://opensource.org/licenses/MIT
+ * ---------------------------------- */
+
+!function () {
+ var getTarget = function (target) {
+ var i, segmentedControls = document.querySelectorAll('.segmented-control .control-item');
+ for (; target && target !== document; target = target.parentNode) {
+ for (i = segmentedControls.length; i--;) { if (segmentedControls[i] === target) return target; }
+ }
+ };
+
+ window.addEventListener("touchend", function (e) {
+ var activeTab;
+ var activeBodies;
+ var targetBody;
+ var targetTab = getTarget(e.target);
+ var className = 'active';
+ var classSelector = '.' + className;
+
+ if (!targetTab) return;
+
+ activeTab = targetTab.parentNode.querySelector(classSelector);
+
+ if (activeTab) activeTab.classList.remove(className);
+
+ targetTab.classList.add(className);
+
+ if (!targetTab.hash) return;
+
+ targetBody = document.querySelector(targetTab.hash);
+
+ if (!targetBody) return;
+
+ activeBodies = targetBody.parentNode.querySelectorAll(classSelector);
+
+ for (var i = 0; i < activeBodies.length; i++) {
+ activeBodies[i].classList.remove(className);
+ }
+
+ targetBody.classList.add(className);
+ });
+
+ window.addEventListener('click', function (e) { if (getTarget(e.target)) e.preventDefault(); });
+}(); \ No newline at end of file