如何从jQuery中的动画div获取宽度

时间:2014-09-12 06:44:54

标签: javascript jquery

在此先感谢您的支持。我这里有一个简单的代码,但我想知道它为什么不起作用。

以下代码被放入变量"%"

var percent = $('#div').animate({width:80 + '%'},1000);

我希望使用该变量成为特定div的文本或内容。我尝试这样做,但它不起作用。

$('#val').text(percent); or $('#val').html(percent);

我尝试使用JavaScript中的parseInt()函数,但它也不起作用。

$('#web-design').text(parseInt(percent));

您有任何建议或可能吗?

5 个答案:

答案 0 :(得分:1)

我不确定行代码是否正确

var percent = $('#div').animate({width:80 + '%'},1000);

要找到#div的with属性,我会做类似的事情

$('#val').text($("#div").css("width"))

$('#val').text($("#div").width())

答案 1 :(得分:1)

animate函数不会返回对元素的更改。要获得宽度,您必须使用.width(),但是您将获得像素而不是百分比。

var width = $('#div').width();

答案 2 :(得分:1)

您可以尝试以下代码:

 $('#div1').animate({width:80 + '%'},{
 duration:1000,
 easing:'swing',
 step: function() { // called on every step
        $('#div1').text(Math.ceil($('#div1').width()/$('#div1').parent().width()*100) + "%");
    }
 });

这将在每个更新步骤中将Div宽度%打印为Div中的文本。

答案 3 :(得分:0)

如果您的意思是想获得div的当前宽度,可以使用clientWidth属性:

$('#div')[0].clientWidth

答案 4 :(得分:0)

您的代码将在1秒(1000毫秒)内以80%宽度设置动画。您可以在每次迭代时将百分比宽度增加1%并同时更新#val,直到达到80.以下是基于10000毫秒(10秒)的示例,您可以更改起始参数,例如{{ 1}}适合。 演示:http://jsfiddle.net/zthaucda/

HTML:

duration, endWidth, startWidth

CSS:

<div class="my-anim-div"></div>
<button class="start-animating">Start animation</button>
<div id="val">Width will display here</div>

Javascript包括jQuery库:

.my-anim-div {
    width:0%;
    height:200px;
    background-color:red;
}