Я хочу анимировать круг Knob, который он заполняет при наведении. Я новичок в Knob, поэтому я понятия не имею, где моя ошибка, или я даже имею правильное направление. Прямо сейчас он даже не показывает круг :(
В принципе, я просто хочу окружить значок, который заполняется при наведении. Может быть, я могу добиться этого проще?
Это его решение, а также небольшое исправление, которое я начну и остановимся на правильных значениях, так что вы можете переманить анимацию, не нарушая ее
HTML:
<input type="text" value="0" id="circle" />
Javascript:
$(function() {
$('.circle').knob({
min: '0',
max: '100',
readOnly: true,
displayInput: false
});
$('.circle').parent().hover( function() {console.log("hover");
$({ value: $('.circle').val() }).animate(
{ value: 100 },
{ duration: 300,
easing: 'swing',
progress: function() {
$('.circle').val(Math.round(this.value)).trigger('change');
}
});
}, function() {
$({ value: $('.circle').val() }).animate(
{ value: 0 },
{
duration: 300,
easing: 'swing',
progress: function() {
$('.circle').val(Math.round(this.value)).trigger('change');
}
});
});
});
Вот JSFiddle
вам нужно изменить обработчик hover на родительский элемент #circle или изменить displayInput на true
$(function() {
$('#circle').knob({
min: '0',
max: '100',
readOnly: true,
displayInput: false
});
//$('#circle').parent() is the new div that contains the input and the canvas
$('#circle').parent().hover( function() {
$({ value: 0 }).animate(
{ value: 100 },
{ duration: 1000,
easing: 'swing',
progress: function() {
$('#circle').val(Math.round(this.value)).trigger('change');
}
});
}, function() {
$({ value: 100 }).animate(
{ value: 0 },
{
duration: 1000,
easing: 'swing',
progress: function() {
$('#circle').val(Math.round(this.value)).trigger('change');
}
});
});
});//you need to close with ');'
вам нужно включить knob.js в скрипту, иначе вы получите ошибку "404 Not Found" и включите jquery, иначе вы получите эту ошибку "Uncaught ReferenceError: $ не определен"
http://jsfiddle.net/dWsuP/1/