আমি কোনও পৃষ্ঠায় স্ক্রোল অবস্থান নির্ধারণের চেষ্টা করছি যাতে স্ক্রোলারটি সমস্ত উপায়ে স্ক্রোল করে।
আমি মনে করি আমার এর মতো কিছু দরকার তবে এটি কার্যকর নয়:
(function () { alert('hello'); document.body.scrollTop = 0; } ());
কোন ধারনা?
আমি কোনও পৃষ্ঠায় স্ক্রোল অবস্থান নির্ধারণের চেষ্টা করছি যাতে স্ক্রোলারটি সমস্ত উপায়ে স্ক্রোল করে।
আমি মনে করি আমার এর মতো কিছু দরকার তবে এটি কার্যকর নয়:
(function () { alert('hello'); document.body.scrollTop = 0; } ());
কোন ধারনা?
উত্তর:
আপনি এটির window.scrollTo()মতো ব্যবহার করতে পারেন :
window.scrollTo(0, 0); // values are x,y-offset
মনে রাখবেন আপনি যদি পুরো উইন্ডোর পরিবর্তে কোনও উপাদান স্ক্রোল করতে চান তবে উপাদানগুলির কাছে পদ্ধতি scrollToএবং scrollByপদ্ধতি নেই। তোমার উচিত:
var el = document.getElementById("myel"); // Or whatever method to get the element
// To set the scroll
el.scrollTop = 0;
el.scrollLeft = 0;
// To increment the scroll
el.scrollTop += 100;
el.scrollLeft += 100;
আপনি ব্রাউজারগুলিতে যা স্থানীয়ভাবে এটি সমর্থন করে না সেগুলি ওয়েবপৃষ্ঠায় থাকা সমস্ত অস্তিত্বশীল এইচটিএমএল উপাদানগুলির জন্য window.scrollToএবং window.scrollByকার্যগুলি নকল করতে পারেন :
Object.defineProperty(HTMLElement.prototype, "scrollTo", {
value: function(x, y) {
el.scrollTop = y;
el.scrollLeft = x;
},
enumerable: false
});
Object.defineProperty(HTMLElement.prototype, "scrollBy", {
value: function(x, y) {
el.scrollTop += y;
el.scrollLeft += x;
},
enumerable: false
});
সুতরাং আপনি করতে পারেন:
var el = document.getElementById("myel"); // Or whatever method to get the element, again
// To set the scroll
el.scrollTo(0, 0);
// To increment the scroll
el.scrollBy(100, 100);
দ্রষ্টব্য: Object.definePropertyউত্সাহিত করা হয়েছে, কারণ হিসাবে সরাসরি সম্পত্তি যুক্ত prototypeকরা একটি ব্রেকিং অভ্যাস (যখন আপনি এটি দেখুন :-)-
... অথবা কেবল এর bodyদ্বারা প্রতিস্থাপন করুন documentElement:
document.documentElement.scrollTop = 0;