div

2010-06-01 18 views
14

के लिए ऑनस्कोल क्या एक div तत्व में onscroll ईवेंट हैंडलर नहीं है? मेरे पृष्ठ पर व्यवहार div onscroll ईवेंट हैंडलर को पहचानने के लिए प्रतीत नहीं होता है।div

<div id='bd' onscroll='alert("Scroll Called");'></div> 

इसके अलावा,
div स्क्रॉल ईवेंट, खिड़की स्क्रॉल ईवेंट को रोल बुदबुदाती डोम घटना के अनुसार है?

उत्तर

2

हां लेकिन तत्व को स्क्रॉलबार होना चाहिए। आप इसे overflow: auto के साथ दे सकते हैं (जो सामग्री पर्याप्त होने पर आपको स्क्रॉलबार देता है) या overflow: scroll। (इन्हें विशेष रूप से x & y के साथ overflow-y: scroll ...)

हालांकि div को स्क्रॉल करने के बाद विंडो को स्क्रॉल करने के बाद वे बुलबुला नहीं करते हैं। (मूल रूप से यदि div स्क्रॉल कर सकता है तो यह स्क्रॉल ईवेंट को रोक देगा, लेकिन यदि यह नहीं हो सकता है तो यह पृष्ठ पर जाएगा)

+5

धन्यवाद। लेकिन, मेरे पास अतिप्रवाह संपत्ति सेट है। मैं div को स्क्रॉल कर रहा हूं, लेकिन कोई चेतावनी नहीं मिल रहा हूं। मैं गलत क्या कर सकता हूँ? –

1

मुझे पता है कि यह ठीक नहीं हो सकता है कि आप क्या खोज रहे हैं, लेकिन बहुत सारे जावास्क्रिप्ट ढांचे आपको इसके साथ मदद कर सकते हैं। स्क्रॉल घटनाओं को हुक करने के लिए div के लिए स्क्रॉलबार होना आवश्यक नहीं है।

ईजी। Mootools mousewheel घटना है। Demo here। (इसमें स्क्रॉलबार हैं, लेकिन आप स्क्रॉलबार को हटाने के लिए फ़ायरबग का उपयोग कर सकते हैं और कोशिश कर सकते हैं - यह अभी भी काम करता है)।

मैंने इसे अपने आप को site पर उपयोग किया है, मैंने थोड़ी देर पहले बनाया था। यदि आप छवियों पर अपना माउस रखते हुए स्क्रॉल करते हैं तो यह डिफ़ॉल्ट पृष्ठ स्क्रॉलिंग को रोकता है और इसके बजाय छवि-बार स्लाइड करता है।

12

आप जिस HTML का उपयोग कर रहे हैं उसके आधार पर, आप इसके बजाय onwheel ईवेंट का उपयोग कर सकते हैं।

onscroll घटना काम करता है केवल यदि निम्न सत्य हैं:

  1. div overflow: auto, overflow: scroll, overflow-y: scroll है, आदि
  2. div वर्तमान में एक दृश्य स्क्रॉलबार कि स्क्रॉल कर सकते हैं है।
  3. माउस आंदोलन वास्तव में स्क्रॉलबार को स्क्रॉल करने का कारण बनता है।

तो onscroll ईवेंट सामान्य माउस व्हील आंदोलन का पता लगाने के लिए वास्तव में उपयुक्त नहीं है।

कृपया ध्यान दें कि onwheel ईवेंट एचटीएमएल 5 में नया है। According to w3schools, हालांकि यह काफी व्यापक रूप से समर्थित है।

4

मैंने इस पर भी अपना सिर खरोंच कर दिया, जब तक कि मैंने DOCTYPE निर्देशों के बारे में और अधिक सीखना शुरू नहीं किया। ऑनस्कोल विशेषता HTML spec के नवीनतम संस्करण में समर्थित नहीं है। यह विजुअल स्टूडियो में अमान्य वाक्यविन्यास के रूप में दिखाएगा। यह कई ब्राउज़रों में काम कर सकता है, लेकिन यह अभी भी अमान्य कोड है।

इसके बजाय, आप जावास्क्रिप्ट या jQuery का उपयोग कर कैनन ईवेंट कर सकते हैं। मैं दो अलग div के पर स्क्रॉल सिंक्रनाइज़ करने के लिए इस तरह एक दृष्टिकोण का उपयोग करें:

$("#gridTableContainer").scroll(function() { 
    HandlingScrollingStuff(); 
}); 
+0

आपको माइक्रोसॉफ्ट चश्मा के बारे में क्या कह रहा है सब कुछ विश्वास नहीं करना चाहिए। वे खुद को पसंद करते हैं और वे उन्हें मानकों को कॉल करना पसंद करते हैं। और वीएस आपको एमएस_ के अनुसार "सही" और "वैध" _ होने के नाते शब्द की तरह महसूस करता है। असल में, केवल एमएस DOCTYPE पर निर्भर करता है कि क्या quirks कर रहे हैं या नहीं; अन्य सभी ब्राउज़र बस HTML प्रदर्शित कर रहे हैं। [एचटीएमएल, सीएसएस और जेएस सीखने के लिए एमडीएन का प्रयोग करें] (https://developer.mozilla.org/en/docs/DOM/window.onscroll)! कभी भी w3schools का उपयोग न करें, क्यों पढ़ें [w3fools.com] (http://w3fools.com)। एमएसडीएन आईई के लिए ठीक है, लेकिन उन पर भरोसा मत करो। ps: ऑनस्कोल घटना jQuery के बिना एचटीएमएल 5 spec'd है। – metadings

+1

उम्मम, हाँ। मैं यही कह रहा था कि जब मैंने ऊपर बताया कि "यह अभी भी अमान्य है" भले ही विजुअल स्टूडियो इसे वैध के रूप में दिखाए। – Ripside

0

jQuery स्क्रॉल() आप कर सकते हैं।

$("#gridTableContainer").scroll(function() { 
    HandlingScrollingStuff(); 
});