2010-07-13 13 views
11

मैं सोच रहा था कि क्या कोई जानता है कि स्क्रॉलबार textarea के अंदर दिखाई देने पर मैं कैसे पता लगाऊंगा।टेक्स्टस्का में जावास्क्रिप्ट का पता लगाने स्क्रॉलबार

मैं वर्तमान में अपनी जावास्क्रिप्ट के लिए mootools का उपयोग कर रहा हूं और मुझे स्क्रॉलबार का पता लगाने में समस्याएं आ रही हैं।

+1

, तुम क्यों यह पता लगाने के लिए चाहते हो जाएगा:

यह इस तरह कहा जा सकता है? – falstro

+0

क्योंकि मैं इसका उपयोग यह पता लगाने के लिए करना चाहता था कि टेक्स्ट बॉक्स में 3 पंक्तियों को कब रखा गया था और किसी और वर्ण को दर्ज करने की अनुमति देना बंद कर दिया था। – Jamie

उत्तर

27
function has_scrollbar(elem_id) 
{ 
    const elem = document.getElementById(elem_id); 
    if (elem.clientHeight < elem.scrollHeight) 
     alert("The element has a vertical scrollbar!"); 
    else 
     alert("The element doesn't have a vertical scrollbar."); 
} 

इस jsFiddle http://jsfiddle.net/qKNXH/

+2

क्या यह टेक्स्टरेरा के लिए काम करने जा रहा है? –

+0

हां - http://jsfiddle.net/HBp5U/ – Castrohenge

+0

बहुत बहुत धन्यवाद! यह बहुत अच्छा है! <3 – marverix

4

टोमास्सो के समाधान पूरी तरह से काम करता है, यहां तक ​​कि एक पाठ क्षेत्र के साथ देखें। लेकिन उपयोगकर्ता पाठ क्षेत्र में टाइप करने के लिए गए थे और अगर अचानक पाठ क्षेत्र अपने आप में एक स्क्रॉलबार दिया था, अपने जावास्क्रिप्ट जानते हैं या हो triggered.So आप की तरह

onKeyUp='has_scrollbar("textareaID")' 
3

मैं एक jQuery "अनुकूल बनाया कुछ जोड़ने के लिए चाहते हो सकता है नहीं होगा "Tommaso Taruffis कोड

function resize_until_scrollbar_is_gone(selector) { 
    $.each($(selector), function(i, elem) { 
     while (elem.clientHeight < elem.scrollHeight) { 
      $(elem).height($(elem).height()+5); 
     } 
    }); 
} 

यह कई तत्वों और स्वीकार करता है संभाल कर सकते हैं के संस्करण: चयनकर्ताओं, jQuery वस्तुओं, या डोम तत्वों।

resize_until_scrollbar_is_gone('textarea'); 
जिज्ञासा से बाहर
संबंधित मुद्दे