জন্য কোন অন্য প্রশ্নের আমি ক্ষান্ত এই উত্তর সহ, এই নমুনা কোড ।
এই কোডটিতে আমি কোনও এইচটিএমএল 5 ক্যানভাস জুম ইন / আউট করতে মাউস হুইলটি ব্যবহার করি। আমি এমন কিছু কোড পেয়েছি যা ক্রোম এবং ফায়ারফক্সের মধ্যে গতির পার্থক্যকে স্বাভাবিক করে তোলে। তবে সাফারিতে জুম হ্যান্ডলিং এর যেকোনটির থেকে অনেক বেশি দ্রুত।
আমার কাছে বর্তমানে কোডটি এখানে রয়েছে:
var handleScroll = function(e){
var delta = e.wheelDelta ? e.wheelDelta/40 : e.detail ? -e.detail/3 : 0;
if (delta) ...
return e.preventDefault() && false;
};
canvas.addEventListener('DOMMouseScroll',handleScroll,false); // For Firefox
canvas.addEventListener('mousewheel',handleScroll,false); // Everyone else
ক্রোম ভি 10/11, ফায়ারফক্স ভি 4, সাফারি ভি 5, অপেরা ভি 11 এবং আই 9 জুড়ে একই পরিমাণ মাউস হুইল ঘূর্ণায়মানের জন্য আমি একই 'ডেল্টা' মান পেতে কী কোড ব্যবহার করতে পারি?
এই প্রশ্নটি সম্পর্কিত, তবে এর কোনও ভাল উত্তর নেই।
সম্পাদনা : আরও তদন্তে দেখা যায় যে একটি স্ক্রোল ইভেন্ট 'আপ' হ'ল:
| evt.wheelDelta | evt.detail ------------------ + + ---------------- + + ------------ সাফারি ভি 5 / উইন 7 | 120 | 0 সাফারি ভি 5 / ওএস এক্স | 120 | 0 সাফারি ভি 7 / ওএস এক্স | 12 | 0 ক্রোম ভি 11 / উইন 7 | 120 | 0 ক্রোম ভি 37 / উইন 7 | 120 | 0 ক্রোম ভি 11 / ওএস এক্স | 3 (!) | 0 (সম্ভবত ভুল) ক্রোম ভি 37 / ওএস এক্স | 120 | 0 আইই 9 / উইন 7 | 120 | অনির্দিষ্ট অপেরা ভি 11 / ওএস এক্স | 40 | -1 অপেরা ভি 24 / ওএস এক্স | 120 | 0 অপেরা ভি 11 / উইন 7 | 120 | -3 ফায়ারফক্স ভি 4 / উইন 7 | অপরিবর্তিত | -3 ফায়ারফক্স ভি 4 / ওএস এক্স | অপরিবর্তিত | -1 ফায়ারফক্স ভি 30 / ওএস এক্স | অপরিবর্তিত | -1
আরও, ওএস এক্স-এ ম্যাকবুক ট্র্যাকপ্যাড ব্যবহার করা ধীরে ধীরে চলার পরেও বিভিন্ন ফলাফল দেয়:
- সাফারি এবং ক্রোমে,
wheelDelta
মাউস হুইলের 120 এর পরিবর্তে 3 এর মান। - ফায়ারফক্সে
detail
সাধারণত হয়2
, কখনও কখনও1
, তবে খুব ধীরে ধীরে স্ক্রোল করার সময় সমস্ত ইভেন্ট হ্যান্ডেলার আগুন জ্বলে না ।
সুতরাং প্রশ্নটি হ'ল:
এই আচরণের পার্থক্য করার সর্বোত্তম উপায় কী (আদর্শভাবে কোনও ব্যবহারকারী এজেন্ট বা ওএস স্নিফিং ছাড়াই)?
e.wheelDelta/120
?