扫码关注官方订阅号
如题。我如果利用$("p").css("transform")来获取会得到一个矩阵字符串,请问如何获得具体的translateY值
$("p").css("transform")
走同样的路,发现不同的人生
可以用正则表达式来解析这个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中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
可以用正则表达式来解析这个Y值:
或者,更“模糊”一点儿的匹配:
正则表达式:
HTML
JavaScript