javascript - jQuery .fadeTo() -- 淡出后淡入

标签 javascript jquery html css

我在这个元素中的目标是让一个 div 在悬停时选择一个随机的背景颜色然后淡出。但是,我希望能够返回并再次将鼠标悬停在 div 上并重新开始该过程。到目前为止,我只设法获得随机颜色并让它淡出,但是当我将鼠标悬停再次悬停时,什么也没有发生。尝试删除不透明度和背景类无济于事。到目前为止,这是我的代码:

$(function() {


    var $foo = $('.foo');

    function getRandomColor() {

        $foo.removeClass('background-color');
        $foo.addClass('opacity', '1');
        var length = 6;
        var chars = '0123456789ABCDEF';
        var hex = '#';
        while(length--) hex += chars[(Math.random() * 16) | 0];
        return hex;
        }


    $foo.mouseenter(function(){

        $(this).css('background-color', getRandomColor());


        });

    $foo.mouseleave(function(){

        $(this).fadeTo( 1000, 0 );

        });


    });

HTML - 只是一堆要测试的 div

<div class="foo box">Hello world</div>
<div class="foo box">Hello world</div>
<div class="foo box">Hello world</div>
<div class="foo box">Hello world</div>
<div class="foo box">Hello world</div>
<div class="foo box">Hello world</div>

提前致谢!

最佳答案

我建议您链接 jQuery 方法,并使用 fadeOutfadeIn 来代替 0 不透明度,以及重置背景颜色的回调。就像这样。

$(this).fadeOut(1000, function() { 
    $(this).css("background-color","transparent")
}); 
$(this).fadeIn(1000);

fadeOut 具有淡化为 0 不透明度的效果,在本例中为 1 秒。 fadeIn 做相反的事情,回调重置颜色。如果您不想重置颜色,请改为执行此操作。

$(this).fadeOut(1000).fadeIn(1000);

这是一个 jsFiddle .请注意,我删除了不必要的类分配,因为您不能通过类影响样式属性,正如您尝试做的那样。

关于javascript - jQuery .fadeTo() -- 淡出后淡入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35687763/

相关文章:

javascript - 如何在 VueJS 中将组件渲染为数据属性

jquery - 在同一区域切换两个 div 的最佳方法是什么

javascript - 验证不会忽略字段

javascript - 默认情况下Grails 3.0 HTML表更改输入按钮

javascript - 无法从响应 JSON 中删除 html 标签

javascript - 从c#中的网页检索ajax/JavaScript返回结果

javascript - 我想显示隐藏的收缩标题而不是收缩已经可见的标题

javascript - JS的Chrome CPU Profile中 'self'和 'total'的区别

javascript - 如何防止用户使用 jquery 取消选中一组复选框输入中的所有检查

javascript - 如何隐藏和显示选择选项