स्क्रॉल करने में कठिनाई यह है कि आपको डिव दिखाने के लिए न केवल पेज को स्क्रॉल करने की आवश्यकता हो सकती है, बल्कि आपको किसी भी स्तर पर स्क्रॉल करने योग्य डिव के अंदर स्क्रॉल करने की आवश्यकता हो सकती है।
स्क्रॉलटॉप संपत्ति किसी भी DOM तत्व पर उपलब्ध है, जिसमें दस्तावेज़ निकाय भी शामिल है। इसे सेट करके, आप नियंत्रित कर सकते हैं कि कोई चीज़ कितनी दूर स्क्रॉल की गई है। आप क्लाइंटहाइट और स्क्रॉलहाइट गुणों का उपयोग करके भी देख सकते हैं कि स्क्रॉलिंग की कितनी आवश्यकता है (स्क्रॉलिंग तब संभव है जब क्लाइंटहाइट (व्यूपोर्ट) स्क्रॉलहाइट (सामग्री की ऊंचाई) से कम हो।
आप ऑफसेटटॉप संपत्ति का उपयोग यह पता लगाने के लिए भी कर सकते हैं कि कंटेनर में कोई तत्व कहाँ स्थित है।
वास्तव में सामान्य उद्देश्य "स्क्रैच इन व्यू" रूटीन से स्क्रैच बनाने के लिए, आपको उस नोड पर शुरू करना होगा जिसे आप उजागर करना चाहते हैं, यह सुनिश्चित करें कि यह उसके माता-पिता के दृश्य भाग में है, फिर माता-पिता के लिए एक ही दोहराएं, आदि, सभी जब तक आप शीर्ष पर नहीं पहुंच जाते।
इसका एक चरण कुछ इस तरह दिखाई देगा (बिना कोड के, धार मामलों की जाँच नहीं):
function scrollIntoView(node) {
var parent = node.parent;
var parentCHeight = parent.clientHeight;
var parentSHeight = parent.scrollHeight;
if (parentSHeight > parentCHeight) {
var nodeHeight = node.clientHeight;
var nodeOffset = node.offsetTop;
var scrollOffset = nodeOffset + (nodeHeight / 2) - (parentCHeight / 2);
parent.scrollTop = scrollOffset;
}
if (parent.parent) {
scrollIntoView(parent);
}
}