【问题标题】:jQuery - how to get dynamic width of element according to classjQuery - 如何根据类获取元素的动态宽度
【发布时间】:2012-12-07 12:11:27
【问题描述】:

我有这个包含两个 div 的基本动画。一个 div 的类为 single,另一个 div 的类为 double。每个都有 39px 的高度。

.single 元素的宽度为 100px,.double 元素的宽度为 200px,但是,我从 50px 的 .single div 和 100px 的 .double 开始,然后使用 jQuery ,我(希望)根据其类将每个 div 设置为宽度。有点难解释,我给大家看一下代码格式:

HTML:

<div id="block" class="red single"></div>
<div id="block" class="blue double"></div>

CSS:

#block {
    display: block;
    height: 16px; /* animate to: 39px */
    background-color: #eee;
}

#block.red {
    background-color: red;
}

#block.blue {
    background-color: blue;
}

#block.single {
    width: 50px; /* animate to: 100px */
}

#block.double {
    width: 100px; /* animate to: 200px */
}

jQuery:

    if($("#block").hasClass("double")) {
        respectiveWidth = "200px"
    }

    if($("#block").hasClass("single")) {
        respectiveWidth = "100px"
    }

    $("#block").delay(delayRate).animate({
        height: "145px",
        width: respectiveWidth
    }, 900);

只做如下:

$("#block").animate({
    height: "39px"
});

$("#block.single").animate({
    width: "100px"
});

$("#block.single").animate({
    width: "200px"
});

但这会在为#block.double 设置动画之前为#block.single 设置动画,我希望同时为它们设置动画。

非常感谢任何帮助,我已准备好完成这项工作。呵呵。

【问题讨论】:

  • 这意味着你不应该为多个元素使用一个ID。
  • 哦,我明白了。那我可以用if($("div").hasClass("...")) {...}吗?
  • 是的,您还可以将 block 之类的类添加到 DIV 元素并使用类选择器选择它们。但这并不能解决问题。
  • 不,在动画 id="block2" 之前动画 id="block1

标签: javascript jquery html css jquery-animate


【解决方案1】:

ID 必须是唯一的,您可以使用类代替,尝试以下方法。

<div class="block red single"></div>
<div class="block blue double"></div>

$(".block").animate({
    height: "39px"
});

$(".block.single").animate({
    width: "100px"
}, 700);

$(".block.double").animate({
    width: "200px"
}, 700);

http://jsfiddle.net/eCUf8/

【讨论】:

  • 好的,这比我之前的体验要好,但请注意它是如何在两个元素的宽度之前对高度进行动画处理的?我希望这一切都在同一时间动画。我想知道是否有专门的方法,比如在宽度对象 inside 中有条件语句,而不是使用基本的 jQuery 语法,因为它并没有 真正 实现我想要的完成。
  • 或条件语句动态添加相应的宽度变量。
  • 哈哈!是的!天哪,就这么简单。我想这就是我在某件事上工作时间过长时会发生的情况。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-15
  • 2010-11-20
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 2012-07-27
相关资源
最近更新 更多