javascript - 如何通过jquery获得div元素的translateY值
怪我咯
怪我咯 2017-04-10 15:39:01
[JavaScript讨论组]

如题。我如果利用$("p").css("transform")来获取会得到一个矩阵字符串,请问如何获得具体的translateY值

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
大家讲道理

可以用正则表达式来解析这个Y值:

$('p').css('transform').match(/matrix\(\d+, \d+, \d+, \d+, \d+, (\d+)\)/)[1]

或者,更“模糊”一点儿的匹配:

$('p').css('transform').match(/matrix.*, (\d+)\)/)[1]
大家讲道理

正则表达式:

HTML

<p style="transform:rotate(45deg);"></p>
<p style="transform:rotate(45deg) translate(5px,2px);"></p>
<p style="transform:translate3d(5px,2px,9px);"></p>
<p style="transform:translateY(2px);"></p>
<p style="transform:matrix(0,0,0,0,0,2);"></p>

JavaScript

var getTranslateY = function(node){
    var regRule = /translate(Y|\dd)?\(\s*(\w+\s*,)?\s*([^,]+)(\s*,[^)]+)?\s*\)/;
    var regRule2 = /matrix\(.*,\s*(\w+)\s*\)/;
    var transform = node.style.transform;
    var reg;
    if(!transform){
        return null;
    }
    reg = regRule.exec(transform);
    if(null === reg){
        reg = regRule2.exec(transform);
        return reg ? reg[1] : null;
    }
    return reg[3];
}

var pNodes = document.getElementsByTagName('p');

for(var i = 0,l = pNodes.length;i < l;++i){
    console.log(getTranslateY(pNodes[i]));
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号