ハンバーガーメニューボタンがあるナビゲーションバーがあります。オープン/クローズのjavascriptアニメーションを追加する前に、ナビゲーションメニューがすべてのブラウザで機能しました。いくつかの古いブラウザでは、残念なことに、このスクリプトは、クリックされたときにメニューがまったく開かないようにします。しかし、それはほとんどの新しいブラウザで動作します。古いブラウザがナビゲーションバーを開くことができるようにスクリプトが正しく実行されない場合、スクリプトを停止させる必要があります。/Else Javascriptステートメントでトランジションアニメーションを無効にすると失敗する場合
"something"がfalseの場合、スクリプトの実行を停止する簡単な修正が書かれています。
if (something == false) {
<!--animation script goes here -->
stop
}
「何か」を別のものに変更すると、興味深い結果が得られました。私は
if (data == false) {
<!--animation script goes here -->
stop
}
に変更する場合、それは完全にも、完全に前にアニメーションを実行したブラウザでスクリプトを停止します。
私の質問は、スクリプトが正常に実行されなかった場合にスクリプトを停止させるために「何か」を置き換えることができますか?
必要に応じて、ここにアニメーションスクリプトがあります。 (私は必要なのは、アニメーションが失敗した場合は、このスクリプトを停止することです。それはあなたを怖がらせてはいけません。)
! function() {
"use strict";
function e() {
var e, t = document.createElement("div"),
n = {
transition: "transitionend",
OTransition: "otransitionend",
MozTransition: "transitionend",
WebkitTransition: "webkitTransitionEnd"
};
for (e in n)
if (n.hasOwnProperty(e) && void 0 !== t.style[e]) return n[e];
return !1
}
function t(e) {
var t = {};
e = e || window.event, t.evTarget = e.currentTarget || e.srcElement;
var n = t.evTarget.getAttribute("data-target");
return t.dataTarget = n ? document.querySelector(n) : !1, t
}
function n(e) {
var t = e.style.height;
e.style.height = "auto";
var n = getComputedStyle(e).height;
return e.style.height = t, e.offsetHeight, n
}
function a(e, t) {
if (document.createEvent) {
var n = document.createEvent("HTMLEvents");
n.initEvent(t, !0, !1), e.dispatchEvent(n)
} else e.fireEvent("on" + t)
}
function r(e, t) {
e.classList.remove("collapse"), e.classList.add("collapsing"), t.classList.remove("collapsed"), t.setAttribute("aria-expanded", !0), e.style.height = n(e), u ? e.addEventListener(u, function() {
s(e)
}, !1) : s(e)
}
function i(e, t) {
e.classList.remove("collapse"), e.classList.remove("in"), e.classList.add("collapsing"), t.classList.add("collapsed"), t.setAttribute("aria-expanded", !1), e.style.height = getComputedStyle(e).height, e.offsetHeight, e.style.height = "0px"
}
function s(e) {
e.classList.remove("collapsing"), e.classList.add("collapse"), e.setAttribute("aria-expanded", !1), "0px" !== e.style.height && (e.classList.add("in"), e.style.height = "auto")
}
function o(e) {
e.preventDefault();
var n = t(e),
a = n.dataTarget;
return a.classList.contains("in") ? i(a, n.evTarget) : r(a, n.evTarget), !1
}
function l(e) {
function n() {
try {
i.parentNode.removeChild(i), a(i, "closed.bs.alert")
} catch (e) {
window.console.error("Unable to remove alert")
}
}
e.preventDefault();
var r = t(e),
i = r.dataTarget;
if (!i) {
var s = r.evTarget.parentNode;
s.classList.contains("alert") ? i = s : s.parentNode.classList.contains("alert") && (i = s.parentNode)
}
return a(i, "close.bs.alert"), i.classList.remove("in"), u && i.classList.contains("fade") ? i.addEventListener(u, function() {
n()
}, !1) : n(), !1
}
function c(e) {
e = e || window.event;
var t = e.currentTarget || e.srcElement;
return t.parentElement.classList.toggle("open"), !1
}
function d(e) {
e = e || window.event;
var t = e.currentTarget || e.srcElement;
return t.parentElement.classList.remove("open"), e.relatedTarget && "dropdown" !== e.relatedTarget.getAttribute("data-toggle") && e.relatedTarget.click(), !1
}
for (var u = e(), g = document.querySelectorAll("[data-toggle=collapse]"), v = 0, f = g.length; f > v; v++) g[v].onclick = o;
for (var p = document.querySelectorAll("[data-dismiss=alert]"), h = 0, m = p.length; m > h; h++) p[h].onclick = l;
for (var L, T = document.querySelectorAll("[data-toggle=dropdown]"), y = 0, E = T.length; E > y; y++) L = T[y], L.setAttribute("tabindex", "0"), L.onclick = c, L.onblur = d}();
私は誰かがちょうど(遷移が== false)の場合」のような何かを言うことができるかもしれ考えていました{停止} "かそれを行う何か、それは完全である。
少しのヒント: 'transition == false'はtrueの場合は'!transition'と 'transition'と同じです。しかし、質問とは関係ありません。 –
[ここ](http://stackoverflow.com/questions/6506349/if-browser-css3)はあなたを助けるかもしれないものです。 –
@KevinKloetそれを共有していただきありがとうございます。私はこのjavascriptアニメーションがccs3と何か関係があることを知らなかった!その情報では、互換性のないブラウザでは実行されないように、アニメーションスクリプトの前後に何を追加する必要がありますか? –