Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 添加css后如何运行jquery函数_Javascript_Jquery_Timeout_Styles - Fatal编程技术网

Javascript 添加css后如何运行jquery函数

Javascript 添加css后如何运行jquery函数,javascript,jquery,timeout,styles,Javascript,Jquery,Timeout,Styles,我有一句话: $('body>header:last a,body>header:last div,body>header:last h1').css("-webkit-transition", "opacity 0.5s ease-in"); 我希望javascript的其余部分在添加该样式后运行。 我目前使用计时器 setTimeout(function () { $('body>header:not(:last),body&

我有一句话:

$('body>header:last a,body>header:last div,body>header:last h1').css("-webkit-transition", "opacity 0.5s ease-in");
我希望javascript的其余部分在添加该样式后运行。 我目前使用计时器

setTimeout(function () {
                    $('body>header:not(:last),body>footer:not(:last),body>#content:not(:last)').remove();                   
                    $('body>header,body>footer,body>#content').removeAttr('style'); },1000);
但不知何故,css是在计时器执行时添加的,而不是在它之前。
知道为什么会这样吗?如果没有,有没有办法在添加css后强制超时函数运行,让第一个代码在它自己的函数中运行,并给它一个回调函数

function addStyle(callback)
{
    $('body>header:last a,body>header:last div,body>header:last h1').css("-webkit-transition", "opacity 0.5s ease-in");

    if (typeof callback !== 'undefined') callback();
}
那么就这样称呼它:

addStyle(function(){

    // Do other stuff here after css is added...

});

你能在加载页面外声明setTimeout,然后在文档内调用它吗?准备好了吗?

找到了答案!我不是一个jquery问题,而是一个css3技巧

为了制作动画,元素的不透明度必须设置为1。那是在那一秒的延迟之后发生的。 我没有解开2之间的链接,但现在我明白了。所以我所做的就是改变这个:

$('body>header:last a,body>header:last div,body>header:last h1').css({'-webkit-transition': 'opacity 0.5s ease-in','opacity':'1'});
我简单地将不透明度:1添加到css中,该css先前为0,以便开始转换


很抱歉让您头痛,谢谢:)

您的意思是希望JavaScript代码在CSS转换完成后执行?我认为这是不可能的。但是,由于您已经在使用jQuery,因此可以将其用于这些效果。它也可以在非webkit浏览器中工作。@Felix Kling在移动设备上不流畅,所以我需要使用css3:)js代码中的页面布局是什么?可以发布页面的框架吗?@cfarm54 javascript:HTML:在这种情况下,只需将语句一个接一个地放置就更容易了。不需要使用回调系统。@SnippetSpace:我只是说,这个答案中给出的代码具有相同的效果,可以将三个语句一个接一个地放在一起。这似乎对您不起作用…解决方案不起作用:(这是不可能的,因为定时事件需要在ajax调用之后发生。因此,如果存在连接错误,则不应发生任何事情。顺便说一句,我已修复了它,无需再考虑此问题,无论如何,谢谢:)