Thanks a lot, here's my result. I have tried TweenLite.ticker.useRAF(false), but it's no use, the animation still paused (or as GreenSock said, limited to very low fps). Then I changed to call TweenLite.lagSmoothing(0), and it worked! When I switch to other tabs and switch back, the animate is still sync with the music. After lagSmoothing works, I want to do something like Chrysto said, but looks like blur and focus is not suitable for chrome. However, I think that's another question and not belong to this thread. Thanks again, guys. I have not done many tests so far, but it looks fine for me now. I just wonder about the multi-browser support and mobile browser support (which html5 Web Audio API is total a disaster here). EDIT. I found that "blur" and "focus" actually works, but the TweenLite.lagSmoothing(0); is no use in that function. Which means TweenLite.lagSmoothing(0) is actually called when I switch to other tabs (I checked by put console.log() function in that), but the animation is still paused.
window.addEventListener('blur', function () {
TweenLite.lagSmoothing(0);
}, false);
window.addEventListener('focus', function () {
TweenLite.lagSmoothing(1000, 16);
}, false);