2011-12-24 7 views
5

यहाँ कोड है:jQuery यूआई संवाद: लंबवत स्क्रॉल सही नहीं काम करता है, तो खिड़की ऊंचाई से संवाद ऊंचाई अधिक

<script type="text/javascript"> 
    $(function(){ 
     var dialogOptions = { 
      title: "Header", 
      autoOpen: false, 
      modal: true, 
      width: 400, 
      height: 1000 
     }; 
     $(".wnd").dialog(dialogOptions); 
     $("#btn").click(function(){ $(".wnd").dialog("open"); }); 
    }); 
</script> 

<style> 
    .wnd {background:yellow;height:900px;width:300px;} 
</style> 

<div class="wnd"></div> 
<button id="btn">click me</button> 

जब संवाद खोला जाता है और यह मुख्य विंडो की तुलना में अधिक वहाँ एक पक्ष स्लाइडर है और यदि ऐसा नहीं होता यदि आप इसे माउस कर्सर की मदद से खींचने का प्रयास करते हैं तो नीचे स्लाइड करें (यह लॉक होने जैसा प्रतीत होता है)।

लेकिन कीबोर्ड पर बटन (तीर) डालने या माउस व्हील के साथ स्क्रॉल करने पर यह ठीक से स्लाइड करता है।

यहां demo on jsfiddle है।

उस साइड स्लाइडर को सक्रिय करने के लिए कैसे करें?

धन्यवाद!

+0

स्क्रॉलिंग अक्षम है क्योंकि संवाद _modal_ है। स्क्रॉलिंग को फिर से अनुमति देने के लिए आप 'मोडल: झूठा' सेट कर सकते हैं। लेकिन क्या आप _modal_ संवाद चाहते हैं? – andyb

+0

@andyb, यदि संवाद स्वयं खिड़की से लंबा है, तो मुख्य विंडो की स्क्रॉलिंग की कमी बाधित हो सकती है। एक अन्य संभावना संवाद पर स्क्रॉलबार को मजबूर करना होगा, लेकिन कुछ स्थितियों में, पूरी तरह से खिड़की को स्क्रॉल करना एक बेहतर अनुभव होगा। – veeTrain

उत्तर

3

एक साफ समाधान इस तरह होगा:

http://jsfiddle.net/4fc33/6/

क्या मैं कर रहा हूँ jQuery यूआई ओवरले घटना है कि सही ढंग से काम करने के लिए स्क्रॉल रोकता है बंद करने के लिए विधि बनाने wraping है।

+0

आकर्षक; इसे साझा करने के लिए बहुत - बहुत धन्यवाद। मैं केवल क्रोम में इस समस्या का सामना कर रहा था और इसने स्क्रॉल बार को अनलॉक किए बिना किसी नकारात्मक परिणाम के अनलॉक किए। – veeTrain

3

खिड़की के स्लाइडर्स का उपयोग करने में सक्षम न होने का एक वैकल्पिक दृष्टिकोण डायलॉग विंडो पर स्लाइडर्स को सक्षम करना है। यदि आप संवाद की अधिकतम ऊंचाई पर टोपी लगाते हैं तो यह स्वचालित रूप से दिखाई देगा लेकिन jQueryUI के कुछ संस्करणों के साथ थोड़ा मुश्किल हो सकता है।

कम से कम jQueryUI के संस्करण है कि मैं (1.9) पर हूँ मैं क्योंकि maxHeight संपत्ति है कि सक्षम होना चाहिए the documentation के अनुसार किया जा करने के लिए काम नहीं किया अपने दम पर अधिकतम ऊँचाई निर्दिष्ट करने के लिए आवश्यक * पर।

यहाँ क्या काम किया है:

$("#dialog").dialog({ 
    modal: true, 
    width: "auto", 
    height: "auto" 
    /* maxHeight: whatever won't work, */ 
}).css("maxHeight", window.innerHeight-120); 

मैं खिड़की की ऊंचाई के बंद 120 पिक्सल घटाया संवाद खिड़की के हेडर के लिए समायोजित करने के लिए - और अपने "ठीक" बटन के साथ पाद लेख अनुभाग।

* यदि संवाद का आकार बदलने का प्रयास किया गया था तो अधिकतम ऊंचाई वास्तव में प्रभावित होगी - लेकिन प्रदर्शन पर नहीं।

+0

एफवाईआई, हालांकि यह एक पुराना जवाब है, यह अभी भी आईएमओ पर सबसे अच्छा है। लेकिन, अभी तक (2017/18) maxHeight पैरामीटर .dialog ऑब्जेक्ट पर इसे प्राप्त करने के लिए अभी ठीक काम कर रहा है। – Eckstein

संबंधित मुद्दे