Javascript 如果背景=url()-IE上的问题
我试图实现这样一种情况:如果元素具有特定的Javascript 如果背景=url()-IE上的问题,javascript,if-statement,background,velocity.js,Javascript,If Statement,Background,Velocity.js,我试图实现这样一种情况:如果元素具有特定的background=url(“”),则会触发动画。我使用velocity.js作为动画插件,能够在除IE之外的所有浏览器上实现这一点,IE无法识别if语句中的背景url 下面的代码中有两个示例 第一个(橙色正方形)使用- 以确定是否运行动画。我对这个没意见 但是,第二个(粉红色三角形)使用- 以确定是否运行动画。IE是唯一不运行此功能的浏览器 有人知道我哪里出了问题吗 HTML JS IE中的url与webkit和/或Gecko不同,将逻辑建立在ur
background=url(“”
),则会触发动画。我使用velocity.js作为动画插件,能够在除IE之外的所有浏览器上实现这一点,IE无法识别if语句中的背景url
下面的代码中有两个示例
第一个(橙色正方形)使用-
以确定是否运行动画。我对这个没意见
但是,第二个(粉红色三角形)使用-
以确定是否运行动画。IE是唯一不运行此功能的浏览器
有人知道我哪里出了问题吗
HTML
JS
IE中的url与webkit和/或Gecko不同,将逻辑建立在url路径上是不安全的
if (triangle.style.background == "url(http://garyvoss.co.uk/images/triangle.svg) no-repeat" || triangle.style.background == 'url("http://garyvoss.co.uk/images/triangle.svg") no-repeat' )
{ runTriangle(); }
我设法找到了一个绕着这个问题的错综复杂的办法 使用.match,我可以识别url路径的一部分,并将其应用于if语句,以便如果该部分存在,则动画将运行 我在这里创建了第三个示例(绿色圆圈),展示了它是如何工作的
var str = circle.style.background;
var res = str.match(/circle/g);
document.getElementById("check").innerHTML = res;
if (document.getElementById("check").innerHTML === "circle")
{ runCircle(); }
你有没有检查一下IE上的
triangle.style.background
是什么样子的?这很可能就是问题所在。复合属性可能很棘手。我可能会分别查看backgroundImage
和backgroundRepeat
。因此,我可能会使用类。
<div id="box"></div>
<div id="triangle"></div>
#box {
width: 100px;
height: 100px;
position: absolute; }
#triangle {
width: 200px;
height: 100px;
top: 120px;
position: absolute;
z-index: 4; }
window.setInterval(function runAll() {
var box = document.getElementById('box');
box.style.background = "orange";
function run() {
Velocity(box, {left: 300}, {easing: "easeInOutQuad", duration: 1000, delay: 0});
Velocity(box, {left: 10}, {easing: "easeInOutQuad", duration: 1000, delay: 0});
}
if (box.style.background == "orange")
{ run(); }
var triangle = document.getElementById('triangle');
triangle.style.background = "url(http://garyvoss.co.uk/images/triangle.svg) no-repeat";
function runTriangle() {
Velocity(triangle, {left: 300}, {easing: "easeInOutQuad", duration: 1000, delay: 200});
Velocity(triangle, {left: 10}, {easing: "easeInOutQuad", duration: 1000, delay: 0});
}
if (triangle.style.background == "url(http://garyvoss.co.uk/images/triangle.svg) no-repeat")
{ runTriangle(); }
}, 1000);
runAll();
if (triangle.style.background == "url(http://garyvoss.co.uk/images/triangle.svg) no-repeat" || triangle.style.background == 'url("http://garyvoss.co.uk/images/triangle.svg") no-repeat' )
{ runTriangle(); }
var str = circle.style.background;
var res = str.match(/circle/g);
document.getElementById("check").innerHTML = res;
if (document.getElementById("check").innerHTML === "circle")
{ runCircle(); }