तो मैं एक अच्छा शुद्ध नागरिक गया है, सुविधा का पता लगाने का उपयोग कर ब्राउज़र requestAnimationFrame
का समर्थन करता है या नहीं और केवल वापस एक setTimeout
आधारित समाधान के लिए अन्यथा (Paul Irish's famous post की तर्ज चारों ओर कुछ) गिर जाते हैं।requestAnimationFrame IE10
var NOW = Date.now || function() { return new Date.getTime(); };
var reqAnimFrame =
window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
/* ... || */
function (callback) {
setTimeout(function() { callback(NOW()); }, 1000/60);
};
var previousTime = NOW();
function animStep(time) {
var timePassed = time - previousTime;
myCharacter.move(myCharacter.speed * timePassed);
previousTime = time;
reqAnimationFrame(animStep);
}
// start the animation
reqAnimationFrame(animStep);
यह इंटरनेट एक्सप्लोरर 10 के साथ आने तक हर जगह महान काम करता था। आईई 10 में, time
पारित पैरामीटर वर्तमान समय के साथ कुछ भी करने के लिए प्रतीत नहीं होता है, timePassed
की गणना को खराब कर रहा है।
क्या चल रहा है?
काफी आश्चर्यजनक रूप से ... यह पहली बार होगा जब * इंटरनेट एक्सप्लोरर * spec से विचलित हो जाता है। मैं हैरान हूँ! – jAndy
@jAndy इस मामले में, आप कह सकते हैं कि वे * निम्नलिखित * में अन्य ब्राउज़रों से आगे हैं। – balpha
और यह बिल्कुल सही बात है: IE वर्षों से गड़बड़ हो गया है और अब वे मानकों के बाद कड़े तौर पर अच्छे लड़के बनने की कोशिश कर रहे हैं। उम्मीद है कि यह भविष्य में संतुलन बनाएगा। – Sander