आप #!इसके बजाय अपने href सेट कर सकते हैं#
उदाहरण के लिए,
<a href="#!">Link</a>
क्लिक करने पर कोई स्क्रॉलिंग नहीं करेगा।
सावधान रहें! यह अभी भी क्लिक किए जाने पर ब्राउज़र के इतिहास में एक प्रविष्टि जोड़ देगा, जिसका अर्थ है कि आपके लिंक पर क्लिक करने के बाद, उपयोगकर्ता का पिछला बटन उन्हें उस पृष्ठ पर नहीं ले जाएगा, जो वे पहले थे। इस कारण से, इसका उपयोग करना बेहतर है.preventDefault() दृष्टिकोण या संयोजन में दोनों ।
यहाँ एक फिडल है यह चित्रण (बस अपने ब्राउज़र को नीचे स्क्रॉल करें जब तक कि आपका स्क्रॉलबार नहीं मिलता है):
http://jsfiddle.net/9dEG7/
चश्मा के लिए - यह क्यों काम करता है:
यह व्यवहार एक टुकड़ा पहचानकर्ता अनुभाग पर नेविगेट करने के तहत HTML5 कल्पना में निर्दिष्ट है । "#"दस्तावेज़ के शीर्ष पर स्क्रॉल करने का कारण बनता है कि एक href के साथ एक लिंक यह है कि यह व्यवहार स्पष्ट रूप से एक खाली टुकड़ा पहचानकर्ता को संभालने के तरीके के रूप में निर्दिष्ट किया गया है:
2. यदि fragidरिक्त स्ट्रिंग है, तो दस्तावेज़ का संकेत दिया गया हिस्सा दस्तावेज़ का शीर्ष है
का उपयोग करते हुए "#!"इसके बजाय केवल इसलिए काम करता है क्योंकि यह इस नियम से बचता है। वहाँ विस्मयादिबोधक चिह्न बारे में कुछ नहीं जादू है - क्योंकि यह काफ़ी एक ठेठ fragid करने के लिए अलग और की संभावना नहीं है कभी मेल खाते हैं कि यह सिर्फ एक सुविधाजनक टुकड़ा पहचानकर्ता बनाता है idया nameअपने पृष्ठ पर एक तत्व की। वास्तव में, हम हैश के बाद लगभग कुछ भी डाल सकते हैं; केवल ऐसे टुकड़े जो पर्याप्त नहीं होंगे, वे रिक्त स्ट्रिंग, शब्द 'शीर्ष', या उस तार से मेल खाते nameया idतत्वों के गुण हैं।
अधिक सटीक रूप से, हमें केवल एक टुकड़े करने वाले पहचानकर्ता की आवश्यकता है जो हमें निम्नलिखित एल्गोरिथ्म में निर्धारित करने के लिए चरण 8 के माध्यम से गिरने का कारण बनेगा दस्तावेज़ से संकेतित भाग के
URL के लिए URL पार्सर एल्गोरिदम लागू करें, और दें fragid जिसके परिणामस्वरूप पार्स URL के टुकड़ा घटक हो।
अगर fragid रिक्त स्ट्रिंग है, तो दस्तावेज़ का संकेत दिया गया हिस्सा दस्तावेज़ का शीर्ष है; यहाँ एल्गोरिथ्म बंद करो।
चलो fragid bytes प्रतिशत-डिकोडिंग का परिणाम है fragid।
आज्ञा देना decoded fragidलागू करने का परिणाम हो UTF-8 डिकोडर एल्गोरिथ्मfragid bytes । यदि UTF-8 डिकोडर एक डिकोडर त्रुटि का उत्सर्जन करता है, तो डिकोडर को निरस्त करें और इसके बजाय लेबल किए गए चरण पर जाएं no decoded fragid।
अगर DOM में कोई ऐसा एलिमेंट है जिसकी ID बिलकुल बराबर है decoded fragid , तो ट्री ऑर्डर में पहला ऐसा तत्व दस्तावेज का संकेतित भाग है; यहाँ एल्गोरिथ्म बंद करो।
कोई डिकोड किया हुआ टुकड़ा नहीं : यदि DOM में कोई तत्व है जिसका नाम विशेषता है जिसका मान बिल्कुल बराबर है fragid( नहीं)decoded fragid ) के , तो ट्री ऑर्डर में पहला ऐसा तत्व दस्तावेज़ का संकेत दिया गया हिस्सा है; यहाँ एल्गोरिथ्म बंद करो।
अगर नाजुक स्ट्रिंग के लिए एक ASCII केस-असंवेदनशील मैच है top, तो दस्तावेज़ का संकेत दिया गया हिस्सा दस्तावेज़ में सबसे ऊपर है; यहाँ एल्गोरिथ्म बंद करो।
अन्यथा, दस्तावेज़ का कोई संकेतित हिस्सा नहीं है।
जब तक हम कदम 8 और मारा दस्तावेज़ का कोई संकेतित हिस्सा नहीं है , तब तक निम्न नियम चलन में आते हैं:
यदि कोई संकेतित भाग नहीं है ... तो उपयोगकर्ता एजेंट को कुछ भी नहीं करना चाहिए।
यही कारण है कि ब्राउज़र स्क्रॉल नहीं करता है।