javascript - Safari 移动版忽略 if else 语句的第一块
问题描述
由于某种原因,我的动画在 iphone 上不起作用。我试图通过定位 Safari 和任何宽度小于 500 像素的东西来使其工作。当 if 语句的第一个块独立时它工作正常但是当它在 else 语句中时,它忽略第一个块并尝试执行第二个块,即使它满足第一个块的条件(我知道是因为控制台.log 表示“横幅已启动”,它是“桌面”代码或 500 像素以上的任何内容的一部分)
我不知道为什么会这样做。那是野生动物园特有的东西吗?我该如何解决?
const mobileScreen = window.screen.width
const is_safari = navigator.userAgent.toLowerCase().indexOf('safari/') > -1;
console.log('javascript is working')
if (is_safari && mobileScreen <= 500 || mobileScreen <= 500) {
function init() {
console.log("Mobile Banner Initiated")
TweenMax.set([viewport_mobile], { autoAlpha: 1 })
TweenMax.set([d_letter_mobile], { x: -200, autoAlpha: 0 })
TweenMax.set([o_letter_mobile], { x: 250, autoAlpha: 0})
TweenMax.set([u1_letter_mobile, u2_letter_mobile], { y: -570 , autoAlpha: 0})
frameOne();
}
init()
function moveDown() {
TweenMax.to([u2_letter_mobile], 1, { y: 8, force3D: true, rotation: 0.01, z: 0.1, delay: 0.5 })
}
function frameOne() {
TweenMax.to(d_letter_mobile, 1, { x: 0, force3D: true, rotation: 0.01, z: 0.1, autoAlpha: 1 })
TweenMax.to(o_letter_mobile, 1, { x: 0, force3D: true, rotation: 0.01, z: 0.1, delay: 1.2, autoAlpha: 1 })
TweenMax.to([u1_letter_mobile, u2_letter_mobile], 1, { y: 0, force3D: true, rotation: 0.01, z: 0.1, delay: 1.2, autoAlpha: 1, onComplete: moveDown })
TweenMax.delayedCall(2.5, frameTwo);
}
function frameTwo() {
TweenMax.to([headphones_mobile], 0.1, { autoAlpha: 1, delay: 1.5 })
TweenMax.to([u1_letter_mobile], 0.1, { autoAlpha: 0, delay: 1.499 })
TweenMax.to([bike_mobile], 0.1, { autoAlpha: 1, delay: 2 })
TweenMax.to([u2_letter_mobile], 0.1, { autoAlpha: 0, delay: 1.999 })
TweenMax.delayedCall(2.5, frameThree);
}
function frameThree() {
TweenMax.set(headphones_mobile, { autoAlpha: 0, delay: 0.5 })
TweenMax.to([u1_letter_mobile], 0.1, { autoAlpha: 1, delay: 0.501 })
TweenMax.to(bike_mobile, 0.1, { autoAlpha: 0, delay: 1.0})
TweenMax.to(u2_letter_mobile, 0.1, { autoAlpha: 1, delay: 1.001})
TweenMax.to(sunglasses_mobile, 0.1, { autoAlpha: 1, delay: 2 })
TweenMax.to([u1_letter_mobile], 0.1, { autoAlpha: 0, delay: 2.001 })
TweenMax.to(icecream_mobile, 0.1, { autoAlpha: 1, delay: 2.5 })
TweenMax.to(u2_letter_mobile, 0.1, { autoAlpha: 0, delay: 2.501})
TweenMax.to(otext_mobile, 0.1, { autoAlpha: 1, delay: 3.0 })
TweenMax.to(o_letter_mobile, 0.1, { autoAlpha: 0, delay: 3.001 })
}
} else {
function init() {
console.log("Banner Initiated")
TweenMax.set([viewport], { autoAlpha: 1 })
TweenMax.set([d_letter], { x: -400, autoAlpha: 0 })
TweenMax.set([o_letter], { x: 450, autoAlpha: 0 })
TweenMax.set([u1_letter, u2_letter], { y: 570 })
frameOne();
}
init()
function moveDown() {
TweenMax.to([u2_letter], 1, { y: 26, force3D: true, rotation: 0.01, z: 0.1 })
}
function frameOne() {
TweenMax.to(d_letter, 1, { x: 0, force3D: true, rotation: 0.01, z: 0.1, autoAlpha: 1 })
TweenMax.to(o_letter, 1, { x: 0, force3D: true, rotation: 0.01, z: 0.1, delay: 0.9, autoAlpha: 1 })
TweenMax.to([u1_letter, u2_letter], 1, { y: 0, force3D: true, rotation: 0.01, z: 0.1, delay: 1.2, autoAlpha: 1, onComplete: moveDown })
TweenMax.delayedCall(2.5, frameTwo);
}
function frameTwo() {
TweenMax.to([headphones], 0.1, { autoAlpha: 1, delay: 1.5 })
TweenMax.to([u1_letter], 0.1, { autoAlpha: 0, delay: 1.499 })
TweenMax.to([bike], 0.1, { autoAlpha: 1, delay: 2 })
TweenMax.to([u2_letter], 0.1, { autoAlpha: 0, delay: 1.999 })
TweenMax.delayedCall(2.5, frameThree);
}
function frameThree() {
TweenMax.set(headphones, { autoAlpha: 0, delay: 0.5 })
TweenMax.to([u1_letter], 0.1, { autoAlpha: 1, delay: 0.501 })
TweenMax.to(bike, 0.1, { autoAlpha: 0, delay: 1.0})
TweenMax.to(u2_letter, 0.1, { autoAlpha: 1, delay: 1.001})
TweenMax.to(sunglasses, 0.1, { autoAlpha: 1, delay: 2 })
TweenMax.to([u1_letter], 0.1, { autoAlpha: 0, delay: 2.001 })
TweenMax.to(icecream, 0.1, { autoAlpha: 1, delay: 2.5 })
TweenMax.to(u2_letter, 0.1, { autoAlpha: 0, delay: 2.501})
TweenMax.to(otext, 0.1, { autoAlpha: 1, delay: 3.0 })
TweenMax.to(o_letter, 0.1, { autoAlpha: 0, delay: 3.001 })
}
}
解决方案
推荐阅读
- javascript - 映射对象内的映射对象
- dart - 当键盘显示然后消失时,Flutter 会重新启动 TextField 的状态
- excel - VBA 字符串搜索包含一个数字
- python - 聚合来自一个 DataFrame 的信息并将其加入另一个 DataFrame
- bash - 如何捕获 /bin/bash:错误的解释器错误
- python - 熊猫数据框 loc 中的条件检查
- java - 在完全托管的 CloudRun 上使用 micronaut
- python - 将包含转义字符的字符串转换为字典
- r - 使用 R 中的 highcharter 为 highcharts 中的误差线图设置双轴标签
- javascript - 为热图中的每一行分配不同的颜色