은 내가 SVG에 포함 된 필드에 텍스트 입력을 애니메이션 SMIL를 사용하는 것을 시도하고있다. 나는 매일 밤 크롬과 SMIL 활성화 파이어 폭스에서 다음 코드를 시도했지만 아무 효과가 없습니다 :자바 스크립트에서 SMIL 타이머에 액세스 할 수 있습니까?
이<svg xmlns="http://www.w3.org/2000/svg"
xmlns:html="http://www.w3.org/1999/xhtml">
<foreignObject>
<html:input type="text" value="">
<set attributeName="value" to="Hello World"
begin="0" dur="10s" fill="freeze" />
</html:input>
</foreignObject>
</svg>
텍스트 필드가 나타납니다,하지만 비어 있습니다. 그래서 beginEvent를 등록하고 대체 작업을 수동으로 수행 할 것이라고 생각했습니다. 이벤트를 테스트하려면, 내가 추가 :
<rect id="rect" x="0" y="0" width="10" height="10">
<animate id="dx" attributeName="x" attributeType="XML"
onbegin="console.log('onbegin')"
begin="0s" dur="1s" fill="freeze" from="0" to="-10" />
</rect>
뿐만 아니라 event model에서 의미가 만든 자바 스크립트 :
window.addEventListener('load', function() {
function listen(id) {
var elem = document.getElementById(id)
elem.addEventListener('beginEvent', function() {
console.log('begin ' + id)
}, false)
elem.addEventListener('endEvent', function() {
console.log('end ' + id)
}, false)
}
listen('rect')
listen('dx')
})
그러나 rect
또는 다른 브라우저에서 animate
중 하나에 발사 어떤 이벤트가 없습니다. 다음 논리적 단계는 애니메이션 (ALA. FakeSmile)을 시뮬레이션 할 것 같다,하지만 난 가능한 모든 경우 브라우저의 애니메이션 타이머를 사용하고 싶습니다.
나는 사건이 사파리와 파이어 폭스에서 전혀 작동하지 않습니다 생각합니다. 그들은 Opera에서 저를 위해 일했습니다. – Kornel