3

我正在使用 jQuery 来获取 CSS 转换属性:

this.$slider.css('transform')

以下返回:

translate(100px, 0px)

如何使用 javascript 或 jQuery 将数字 100 作为变量获取?

4

6 回答 6

5

使用 javascript 字符串函数:

str = this.$slider.css('transform');
a = str.substring(str.indexOf('(')+1,str.indexOf('px'));
alert(a); //100
于 2012-10-02T19:33:21.560 回答
3

你可以使用正则表达式:

'translate(100px, 0px)'.match(/[^\(]+\(([0-9]+)/)[1]

于 2012-10-02T19:32:16.943 回答
1
var transform = this.$slider.css('transform'),
    first = transform.split('(')[1].split('px')[0];
于 2012-10-02T19:32:29.270 回答
1

一个小的正则表达式就足以拉出第一个数字,但请注意这并不挑剔,因为它们是像素单位或可能在 CSS 中返回的任何其他东西

this.$slider.css('transform').match(/\d+/)
于 2012-10-02T19:36:24.070 回答
0
s = "translate(100px,0px)"
parseInt(s.substring(s.indexOf("(")+1), 10) // returns 100
于 2012-10-02T19:35:27.953 回答
0

只需从索引 10 开始切片,然后通过parseInt.

var str = this.$slider.css('transform');

var n = parseInt( str.slice(10), 10 );

或者如果除了变换还有其他类型的结果,你可以这样做:

var n = parseInt( str.split("(")[1], 10);
于 2012-10-02T19:36:41.370 回答