jQuery Knob悬停动画

时间:2013-10-23 16:27:03

标签: javascript jquery jquery-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

1 个答案:

答案 0 :(得分:1)

您需要将悬停处理程序更改为#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,否则你会收到此错误'未捕获的ReferenceError:$未定义'
http://jsfiddle.net/dWsuP/1/