मैं एक पंक्ति पंक्ति (tr टैग) पर एक div (या कोई भी तत्व जो काम करेगा) ओवरले करना चाहता है जो एक से अधिक कॉलम होता है।तालिका पंक्ति (tr) पर एक div (या कोई तत्व) ओवरले कैसे करें?
मैंने कुछ विधियों की कोशिश की है, जो काम नहीं कर रहे हैं। मैंने नीचे अपना वर्तमान कोड पोस्ट किया है।
मुझे ओवरले मिलता है, लेकिन सीधे पंक्ति पर नहीं। मैंने ओवरले टॉप को $ divBottom.css ('top') पर सेट करने का प्रयास किया, लेकिन यह हमेशा 'ऑटो' होता है।
तो, क्या मैं सही रास्ते पर हूं, या क्या ऐसा करने का एक बेहतर तरीका है? JQuery का उपयोग करना ठीक है जैसा आप देख सकते हैं।
यदि मैं सही रास्ते पर हूं, तो मैं div को सही तरीके से कैसे प्राप्त करूं? क्या ऑफसेट तत्व, तालिका में ऑफसेट टाइप करें, और मुझे कुछ गणित करने की आवश्यकता है? कोई अन्य गॉथस मैं उसके साथ भाग जाऊंगा?
$(document).ready(function() {
$('#lnkDoIt').click(function() {
var $divBottom = $('#rowBottom');
var $divOverlay = $('#divOverlay');
var bottomTop = $divBottom.attr('offsetTop');
var bottomLeft = $divBottom.attr('offsetLeft');
var bottomWidth = $divBottom.css('width');
var bottomHeight = $divBottom.css('height');
$divOverlay.css('top', bottomTop);
$divOverlay.css('left', bottomLeft);
$divOverlay.css('width', bottomWidth);
$divOverlay.css('height', bottomHeight);
$('#info').text('Top: ' + bottomTop + ' Left: ' + bottomLeft);
});
});
#rowBottom { outline:red solid 2px }
#divBottom { margin:1em; font-size:xx-large; position:relative; }
#divOverlay { background-color:Silver; text-align:center; position:absolute; z-index:10000; opacity:0.5; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head>
<title>Overlay Tests</title>
</head>
<body>
<p align="center"><a id="lnkDoIt" href="#">Do it!</a></p>
<table width="100%" border="0" cellpadding="10" cellspacing="3" style="position:relative">
<tr>
<td><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p></td>
</tr>
<tr id="rowBottom">
<td><div id="divBottom"><p align="center">This is the bottom text</p></div></td>
</tr>
<tr>
<td><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p></td>
</tr>
</table>
<div id="divOverlay" style=""><p>This is the overlay div.</p><p id="info"></p></div>
</body>
</html>
उनकी बहुत ज्यादा पहले से ही "निरपेक्ष स्थिति" उठाया
यह केवल स्क्रिप्ट कि कभी भी मेरे लिए मज़बूती से काम किया है। हालांकि आप "pos()" का उपयोग करने के बारे में सही हैं। – Pointy
यह चाल चल रहा है ... एक बदलाव के साथ: var rowPos = $ divBottom.pos(); var rowPos = $ divBottom.offset() होना चाहिए; । ऑफसेट() दस्तावेज़ में शीर्ष/बाएं है। – slolife
jquery में 'pos' नामक कोई फ़ंक्शन नहीं है। सही वाक्यविन्यास $ divBottom.position() होगा; –