使用jQuery获取CSS转换属性

时间:2014-02-24 12:20:09

标签: javascript jquery

我正在尝试在变量中获取-webkit-transform: translateY('')属性。

HTML

<form class="form-con" style="-webkit-transform: translateY(-802px);"></form>

JS

$('.foo').click(function() {
    var current_pull = parseInt($('.form-con').css('transform').split(',')[4]);
});

这将返回'0',而不是正确的值。

4 个答案:

答案 0 :(得分:34)

您可以使用:

 var obj = $('.form-con');
 var transformMatrix = obj.css("-webkit-transform") ||
   obj.css("-moz-transform")    ||
   obj.css("-ms-transform")     ||
   obj.css("-o-transform")      ||
   obj.css("transform");
 var matrix = transformMatrix.replace(/[^0-9\-.,]/g, '').split(',');
 var x = matrix[12] || matrix[4];//translate x
 var y = matrix[13] || matrix[5];//translate y

答案 1 :(得分:23)

$('.foo').click(function() {
    var current_pull = parseInt($('.form-con').css('transform').split(',')[5]);
});

答案 2 :(得分:4)

我认为答案is here

function getRotationDegrees(obj) {
    var matrix = obj.css("-webkit-transform") ||
    obj.css("-moz-transform")    ||
    obj.css("-ms-transform")     ||
    obj.css("-o-transform")      ||
    obj.css("transform");
    if(matrix !== 'none') {
        var values = matrix.split('(')[1].split(')')[0].split(',');
        var a = values[0];
        var b = values[1];
        var angle = Math.round(Math.atan2(b, a) * (180/Math.PI));
    } else { var angle = 0; }
    //return (angle < 0) ? angle + 360 : angle;
    return angle;
}

答案 3 :(得分:0)

我认为属性的顺序是不确定的。

String[] parsedData = new String[3];
int parsingBlock = -1;
while ((data=reader.readLine()) !=null) {
    if (parsingBlock >= 0) {
        switch (parsingBlock) {
            case 0: parsedData[0] = data; break;
            case 1: {
                String [] part2Data = data.split("#");
                parsedData[1] = part2Data[0];
                parsedData[2] = part2Data[1];
                break;
            }
            case 2: parsedData[0] = parsedData[0] + data; break;
            case 3: {
                String [] part4Data = data.split("#");
                parsedData[1] = parsedData[1] + part4Data[0];
                parsedData[2] = parsedData[2] + part4Data[1];
            }
            default: break;
        }
    }
    parsingBlock = -1;
    if (data.equals("part 1")) {
        parsingBlock = 0;
    } else if (data.equals("part 2")) {
        parsingBlock = 1;
    } else if (data.equals("part 3")) {
        parsingBlock = 2;
    } else if (data.equals("part 4")) {
        parsingBlock = 3;
    }
}