2009-12-31 2 views
0

CSS3 광선이 포함 된 Scriptaculous를 사용하여 사용자 지정 강조 애니메이션을 작성하고 있습니다. 박스 - 섀도우 스타일을 얻었고 rgba 알파 값으로 분할해야합니다. 그런 다음 그림자가 사라지도록 그 값을 변경하십시오. CSS 문자열 - 최대 세 번째까지 쉼표를 모두 선택하십시오.

$('fresh').style.MozBoxShadow 

0 0 20px rgba(163, 238, 71, 1.0) 

1.0 알파 값 반환합니다.

$('fresh').style.MozBoxShadow = everythingBeforeAlphaValue + anAlphaValueIVaryWithJS + ')'; 

모든 숫자가 오랫동안 자리의 숫자가 될 수 있습니다, 그래서 substring을 사용할 수 없습니다 (그리고 난 정말 :) 아는 전부입니다) : 나는 설정할 수 있도록 나는 그것을 분할해야합니다. 도울 수 있니?

답변

2
var mozBoxShadow = $('fresh').style.MozBoxShadow; 
var everythingBeforeAlphaValue = /.*?rgba\((?:\d*,\s*){3}/.exec(mozBoxShadow)[0]; 
1

이것은 문자열을 구문 분석하지 않고 프로그래밍 방식으로 더 깔끔하고 잘 수행됩니다. 나는 logic 권리를 이해한다면

, 당신은 당신에게 그것의 한 부분을 절약 할 수

$('fresh').style.MozBoxShadowColor 

그 통해 직접 색상을 도달 할 수 있어야합니다.

프로그래밍 방식으로 색상의 "알파"구성 요소에 액세스 할 수도 있지만 그 방법을 모르겠습니다. 당신이 lastIndexOf(',')를 알 수 있기 때문에

+0

그렇게 생각 싶지만, 그것은 다시 정의되어 있습니다. 나는 그것이 그들이 벤더에 특정한 접두사들 아래에있는 이유라고 생각한다. –

+0

아, 쓰레기. 괜찮아. 그리고 내가 Google에 올 때, 유일한 것은 무엇입니까? 이 바로 대답. Google에서 자고있는 SO의 상사는 누구입니까? :) –

2

글쎄, 당신은 여전히 ​​예를 들어, substring를 사용할 수 있습니다

var str = "0 0 20px rgba(163, 238, 71, 1.0)"; 

var everythingBeforeAlphaValue = str.substring(0, str.lastIndexOf(',') + 1); 
// "0 0 20px rgba(163, 238, 71," 
// ... 
관련 문제