我有一个酒吧,我正在尝试动画,我在这里遗漏了一些东西。这是我的HTML
<div class="bar"><span style="width: 74%;"></span></div>
这里是jquery:
$(document).ready(function(){
$('.bar span').each(function(){
var $percent = $(this).find('span').css('width') * 0.8;
$(this).find('.bar span').animate(
{width:$percent+"%"},
{duration: 5000});
})
});
我知道我很接近......但似乎无法找到动画的范围。
谢谢大家的帮助。我终于让它在标题标签中寻找一个数字,因为我无法弄清楚宽度的值。这是我结束的jquery。
$(document).ready(function(){
$('.bar span').each(function(){
var $percent = $(this).attr('title') * 0.8;
$(this).animate(
{width:$percent+"%"},
{duration: 1000});
})
});
答案 0 :(得分:0)
您不必使用.find(),您只需使用$(this),因为您已经选择了
的范围 $('.bar span').each()
所以它应该......
$(document).ready(function(){
$('.bar span').each(function(){
var $percent = $(this).css('width') * 0.8;
$(this).animate(
{width:$percent+"%"},
{duration: 5000});
})
});
答案 1 :(得分:0)
css(width)
应返回N px
之类的内容,因此您必须处理该值以获取值,或者您可以使用height()
:
var $percent = $(this).width() * 0.8;
此外效果有点奇怪:见here。
答案 2 :(得分:0)
.find()
方法。.css('width')
将返回固定字符串。不是'74'你期待的。我建议使用data-
属性。HTML
<div class="bar">
<span data-width="74">
</span>
</div>
的jQuery
$(document).ready(function () {
$('.bar span').each(function () {
var $percent = $(this).data('width') * 0.8;
$(this).animate({
width: $percent + "%"
}, 5000 );
});
});
答案 3 :(得分:0)
我想扩大我的评论。我使用jQuery进度条来做类似于你想要的东西。以下是如何完成的。尽管如此,消除对进度条的需求是相当简单的。
Html
<div id="autorefresh-section">
<div id="autorefresh-control">
<label for="autorefesh">Auto-Refresh</label>
<input type="checkbox" id="autorefresh" checked="checked" />
</div>
<div id="countdown"></div>
</div>
JavaScript代码
/**
* This function sets the time interval used to auto-refresh the page.
*/
function check_refresh(countdownValue, secondsRemaining) {
var autorefresh = $("#autorefresh");
if ($(autorefresh).attr("checked") == "checked") {
setTimeout(function() {
var value = Math.round(secondsRemaining / countdownValue * 100);
// consoleDebug("Seconds remaining: " + secondsRemaining);
secondsRemaining -= 10;
$("#countdown").progressbar("option", "value", value);
if (secondsRemaining < 0) {
reloadTab("all");
check_refresh(300, 300);
} else {
check_refresh(countdownValue, secondsRemaining);
}
}, 10000);
} else {
$("#countdown").progressbar({ disabled: true });
}
}