Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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中使用CSS3制作FadeIn动画_Javascript_Jquery_Css_Css Transitions - Fatal编程技术网

在Javascript中使用CSS3制作FadeIn动画

在Javascript中使用CSS3制作FadeIn动画,javascript,jquery,css,css-transitions,Javascript,Jquery,Css,Css Transitions,由于jQuery.fadeIn在移动设备上不是很流畅,所以我尝试使用CSS,但它并没有像预期的那样工作。如何使用Javascript创建平滑的CSS动画 总的来说,这就是我正在尝试的: $('div') .css('opacity', 0) // at first, set it transparent .css('display', 'block') // make it appear .css('transition', 'opacity 1000ms linear'

由于jQuery.fadeIn在移动设备上不是很流畅,所以我尝试使用CSS,但它并没有像预期的那样工作。如何使用Javascript创建平滑的CSS动画

总的来说,这就是我正在尝试的:

$('div')
    .css('opacity', 0) // at first, set it transparent
    .css('display', 'block') // make it appear
    .css('transition', 'opacity 1000ms linear') // set a transition
    .css('opacity', 1); // let it fade in

编辑1:
我不是在使用静态CSS类搜索解决方案。关键是:我需要在Javascript代码中动态地设置它——例如,它是jQuerys fadeIn()的替代品。

您的逻辑不太正确。首先,您无法设置
显示的动画,因此为了实现所需的效果,必须始终在DOM中渲染元素(即,除
显示外的任何内容:无
)。其次,
transition
属性应该放在CSS样式本身中。最后,通过设置CSS类中的所有规则并打开/关闭该类,您可以使这一点变得更加简单。试试这个:

div {
    position: absolute;
    width: 100px;
    height: 100px;
    background-color: black;
    opacity: 0;
    transition: opacity 1000ms linear;
}
.foo {
    opacity: 1;
}

你的逻辑不太正确。首先,您无法设置
显示的动画,因此为了实现所需的效果,必须始终在DOM中渲染元素(即,除
显示外的任何内容:无
)。其次,
transition
属性应该放在CSS样式本身中。最后,通过设置CSS类中的所有规则并打开/关闭该类,您可以使这一点变得更加简单。试试这个:

div {
    position: absolute;
    width: 100px;
    height: 100px;
    background-color: black;
    opacity: 0;
    transition: opacity 1000ms linear;
}
.foo {
    opacity: 1;
}
使用此代码

CSS

JavaScript

$('div').hover(function(){
    $(this).css('opacity','0');
}) 
使用此代码

CSS

JavaScript

$('div').hover(function(){
    $(this).css('opacity','0');
}) 

如果不正确使用CSS,您将在这方面走很长的路。您需要模拟通常在CSS中使用JavaScript所做的工作,因此您需要设置所有CSS属性、转换等,然后使用js应用它们


我个人认为这样做没有任何好处。使用实际的CSS将更干净、更高效、更易于维护,而且是一个简单的更好的解决方案,可以满足您的需要。

如果不正确使用CSS,您将在这方面走很长的路。您需要模拟通常在CSS中使用JavaScript所做的工作,因此您需要设置所有CSS属性、转换等,然后使用js应用它们


我个人认为这样做没有任何好处。使用实际的CSS将更干净、更高效、更易于维护,并且是一个更好的解决方案,可以满足您的需求。

我认为这就是您所需要的

$('div').css({"display":"block", "opacity":"0"})  //Make div visible and opacity as "0"
$('div').animate({opacity :1}, 1000);             //Animate div to opacity "1"

看看这个

我想这就是你要找的

$('div').css({"display":"block", "opacity":"0"})  //Make div visible and opacity as "0"
$('div').animate({opacity :1}, 1000);             //Animate div to opacity "1"
看看这个

在这里找到了原因:

为了引起注意,我需要给浏览器一些时间——或者更好:一个工作槽来激活转换,因为时间似乎不是问题

下面的代码使用setTimeout()将进程一分为二。。。而且它有效

var div = $('div');

// first process
div
  .css('opacity', 0) // initial opacity
  .css('display', 'block') // make it appear (but still transparent)
  .css('transition', 'opacity 1s linear'); // set up a transition for opacity

// break - start the transition in a new "thread" by using setTimeout()
window.setTimeout(function(){
    div.css('opacity', 1); // start fade in
}, 1); // on my desktop browser only 1ms is enough but this 
       // may depend on the device performance
       // maybe we need a bigger timeout on mobile devices
在这里找到原因:

为了引起注意,我需要给浏览器一些时间——或者更好:一个工作槽来激活转换,因为时间似乎不是问题

下面的代码使用setTimeout()将进程一分为二。。。而且它有效

var div = $('div');

// first process
div
  .css('opacity', 0) // initial opacity
  .css('display', 'block') // make it appear (but still transparent)
  .css('transition', 'opacity 1s linear'); // set up a transition for opacity

// break - start the transition in a new "thread" by using setTimeout()
window.setTimeout(function(){
    div.css('opacity', 1); // start fade in
}, 1); // on my desktop browser only 1ms is enough but this 
       // may depend on the device performance
       // maybe we need a bigger timeout on mobile devices

opacity:1
分离到一个单独的类中,并添加/删除classI。我更喜欢在静态CSS类中没有可变值的Javascript解决方案。是否有?将
opacity:1
分离到一个单独的类中,并添加/删除classI。我更喜欢在静态CSS类中没有可变值的Javascript解决方案。有吗?我更喜欢在静态CSS类中没有可变值的Javascript解决方案。有吗?是的,但是这样做不是很好的做法,如果只是为了保持良好的关注点分离的话。我更喜欢在静态CSS类中没有可变值的Javascript解决方案。有吗?是的,但是这样做不是很好的做法,如果只是为了保持良好的关注点分离的话。这正是我试图避免的,因为性能不好。这正是我试图避免的,因为性能不好。