【问题标题】:jQuery - animate not css value, but just global variable in JSjQuery - 动画不是css值,而是JS中的全局变量
【发布时间】:2012-04-28 15:44:51
【问题描述】:

有没有办法使用 jQuery.animate 来为 JS 中的全局变量设置动画? 我的意思是这样的:

var FlashPlayerVolume = 0.0;

$jQuery.Animate({FlashPlayerVolume: 1.0}, 200);

有可能吗?

【问题讨论】:

    标签: jquery flash jquery-animate


    【解决方案1】:

    听起来确实不是一个好主意,但要回答这个问题,是的,您可以使用内置的 $.fx.step 方法为任何东西制作动画。

    最简单的方法是在隐藏元素或其他东西上为任意值设置动画,然后执行以下操作:

    var FlashPlayerVolume = 0.0;
    
    $('div').css('font-size', 0.0).animate({ fontSize: 1.0 }, {
        duration: 3000,
        step: function(now, fx) { 
            FlashPlayerVolume = now;
            console.log(FlashPlayerVolume);
        }
    });
    

    FIDDLE

    【讨论】:

    • 是的,我做到了,但使用了不透明度参数。它工作得很好,但前提是浏览器选项卡/窗口可见。即使选项卡/窗口被隐藏,我也需要一些工作。 (例如,您最小化窗口,然后降低音乐音量。)
    • 不确定是否可以使用 javascript,如果可以,我不知道该怎么做。通常,当浏览器/选项卡最小化时,javascripts 计时器功能会停止,但一切皆有可能,所以肯定也有办法做到这一点。
    • 好吧,我要在这里做我自己的动画效果:$j.fx.step.volume = function(fx) { var dom_id = $j(fx.elem).attr("id") ; window.player.bubbles[dom_id].volume = fx.now; console.log(window.player.bubbles[dom_id].volume);如果从 0 开始到 1 则有效。像这里(初始音量为 0): $j("#bg_sound_mp3").animate( {volume: 1}, 1000 );但是从 1 到 0 不起作用。 (初始音量为 1): $j("#bg_sound_mp3").animate( {volume: 0}, 1000 ); jQuery 不知道初始值,总是从 0 开始,这就是为什么从 1 到 0 不起作用 jQuery 看到从 0 到 0 我该如何解决?
    • 你可以设置 fx.start 和 fx.end 的值,不记得具体是怎么做的了,但是在你自己扩展 fx.step 函数时可以设置你自己的值方法,就像我前段时间用一些 CSS3 动画自己做的那样。
    • 为了让代码不影响每个 div,选择器应该看起来像 $('<div/>') 而不是 $('div')
    猜你喜欢
    • 1970-01-01
    • 2014-08-30
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多