首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有jquery - Square画布的多旋钮

带有jquery - Square画布的多旋钮
EN

Stack Overflow用户
提问于 2015-10-14 08:24:04
回答 1查看 553关注 0票数 1

当我使用多旋钮时,我对jQuery Knob有一个问题。

我有3个旋钮,看上去像这个演示的“不可读时钟”(,问题在演示中也是) :-

http://anthonyterrien.com/knob/

这是可行的,但画布是方形的。每个旋钮的可点击区域是一个正方形。你可以试着点击一个旋钮的左上角,右上角,左下角和右下角:这会改变小旋钮。

为了修复,我在画布中添加了角半径:-

代码语言:javascript
复制
canvas {
border-radius: 1000px;
}

现在,画布是圆的。它适用于Firefox,但不适用于Chrome或Safari。

您可以尝试移动Firefox和Chrome上的红色旋钮(最后更新):

http://jsfiddle.net/5ypYj/452/

你有其他的想法,使画布圈或其他任何东西,以建立一个适当的可点击区域?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-16 14:52:39

我用this post解决了这个问题。

这不是同一个问题,但答案也解决了我的问题。我必须更改索引值。

代码语言:javascript
复制
$('.dial').parent('div').children('canvas').mousemove(function(event) {
        $.each($('.dial').parent('div').children('canvas'), function(key, value) {
            var canvas = value;
            var context = canvas.getContext('2d');      
            var position = getElementPosition(canvas);
            var x = event.pageX - position.x;
            var y = event.pageY - position.y;
            var color = context.getImageData(x, y, 1, 1).data;
            if(color[0] == 0 && color[1] == 0 && color[2] == 0) {
                $(canvas).parent('div').parent('div').css('z-index', '1');      
            }else {
                $(canvas).parent('div').parent('div').css('z-index', '2');
                testi();
            }
        });
    });

function getElementPosition(element) {
    var currentLeft = 0;
    var currentTop = 0;
    if(element.offsetParent) {
        do {
            currentLeft += element.offsetLeft;
            currentTop += element.offsetTop;
        }while(element = element.offsetParent);

        return { x: currentLeft, y: currentTop };
    }
    return undefined;
}

小提琴更新为一个适当的可点击区域多旋钮:http://jsfiddle.net/5ypYj/455/

(谢谢Kesavan ;)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33120210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档