是否可以使用jQuery延迟样式属性?

时间:2016-02-24 00:07:12

标签: jquery

这是我的代码:

<img class="animated fadeIn" src="https://example.com/img/image.png" style="background-image: url('.$this->url.'/thumb.php?src='.$row['background'].'&t=b&w=800&h=300&q=100)" />

我需要在加载页面后加载样式属性。

是否可以使用jQuery?

4 个答案:

答案 0 :(得分:1)

搜索jQuery的ready()事件,并使用attr('style', 'your_inline_style')在事件中设置CSS。

答案 1 :(得分:1)

您可以尝试为您的元素使用ID:

<img id = "something" class="animated fadeIn" src="https://example.com/img/image.png" ...

然后在页面准备好之后对该ID执行jquery:

$(document).ready(function () {
    $("#something").css('background-image', 'whatever-you-are-linking-to');
});

答案 2 :(得分:1)

我会更改html以使用数据属性

<img class="animated fadeIn" src="https://example.com/img/image.png" data-style="background-image: url('.$this->url.'/thumb.php?src='.$row['background'].'&t=b&w=800&h=300&q=100)" />

然后根据需要将其应用于实际样式(使用load事件或超时

$(window).on('load', function(){
   $('[data-style]').attr('style', function(){ return $(this).data('style'); });
});

这样代码将适用于您想要的任意数量的元素

超时版本就像这样

$(window).on('load', function(){
   setTimeout(function(){
       $('[data-style]').attr('style', function(){ return $(this).data('style'); });
   }, 5000); // apply the style 5 seconds after the page is loaded.
});

答案 3 :(得分:0)

在页面加载时运行此选项。它将删除样式,然后在图像完全加载后替换它。

(function(){
    var img = $("img.animated.fadein")[0];
    var style = img.style;
    img.style = "";
    img.onload = function(){ this.style = style; };
})()