我使用jQuery來獲取CSS變換屬性檢索的第一個值:從括號的數字對
this.$slider.css('transform')
以下回報:
translate(100px, 0px)
我怎麼會得到公正的數100作爲使用JavaScript或jQuery的變量?
我使用jQuery來獲取CSS變換屬性檢索的第一個值:從括號的數字對
this.$slider.css('transform')
以下回報:
translate(100px, 0px)
我怎麼會得到公正的數100作爲使用JavaScript或jQuery的變量?
用JavaScript字符串函數:
str = this.$slider.css('transform');
a = str.substring(str.indexOf('(')+1,str.indexOf('px'));
alert(a); //100
你可以使用正則表達式:
'translate(100px, 0px)'.match(/[^\(]+\(([0-9]+)/)[1]
var transform = this.$slider.css('transform'),
first = transform.split('(')[1].split('px')[0];
s = "translate(100px,0px)"
parseInt(s.substring(s.indexOf("(")+1), 10) // returns 100
小的正則表達式就足以只是拉的第一個數字,但要注意這並不挑剔,他們是像素單位或其他任何可能會回來在CSS
this.$slider.css('transform').match(/\d+/)
這很好,除非不包括數字是否定的 –
從索引10開始,並通過parseInt
發送。
var str = this.$slider.css('transform');
var n = parseInt(str.slice(10), 10);
或者是否會有其他類型的結果比的變換,你可以這樣做:
+1得愛的正則表達式 –
VAR currentTrans = $這個slider.css( '變換') ; (currentTrans.match(/ [^ \()+ \(([0-9] +)/)[1]); 返回錯誤「type error ... is null」 –
可能是因爲沒有css轉換,你應該檢查是否匹配返回數組'm = currentTrans.match(/ [^(] +(([0-9] +)/); if(m){m [0 ];} else {/ * no transform * /}' – jcubic