2013-02-27 221 views
9

पहला div '#icon-selection-menu' बार है, यह पूर्णtop:0px और left:0px के साथ निष्क्रिय स्थिति है। तो यह सामग्री div के अंदर शीर्ष बाएं कोने में दिखाई देता है।जावास्क्रिप्ट के साथ किसी अन्य div के शीर्ष पर div को कैसे स्थानांतरित करें?

सामग्री div बच्चों में गहरी मुझे अन्य divs मिलते हैं जो वास्तव में '.emoticon-button' प्रकार के होते हैं। उनकी स्थिति उनके माता-पिता के अंदर सापेक्ष है। इस तरह के बटन पर क्लिक करें, मैं बटन के ऊपर पहले div को स्थिति में रखना चाहता हूं, बटन की शीर्ष सीमा पर इसकी निचली सीमा को समायोजित करना चाहता हूं।

मैं शीर्ष कैसे प्राप्त कर सकते हैं और मूल्यों छोड़ दिया $('#icon-selection-menu').top और $('#icon-selection-menu').left स्थापित करने के लिए?

+0

उस प्रदर्शन के लिए रिश्तेदार सीएसएस संपत्ति जोड़ें: सापेक्ष; – EnterJQ

+0

कृपया एक बेवकूफ –

उत्तर

18

jQuery दस्तावेज़ से संबंधित किसी भी तत्व की स्थिति प्राप्त करने के लिए .offset() प्रदान करता है। चूंकि #icon-selection-menu पहले से ही दस्तावेज़ को किस स्थिति में है, तो आप इस का उपयोग कर सकते हैं:

var destination = $('.emoticon-button').offset(); 
$('#icon-selection-menu').css({top: destination.top, left: destination.left}); 

$('#icon-selection-menu')$('.emoticon-button') के ऊपरी-बाएं कोने में रखा जाएगा।

(1) jQuery प्रश्न में $ के उपयोग के कारण माना गया।

+1

दूसरी पंक्ति '$ ('# आइकन-चयन-मेनू') हो सकती है। सीएसएस (गंतव्य); 'क्या यह नहीं हो सकता? या '$ ('# आइकन-चयन-मेनू') ऑफसेट (गंतव्य);' –

+0

@ बॉबस्टिन-विसीबोन हां! – bfavaretto

0

आप नीचे दिए गए jQuery का उपयोग करके तत्व की स्थिति को प्राप्त कर सकते हैं

var position=$('#icon-selection-menu').position(); 
var left=position.left; 
var right=position.right 

और उस बटन को क्लिक पर आप '.emoticon-बटन का उपयोग कर

$("#ID").live("click",function(){ 
    $('.emoticon-button').animate({left:left,right:right}); 
}); 
+0

स्थिति दें() शीर्ष पर लौटता है और मूल बॉक्स के अंदर छोड़ दिया जाता है, क्षमा करें जो मेरे लिए काम नहीं करता है। आपकी सलाह के लिए धन्यवाद। – zuba

0

प्राप्त करें द्वारा यह ऊपर स्थित कर सकते हैं 'स्थिति (बाएं, ऊपर)। फिर इसे '# आइकन-चयन-मेनू' पर लागू करें। इमोटिकॉन के साथ संरेखित करने के लिए ऊपर और बाएं कुछ समायोजन होगा।

+0

स्थिति() शीर्ष पर लौटती है और मूल बॉक्स के अंदर छोड़ दी जाती है, क्षमा करें जो मेरे लिए काम नहीं करती है। आपकी सलाह के लिए धन्यवाद। – zuba

5

आप एक div offsetTop और offsetLeft का उपयोग कर के शीर्ष और बाएं स्थिति प्राप्त कर सकते हैं

उदाहरण: `

$('#div-id').offset().top; 
$('#div-id').offset().left; 
+0

धन्यवाद, प्रसाद! मैंने मतदान किया, लेकिन दूसरे पद के समाधान के रूप में चिह्नित किया क्योंकि यह अधिक विस्तृत है। – zuba

1

जावास्क्रिप्ट एक अंतर्निहित में क्या उल्लेख किया @bfavaretto का संस्करण। यह jquery संस्करण से थोड़ा लंबा है, लेकिन मेरे जैसे लोग जो jquery का उपयोग नहीं करते हैं, उन्हें इसकी आवश्यकता हो सकती है।

var iconselect = document.getElementById("icon-selection-menu"); 
var emoticonbtn = document.getElementById("emoticon-button"); 
var oTop = emoticonbtn.offsetTop; 
var oLeft = emoticonbtn.offsetLeft; 
iconselect.style.top = oTop; 
iconselect.style.left = oLeft; 
iconselect.style.position = "absolute"; 

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

elementtomove.offsetTop; //distance from top of screen 
elementtomove.offsetLeft; //distance from left of screen 

आशा इस लोग हैं, जो jQuery का उपयोग करने के लिए तैयार नहीं हैं मदद करता है!

+0

[https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop ](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop) – IamGuest

+0

[ऑफ़सेट लेफ्ट] (https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetLeft) – IamGuest

+0

conselect.style.top = oTop + "px"; iconselect.style.left = बाएं + "पीएक्स"; अन्यथा यह काम नहीं करता है और केवल पूर्ण संपत्ति लागू करता है। –

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

  • कोई संबंधित समस्या नहीं^_^