पर रोकथाम से अधिक है मैं आकार बदलने योग्य/खींचने योग्य तत्वों को लागू करने के लिए JQuery UI का उपयोग कर रहा हूं। अब मैं इन तत्वों के लिए एक रोकथाम को परिभाषित करना चाहता हूं जो बिल्कुल तीन (!) पक्षों पर आकार बदलने/खींचने को सीमित करता है। जैसे इस JSFiddle example पर एक नज़र डालें। आप देख सकते हैं कि निहित तत्व केवल माता-पिता के क्षेत्र में ही आकार/खींचा जा सकता है।JQuery UI draggable: एक तरफ
मैं क्या प्राप्त करने के लिए चाहते हैं कि तत्व नीचे सीमा से अधिक कर सकते हैं और माता पिता के नीचे सीमा से परे करने के लिए ले जाया जा रहा है। फिर भी आकार बदलने/ड्रैगिंग को अभी भी शीर्ष, दाएं और बाएं किनारे पर सीमित किया जाना चाहिए जैसा माता-पिता के अनुसार सीमाओं द्वारा निर्धारित किया गया है।
तो this modification क्या मैं के साथ आया है:
// resizable/draggable option
resize/drag : function(event, ui) {
expandParent("#parentElement", "#dragElement");
}
function expandParent(parentName, childName) {
var dragEl = $(childName);
var dragElTop = parseInt(dragEl.css("top"), 10);
var dragElHeight = parseInt(dragEl.css("height"), 10);
var dragElBottom = dragElTop + dragElHeight;
var parentEl = $(parentName);
var parentElBottom = parseInt(parentEl.css("height"));
if(parentElBottom <= dragElBottom + 20) {
parentEl.css("height", "+=2");
}
}
आप नीचे सीमा आप देखते हैं कि माता-पिता के क्षेत्र अगर बच्चे भी माता-पिता के नीचे सीमा के करीब हो जाता है का विस्तार किया है के साथ चारों ओर खेलते हैं। दुर्भाग्य से यह 20 पिक्सेल के बाद बंद हो जाता है। फिर आपको क्षेत्र को आगे बढ़ाने के लिए माउस बटन को छोड़ना और फिर से आकार/खींचना होगा। क्या आपको कोई विचार है कि वह क्यों है?
दिया के आधार पर कोड को संशोधित करने के लिए है , मैंने निम्न पंक्ति देखी: 'अगर (parentElBottom <= dragElBottom + 20) {'शायद वह' 20' समस्या पैदा कर रहा है? –
ठीक है, हाँ, आप तत्व को सबसे कम संभव स्थिति में ले जा सकते हैं जो आंदोलन की शुरुआत में माता-पिता के क्षेत्र का हिस्सा था। तो क्षेत्र का विस्तार किसी भी तरह से JQuery UI के मॉडल को अनुमानित नहीं किया गया है। – Bastian