ベンダーのプレフィックス付きグラデーションの背景位置を変換したいので、90 - (@degree)
この例に従って単純な式を使用します90 - (135) = -45
。
重要な部分は.replace(/(\d*)?deg/g, 90 - '$1' + 'deg')
、私はさまざまな関数を試しましたが、何があっても、出力は常に NaN になります: - parseInt('$1') - parseFloat('$1') - eval(90 - '$1') - Number(' $1')
または他の番号に置き換える'$1'
と'135'
、うまく機能します。
@w3c: true; // valid w3c syntax
@webkit: true; // Google Chrome, Safari, iOS
@moz: true; // Mozilla Firefox
@ms: true; // Internet Explorer
@o: true; // Opera
@default-background-image: linear-gradient(135deg, blue, red), linear-gradient(150deg, green, orange);
.background-image (@arguments: @default-background-image;) {
.result (...) when (@webkit = true) {
background-image: ~`"@{arguments}"
.replace(/[\[\]]/g,'')
.replace("linear-gradient","-webkit-linear-gradient")
.replace(/(\d*)?deg/g, 90 - '$1' + 'deg')`;
}
.result (...) when (@moz = true) {
background-image: ~`"@{arguments}"
.replace(/[\[\]]/g,'')
.replace("linear-gradient","-moz-linear-gradient")
.replace(/(\d*)?deg/g, 90 - '$1' + 'deg')`;
}
.result (...) when (@ms = true) {
background-image: ~`"@{arguments}"
.replace(/[\[\]]/g,'')
.replace("linear-gradient","-ms-linear-gradient")
.replace(/(\d*)?deg/g, 90 - '$1' + 'deg')`;
}
.result (...) when (@o = true) {
background-image: ~`"@{arguments}"
.replace(/[\[\]]/g,'')
.replace("linear-gradient","-o-linear-gradient")
.replace(/(\d*)?deg/g, 90 - '$1' + 'deg')`;
}
.result (...) when (@w3c = true) {
background-image: @arguments;
}
.result (@arguments);
}