【问题标题】:jQuery: Not recognizing values set during CSS animationjQuery:无法识别 CSS 动画期间设置的值
【发布时间】:2013-03-15 02:50:02
【问题描述】:

我有以下功能:

var height = $('.fade').outerHeight();

function fadeIt() {
    var fade = function() {
        var opcty = (height - window.scrollY) / height;

        if (opcty >= 0) {
            console.log(opcty);
            $('.fade').css('opacity', opcty);
        }
    };

    $(window).on('scroll', fade);
}

它应该将 div 的不透明度“映射”到滚动位置。实际上,它甚至可以工作!但不能与设置不透明度的 CSS 动画结合使用。我相信这是因为 jQuery 无法识别 CSS 动画中的值,但我不确定。我怎样才能使这项工作? 在下面的Fiddle中,我标出了需要去掉的两条CSS规则,才能看到功能是否有效。

【问题讨论】:

    标签: javascript jquery css css-animations


    【解决方案1】:

    嗯,我编辑了这个,它可以工作

    .fade {
    position: fixed;
    width: 100px;
    height: 100px;
    background-color: red;}
    
    var height = $('.fade').outerHeight();function fadeIt() {    var fade = function() {
        var opcty = (height - window.scrollY) / height;
    
        if (opcty >= 0) {
            console.log(opcty);
            $('.fade').css({opacity: (height - window.scrollY) / height});
        }
    };
    
    $(window).on('scroll', fade);}fadeIt();
    

    这样工作,buuutt,如果你将 .css 更改为 .animate 并添加 250 次,效果会更好,再见。

    【讨论】:

    • +1 这看起来与我开始制作的 Fiddle 相同,带有 100px 固定红色 div!
    • 但是这样CSS动画被完全删除了,这不是一个选项。
    • 好吧,然后添加一个 jquery 动画,这样你就会有一个跨浏览器动画,还有滚动动画。 . .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 2012-03-06
    • 2023-04-09
    • 1970-01-01
    • 2013-02-09
    相关资源
    最近更新 更多