2 votes

obtenir le rayon calculé de la bordure dans l'opéra

J'essaie d'obtenir l'état calculé du rayon de la bordure d'un élément avec ce code :

function _elementCurrentStyle(element, styleName){
    if (element.currentStyle){
        var i = 0, temp = "", changeCase = false;
        for (i = 0; i < styleName.length; i++)
            if (styleName[i].toString() != '-'){
                temp += (changeCase ? styleName[i].toString().toUpperCase() : styleName[i].toString());
                changeCase = false;
            } else {
                changeCase = true;
            }
        styleName = temp;
        return element.currentStyle[styleName];
    } else {
        return getComputedStyle(element, null).getPropertyValue(styleName);
    }
}

    var borderRadiusCheck = ["-moz-border-radius-bottomright","border-radius","border-bottom-right-radius","-webkit-border-bottom-right-radius","-khtml-border-radius-bottomright","-khtml-border-bottom-right-radius"];
    var i = 0, temp = "";
    for (i = 0; i < borderRadiusCheck.length; i++){
        temp = _elementCurrentStyle(myElement, borderRadiusCheck[i]);
        if (temp)
            break;
    }

La variable "myElement" est un élément HTML dont le rayon de la bordure est fixé à "20px". (Soit en le définissant dynamiquement, soit avec CSS)

La variable "temp" contient la chaîne borderRadius ("20px"). Ce code fonctionne sous IE, FF et Chrome, mais sous Opera, j'obtiens une chaîne vide lorsque j'essaie d'obtenir "border-radius" ou "border-bottom-right-radius", et lorsque je l'appelle avec d'autres, il renvoie "undefined".

Peu importe que j'obtienne border-radius ou border-bottom-right-radius car toutes les bordures de cet élément HTML sont identiques.

Avez-vous une idée du nom de la propriété de style que je dois appeler pour obtenir le rayon ?

Merci pour votre aide.

0voto

karlcow Points 4291

Opera prend en charge rayon de la bordure . Lors de l'utilisation de Libellule de l'opéra Vous pouvez constater que

border-radius: 10px;

est transformée en

border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
border-top-left-radius: 10px;
border-top-right-radius: 10px;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X