【问题标题】:.animate jquery event handler in the middle of animation.animate 动画中间的 jquery 事件处理程序
【发布时间】:2011-11-26 14:46:57
【问题描述】:

我做这个

$("#developments ul").animate({
        marginLeft: -1*((ul_width+li_padding)*(how_many_more+1)+how_many_more*ul_padding)},30000,'linear'
    );

当 ul=-1*((ul_width+li_padding)*(how_many_more)+how_many_more*ul_padding) 的左边距时我想做点什么 我可以使用 .change() 处理程序吗?如果是,我该如何使用这个处理程序? 我试试这个

$("#developments ul").css("margin-left").change(function() {
        alert("handler");
    });

但它不起作用.. 这是合理的,因为 $("#developments ul").css("margin-left") 返回一个数字。 数字作为数字是静态的,永远不能改变! 有什么帮助吗?

【问题讨论】:

  • 我认为一个聪明的答案可以解决我的问题。我将在几分钟后将其发布到 stackoverflow

标签: jquery


【解决方案1】:

您可以绑定到 .animate 选项的 step 属性

$("#developments ul").animate({
    marginLeft: -1 * ((ul_width + li_padding) * (how_many_more + 1) + how_many_more * ul_padding)
}, {
    duration: 30000,
    easing: "linear",
    step: function(now, fx) {
        if (now === -1 * ((ul_width + li_padding) * (how_many_more) + how_many_more * ul_padding)) {
            alert("handler");
        }
    }
});

类似的东西应该可以工作。

【讨论】:

    【解决方案2】:

    这样的事情可能会对你有所帮助:

    document.getElementById("#developments ul").addEventListener('DOMAttrModified', function(e){ if (e.attrName === 'style') { 警报(e.newValue); } }, 错误的);

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-10
      • 1970-01-01
      • 2012-11-22
      • 2015-03-23
      • 1970-01-01
      • 1970-01-01
      • 2017-10-10
      • 1970-01-01
      相关资源
      最近更新 更多