दिलचस्प पोस्ट
किसी क्वेरीज़ में रिक्त या शून्य नामों के लिए फ़िल्टरिंग HttpWebRequest का उपयोग करके डाक डेटा पोस्ट करें जावा: टर्नरी विद नो रिटर्न (विधि कॉलिंग के लिए) आप मैक ओएस एक्स से MySQL की स्थापना रद्द कैसे करते हैं? आईफोन ओरिएंटेशन को पोर्ट्रेट से लैंडस्केप तक बदलते समय एचटीएमएल फ़ॉन्ट-आकार बनाए रखें PHP से कैसे आप .bat फ़ाइल चला सकते हैं? एक्सएसएलटी 1.0 में विभाजित समारोह एंड्रॉइड ब्लूटूथ RFCOMM कनेक्शन को .connect () के तुरंत बाद मरने से कैसे रोकें? वर्तमान समय को AM / PM के साथ 12 घंटे के प्रारूप में प्रदर्शित करें क्या एक धागा को अनिश्चित रूप से रोकना है? जार भरी हुई नहीं सर्वलेट स्पेक 2.3 देखें, खंड 9 .7.2। अपमानजनक श्रेणी: javax / servlet / servlet.class मैं अपने आईफोन सिम्युलेटर को .ipa फ़ाइल कैसे स्थापित कर सकता हूं I ग्लासफिश में मोजररा संस्करण को कैसे अपडेट करें हेडर फाइलों में सी ++ कोड मैं एक नई सरणी के रूप में दो सरणियों के बीच का अंतर कैसे प्राप्त करूं?

स्क्रॉल करने पर, संभवतः जावास्क्रिप्ट और सीएसएस का उपयोग करते हुए मैं पहली पंक्ति और तालिका का पहला कॉलम कैसे लॉक कर सकता हूं?

मैं एक ऐसा तालिका कैसे बना सकता हूं जिसकी पहली पंक्ति और पहली कॉलम दोनों बंद हैं, जैसे एक्सेल में, जब आप फ्रीज़ पैन को सक्रिय करते हैं? मुझे मेज की दोनों क्षैतिज और अनुलंब रूप से स्क्रॉल करने की आवश्यकता है (इस के लिए कई समाधान मौजूद हैं, लेकिन केवल ऊर्ध्वाधर स्क्रॉलिंग की अनुमति दें)।

इसलिए, जब आप तालिका में नीचे स्क्रॉल करते हैं, तो पहली पंक्ति रहती रहती है, क्योंकि इसमें कॉलम शीर्षक होंगे। यह एक अंत में हो सकता है, या हो सकता है, जो भी समाधान को आसान बना देता है

जब आप सही स्क्रॉल करते हैं, तो पहला कॉलम रखा जाता है, क्योंकि यह पंक्तियों के लिए लेबल्स रखता है।

मुझे पूरा यकीन है कि सीएसएस के साथ यह असंभव है, लेकिन क्या कोई मुझे जावास्क्रिप्ट समाधान की ओर इशारा कर सकता है? यह सभी प्रमुख ब्राउज़रों में काम करने की आवश्यकता है

वेब के समाधान से एकत्रित समाधान "स्क्रॉल करने पर, संभवतः जावास्क्रिप्ट और सीएसएस का उपयोग करते हुए मैं पहली पंक्ति और तालिका का पहला कॉलम कैसे लॉक कर सकता हूं?"

ओह ठीक है, मैं इस विशिष्ट आवश्यकता की आवश्यकता को समझने के लिए निर्धारित कॉलम के साथ स्क्रॉल करने वाली तालिका के लिए देखा और आपका कोई भी जवाब नहीं था, इसके साथ प्रश्न था ..

मैंने इस सवाल का उत्तर दिया है एक गतिशील रूप से आकार की HTML तालिका जिसमें एक निश्चित स्क्रॉल पंक्ति और निश्चित स्क्रॉल कॉलम है, जो कि मेरे कार्य को एक प्लगइन के रूप में दिखाने के लिए प्रेरित किया गया था https://github.com/meetselva/fixed-table-rows-cols

प्लगइन मूलतः एक अच्छी तरह से स्वरूपित एचटीएमएल तालिका को एक निश्चित तालिका शीर्ष लेख और कॉलम के साथ एक स्क्रॉल करने योग्य तालिका में कनवर्ट करता है।

उपयोग निम्नानुसार है,

 $('#myTable').fxdHdrCol({ fixedCols : 3, /* 3 fixed columns */ width : "100%", /* set the width of the container (fixed or percentage)*/ height : 500 /* set the height of the container */ }); 

आप यहां डेमो और प्रलेखन देख सकते हैं

मैंने अपने jQuery प्लगइन समाधान को यहां पोस्ट किया है: स्क्रॉल करने योग्य डिवाइन में फ्रोजन टेबल हेडर

यह वास्तव में आप क्या चाहते हैं और वास्तव में हल्के और उपयोग में आसान है।

आपको दो तालिकाओं की जरूरत है, जहां पहले एक दूसरे से एक सटीक ओवरले है। दूसरे एक में सभी डेटा शामिल हैं, जहां पहले एक में केवल प्रथम स्तंभ होता है। आपको इसकी चौड़ाई को सिंक्रनाइज़ करना होगा और सामग्री के आधार पर इसकी पंक्तियों की ऊंचाई भी होगी।

इस दो तालिकाओं के अतिरिक्त, आपको एक तिहाई की आवश्यकता है यह पहली पंक्ति है, जो अन्य दो के बीच बिल्कुल ठीक बताती है और उसी तरह से सिंक्रनाइज़ होनी है।

आपको यहां पूर्ण स्थिति की आवश्यकता होगी। इसके बाद, आप सिर तालिका और पहली कॉलम तालिका के स्क्रॉलिंग स्थिति के साथ डेटा तालिका के स्क्रॉलिंग को सिंक्रनाइज़ कर देंगे।

यह सभी प्रमुख ब्राउज़रों में बहुत अच्छी तरह से काम करता है, एक मुद्दे को छोड़कर: सिंक्रनाइज़ किए गए स्क्रॉल फहराएंगे। उसे ठीक करने के लिए, आपको दो बाहरी डिवा कंटेनर की जरूरत है, जो हेडर पंक्ति की सामग्री का एक क्लोन रखते हैं और पहला कॉलम। खड़ी स्क्रॉल करते समय, आप हेडर पंक्ति वाले क्लोन को फहराता को रोकने के लिए प्रदर्शित करते हैं, जबकि आप पृष्ठभूमि में मूल को दोहराते हैं। क्षैतिज स्क्रॉल करते समय, आप पहली पंक्ति क्लोन दिखाएंगे इधर भी ऐसा ही है।

मैंने इसे एक संयोजन के साथ किया:

  • एकाधिक तालिकाओं का उपयोग करना
  • निश्चित आकार के कक्ष
  • jQuery के स्क्रॉलटॉप और स्क्रॉल लेफ्ट फ़ंक्शन

प्रदर्शित करने के लिए यहां एक उदाहरण है

सभी ब्राउज़रों पर परीक्षण नहीं किया है लेकिन मुझे लगता है कि यह पुराने IE संस्करणों पर अच्छा नहीं है।

jQuery

 $("#clscroll-content").scroll(function() { $("#clscroll-row-headers").scrollTop($("#clscroll-content").scrollTop()); $("#clscroll-column-headers").scrollLeft($("#clscroll-content").scrollLeft()); }); $("#clscroll-column-headers").scroll(function() { $("#clscroll-content").scrollLeft($("#clscroll-column-headers").scrollLeft()); }); $("#clscroll-row-headers").scroll(function() { $("#clscroll-content").scrollTop($("#clscroll-row-headers").scrollTop()); }); 

एचटीएमएल

 <div class="clscroll corner-header"> <table> <tr> <th>&nbsp;</th> </tr> </table> </div> <div class="clscroll column-headers" id="clscroll-column-headers"> <table> <tr> <th>Bus</th> <th>Plane</th> <th>Boat</th> <th>Bicycle</th> </tr> </table> </div> <div class="clscroll row-headers" id="clscroll-row-headers"> <table> <tr> <th>Red</th> </tr> <tr> <th>Green</th> </tr> <tr> <th>Blue</th> </tr> <tr> <th>Orange</th> </tr> <tr> <th>Purple</th> </tr> <tr> <th>Yellow</th> </tr> <tr> <th>Pink</th> </tr> <tr> <th>Brown</th> </tr> </table> </div> <div class="clscroll table-content" id="clscroll-content"> <table> <tr> <td>Red Bus</td> <td>Red Plane</td> <td>Red Boat</td> <td>Red Bicycle</td> </tr> <tr> <td>Green Bus</td> <td>Green Plane</td> <td>Green Boat</td> <td>Green Bicycle</td> </tr> <tr> <td>Blue Bus</td> <td>Blue Plane</td> <td>Blue Boat</td> <td>Blue Bicycle</td> </tr> <tr> <td>Orange Bus</td> <td>Orange Plane</td> <td>Orange Boat</td> <td>Orange Bicycle</td> </tr> <tr> <td>Purple Bus</td> <td>Purple Plane</td> <td>Purple Boat</td> <td>Purple Bicycle</td> </tr> <tr> <td>Yellow Bus</td> <td>Yellow Plane</td> <td>Yellow Boat</td> <td>Yellow Bicycle</td> </tr> <tr> <td>Pink Bus</td> <td>Pink Plane</td> <td>Pink Boat</td> <td>Pink Bicycle</td> </tr> <tr> <td>Brown Bus</td> <td>Brown Plane</td> <td>Brown Boat</td> <td>Brown Bicycle</td> </tr> </table> </div> 

सीएसएस

 .clscroll table { table-layout: fixed; } .clscroll td, .clscroll th { overflow: hidden; } .corner-header { float: left; } .column-headers { float: left; overflow: scroll; } .row-headers { clear: both; float: left; overflow: scroll; } .table-content { table-layout: fixed; float: left; overflow: scroll; } .clscroll td, .clscroll th { width: 200px; border: 1px solid black; } .row-headers, .table-content { height: 100px; } .column-headers, .table-content, .table-content table, .column-headers table { width: 400px; } 

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

यहां एक प्लगइन JQuery: https://github.com/nitsugario/jQuery-freeze-table-Column-and-Rows

यह एक jQuery प्लगइन है जो तालिका पंक्तियां और कॉलम नहीं स्क्रॉल कर सकता है। यह एक दिए गए HTML तालिका ऑब्जेक्ट ले सकता है और इसे सेट कर सकता है, ताकि वह एक निश्चित संख्या में स्तंभों या पंक्तियों या दोनों को स्थिर कर सके, ताकि निश्चित कॉलम या पंक्तियां स्क्रॉल न हों। जमी जाने वाली पंक्तियों को तालिका प्रमुख अनुभाग में रखा जाना चाहिए। यह कॉलपाँन या रोशनी के गुणों के उपयोग के साथ मिलकर पंक्तियों और स्तंभों को फ्रीज कर सकता है।

आपको इसका परीक्षण करना होगा, लेकिन अगर आप अपने पृष्ठ के भीतर एक आइफ्रेम एम्बेड करते हैं तो सीआरएसएस का उपयोग करने के लिए आईआरएआरएएम पेज में 0,0 पर 1 पंक्ति और स्तंभ को बिल्कुल समझाएगा जो आपकी समस्या का समाधान करेगा?

कैसे एक समाधान के बारे में जहाँ आप अपने स्वयं के डिवा में तालिका के "डेटा" को overflow: scroll; साथ डालते हैं overflow: scroll; ? तब ब्राउज़र स्वतः "टेबल" के उस भाग के लिए स्क्रॉलबार बनाता है जिसे आप लॉक नहीं करना चाहते, और आप "टेबल हेडर" / पहले पंक्ति उस <div> ऊपर रख सकते हैं

यह निश्चित नहीं है कि यह कैसे क्षैतिज स्क्रॉलिंग के साथ हालांकि काम करेगा।

सॉर्ट और लॉक टेबल ही एकमात्र उपाय है जो मैंने देखा है जो IE से अन्य ब्राउज़रों पर काम करता है I (यद्यपि यह " लॉक किए गए कॉलम सीएसएस " भी चाल कर सकता है)। नीचे आवश्यक कोड ब्लॉक

 <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta name="robots" content="noindex, nofollow"> <meta name="googlebot" content="noindex, nofollow"> <script type="text/javascript" src="/js/lib/dummy.js"></script> <link rel="stylesheet" type="text/css" href="/css/result-light.css"> <style type="text/css"> /* Scrollable Content Height */ .scrollContent { height:100px; overflow-x:hidden; overflow-y:auto; } .scrollContent tr { height: auto; white-space: nowrap; } /* Prevent Mozilla scrollbar from hiding right-most cell content */ .scrollContent tr td:last-child { padding-right: 20px; } /* Fixed Header Height */ .fixedHeader tr { position: relative; height: auto; } /* Put border around entire table */ div.TableContainer { border: 1px solid #7DA87D; } /* Table Header formatting */ .headerFormat { background-color: white; color: #FFFFFF; margin: 3px; padding: 1px; white-space: nowrap; font-family: Helvetica; font-size: 16px; text-decoration: none; font-weight: bold; } .headerFormat tr td { border: 1px solid #000000; background-color: #7DA87D; } /* Table Body (Scrollable Content) formatting */ .bodyFormat tr td { color: #000000; margin: 3px; padding: 1px; border: 0px none; font-family: Helvetica; font-size: 12px; } /* Use to set different color for alternating rows */ .alternateRow { background-color: #E0F1E0; } /* Styles used for SORTING */ .point { cursor:pointer; } td.sortedColumn { background-color: #E0F1E0; } tr.alternateRow td.sortedColumn { background-color: #c5e5c5; } .total { background-color: #FED362; color: #000000; white-space: nowrap; font-size: 12px; text-decoration: none; } </style> <title></title> <script type='text/javascript'>//<![CDATA[ /* This script and many more are available free online at The JavaScript Source :: http://www.javascriptsource.com Created by: Stan Slaughter :: http://www.stansight.com/ */ /* ====================================================== Generic Table Sort Basic Concept: A table can be sorted by clicking on the title of any column in the table, toggling between ascending and descending sorts. Assumptions: * The first row of the table contains column titles that are "clicked" to sort the table * The images 'desc.gif','asc.gif','none.gif','sorting.gif' exist * The img tag is in each column of the the title row to represent the sort graphic. * The CSS classes 'alternateRow' and 'sortedColumn' exist so we can have alternating colors for each row and a highlight the sorted column. Something like the <style> definition below, but with the background colors set to whatever you want. <style> tr.alternateRow { background-color: #E0F1E0; } td.sortedColumn { background-color: #E0F1E0; } tr.alternateRow td.sortedColumn { background-color: #c5e5c5; } </style> ====================================================== */ function sortTable(td_element,ignoreLastLines) { // If the optional ignoreLastLines parameter (number of lines *not* to sort at end of table) // was not passed then make it 0 ignoreLastLines = (typeof(ignoreLastLines)=='undefined') ? 0 : ignoreLastLines; var sortImages =['data:image/gif;base64,R0lGODlhCgAKAMQXAJOkk3mReXume3uTe3mieXGPcXOYc/Hx8Xadds/Wz9vg24ejh3GUcYOgg6a0pnGVcfP18+3w7c3TzdPY06u4q/r8+v///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABcALAAAAAAKAAoAAAUz4IVcZDleixQIQjA1pFFZx2FVRklZvOWUl8LsVgBeFLyE8TLgDZYESISwvAAA1QvjAQwBADs=','data:image/gif;base64,R0lGODlhCgAKAMQXAJOkk3mReXume3uTe3mieXGPcXOYc/Hx8Xadds/Wz9vg24ejh3GUcYOgg6a0pnGVcfP18+3w7c3TzdPY06u4q/r8+v///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABcALAAAAAAKAAoAAAUw4CVeDzOeFwCgIhFBBDtY1sAmtIIWFV0VJweNRhkZeoeDpWIQNSYBgSAgWYgQLGwIADs=','data:image/gif;base64,R0lGODlhCgAKALMLAHaRdnCTcHegd7C8sNTa1Ku4q9vg24GXgfr8+uDl4P///////wAAAAAAAAAAAAAAACH5BAEAAAsALAAAAAAKAAoAAAQfcMlJq12hIHKoSEqIdBIQnslknkoqfedIBQNikFduRQA7','http://web.archive.org/web/20150906203819im_/http://www.javascriptsource.com/miscellaneous/sorting.gif']; // Get the image used in the first row of the current column var sortColImage = td_element.getElementsByTagName('img')[0]; // If current image is 'asc.gif' or 'none.gif' (elements 1 and 2 of sortImages array) then this will // be a descending sort else it will be ascending - get new sort image icon and set sort order flag var sortAscending = false; var newSortColImage = ""; if (sortColImage.getAttribute('src').indexOf(sortImages[1])>-1 || sortColImage.getAttribute('src').indexOf(sortImages[2])>-1) { newSortColImage = sortImages[0]; sortAscending = false; } else { newSortColImage = sortImages[1]; sortAscending = true; } // Assign "SORTING" image icon (element 3 of sortImages array)) to current column title // (will replace with newSortColImage when sort completes) sortColImage.setAttribute('src',sortImages[3]); // Find which column was clicked by getting it's column position var indexCol = td_element.cellIndex; // Get the table element from the td element that was passed as a parameter to this function var table_element = td_element.parentNode; while (table_element.nodeName != "TABLE") { table_element = table_element.parentNode; } // Get all "tr" elements from the table and assign then to the Array "tr_elements" var tr_elements = table_element.getElementsByTagName('tr'); // Get all the images used in the first row then set them to 'none.gif' // (element 2 or sortImages array) except for the current column (all ready been changed) var allImg = tr_elements[0].getElementsByTagName('img'); for(var i=0;i<allImg.length;i++){ if(allImg[i]!=sortColImage){allImg[i].setAttribute('src',sortImages[2])} } // Some explantion of the basic concept of the following code before we // actually start. Essentially we are going to copy the current columns information // into an array to be sorted. We'll sort the column array then go back and use the information // we saved about the original row positions to re-order the entire table. // We are never really sorting more than a columns worth of data, which should keep the sorting fast. // Create a new array for holding row information var clonedRows = new Array() // Create a new array to store just the selected column values, not the whole row var originalCol = new Array(); // Now loop through all the data row elements // NOTE: Starting at row 1 because row 0 contains the column titles for (var i=1; i<tr_elements.length - ignoreLastLines; i++) { // "Clone" the tr element ie save a copy all of its attributes and values clonedRows[i]=tr_elements[i].cloneNode(true); // Text value of the selected column on this row var valueCol = getTextValue(tr_elements[i].cells[indexCol]); // Format text value for sorting depending on its type, ie Date, Currency, number, etc.. valueCol = FormatForType(valueCol); // Assign the column value AND the row number it was originally on in the table originalCol[i]=[valueCol,tr_elements[i].rowIndex]; } // Get rid of element "0" from this array. A value was never assigned to it because the first row // in the table just contained the column titles, which we did not bother to assign. originalCol.shift(); // Sort the column array returning the value of a sort into a new array sortCol = originalCol.sort(sortCompare); // If it was supposed to be an Ascending sort then reverse the order if (sortAscending) { sortCol.reverse(); } // Now take the values from the sorted column array and use that information to re-arrange // the order of the tr_elements in the table for (var i=1; i < tr_elements.length - ignoreLastLines; i++) { var old_row = sortCol[i-1][1]; var new_row = i; tr_elements[i].parentNode.replaceChild(clonedRows[old_row],tr_elements[new_row]); } // Format the table, making the rows alternating colors and highlight the sorted column makePretty(table_element,indexCol,ignoreLastLines); // Assign correct sort image icon to current column title sortColImage.setAttribute('src',newSortColImage); } // Function used by the sort routine to compare the current value in the array with the next one function sortCompare (currValue, nextValue) { // Since the elements of this array are actually arrays themselves, just sort // on the first element which contiains the value, not the second which contains // the original row position if ( currValue[0] == nextValue[0] ) return 0; if ( currValue[0] < nextValue[0] ) return -1; if ( currValue[0] > nextValue[0] ) return 1; } //----------------------------------------------------------------------------- // Functions to get and compare values during a sort. //----------------------------------------------------------------------------- // This code is necessary for browsers that don't reflect the DOM constants // (like IE). if (document.ELEMENT_NODE == null) { document.ELEMENT_NODE = 1; document.TEXT_NODE = 3; } function getTextValue(el) { var i; var s; // Find and concatenate the values of all text nodes contained within the // element. s = ""; for (i = 0; i < el.childNodes.length; i++) if (el.childNodes[i].nodeType == document.TEXT_NODE) s += el.childNodes[i].nodeValue; else if (el.childNodes[i].nodeType == document.ELEMENT_NODE && el.childNodes[i].tagName == "BR") s += " "; else // Use recursion to get text within sub-elements. s += getTextValue(el.childNodes[i]); return normalizeString(s); } // Regular expressions for normalizing white space. var whtSpEnds = new RegExp("^\\s*|\\s*$", "g"); var whtSpMult = new RegExp("\\s\\s+", "g"); function normalizeString(s) { s = s.replace(whtSpMult, " "); // Collapse any multiple whites space. s = s.replace(whtSpEnds, ""); // Remove leading or trailing white space. return s; } // Function used to modify values to make then sortable depending on the type of information function FormatForType(itm) { var sortValue = itm.toLowerCase(); // If the item matches a date pattern (MM/DD/YYYY or MM/DD/YY or M/DD/YYYY) if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/) || itm.match(/^\d\d[\/-]\d\d[\/-]\d\d$/) || itm.match(/^\d[\/-]\d\d[\/-]\d\d\d\d$/) ) { // Convert date to YYYYMMDD format for sort comparison purposes // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX var yr = -1; if (itm.length == 10) { sortValue = itm.substr(6,4)+itm.substr(0,2)+itm.substr(3,2); } else if (itm.length == 9) { sortValue = itm.substr(5,4)+"0" + itm.substr(0,1)+itm.substr(2,2); } else { yr = itm.substr(6,2); if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; } sortValue = yr+itm.substr(3,2)+itm.substr(0,2); } } // If the item matches a Percent patten (contains a percent sign) if (itm.match(/%/)) { // Replace anything that is not part of a number (decimal pt, neg sign, or 0 through 9) with an empty string. sortValue = itm.replace(/[^0-9.-]/g,''); sortValue = parseFloat(sortValue); } // If item starts with a "(" and ends with a ")" then remove them and put a negative sign in front if (itm.substr(0,1) == "(" & itm.substr(itm.length - 1,1) == ")") { itm = "-" + itm.substr(1,itm.length - 2); } // If the item matches a currency pattern (starts with a dollar or negative dollar sign) if (itm.match(/^[£$]|(^-)/)) { // Replace anything that is not part of a number (decimal pt, neg sign, or 0 through 9) with an empty string. sortValue = itm.replace(/[^0-9.-]/g,''); if (isNaN(sortValue)) { sortValue = 0; } else { sortValue = parseFloat(sortValue); } } // If the item matches a numeric pattern if (itm.match(/(\d*,\d*$)|(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/)) { // Replace anything that is not part of a number (decimal pt, neg sign, or 0 through 9) with an empty string. sortValue = itm.replace(/[^0-9.-]/g,''); // sortValue = sortValue.replace(/,/g,''); if (isNaN(sortValue)) { sortValue = 0; } else { sortValue = parseFloat(sortValue); } } return sortValue; } //----------------------------------------------------------------------------- // Functions to update the table appearance after a sort. //----------------------------------------------------------------------------- // Style class names. var rowClsNm = "alternateRow"; var colClsNm = "sortedColumn"; // Regular expressions for setting class names. var rowTest = new RegExp(rowClsNm, "gi"); var colTest = new RegExp(colClsNm, "gi"); function makePretty(tblEl, col, ignoreLastLines) { var i, j; var rowEl, cellEl; // Set style classes on each row to alternate their appearance. for (i = 1; i < tblEl.rows.length - ignoreLastLines; i++) { rowEl = tblEl.rows[i]; rowEl.className = rowEl.className.replace(rowTest, ""); if (i % 2 != 0) rowEl.className += " " + rowClsNm; rowEl.className = normalizeString(rowEl.className); // Set style classes on each column (other than the name column) to // highlight the one that was sorted. for (j = 0; j < tblEl.rows[i].cells.length; j++) { cellEl = rowEl.cells[j]; cellEl.className = cellEl.className.replace(colTest, ""); if (j == col) cellEl.className += " " + colClsNm; cellEl.className = normalizeString(cellEl.className); } } } // END Generic Table sort. // ================================================= // Function to scroll to top before sorting to fix an IE bug // Which repositions the header off the top of the screen // if you try to sort while scrolled to bottom. function GoTop() { document.getElementById('TableContainer').scrollTop = 0; } //]]> </script> </head> <body> <table cellpadding="0" cellspacing="0" border="0"> <tr><td> <div id="TableContainer" class="TableContainer" style="height:230px;"> <table class="scrollTable"> <thead class="fixedHeader headerFormat"> <tr> <td class="point" onclick="GoTop(); sortTable(this,1);" title="Sort"><b>NAME</b> <img src="data:image/gif;base64,R0lGODlhCgAKALMLAHaRdnCTcHegd7C8sNTa1Ku4q9vg24GXgfr8+uDl4P///////wAAAAAAAAAAAAAAACH5BAEAAAsALAAAAAAKAAoAAAQfcMlJq12hIHKoSEqIdBIQnslknkoqfedIBQNikFduRQA7" border="0"></td> <td class="point" onclick="GoTop(); sortTable(this,1);" title="Sort" align="right"><b>Amt</b> <img src="data:image/gif;base64,R0lGODlhCgAKALMLAHaRdnCTcHegd7C8sNTa1Ku4q9vg24GXgfr8+uDl4P///////wAAAAAAAAAAAAAAACH5BAEAAAsALAAAAAAKAAoAAAQfcMlJq12hIHKoSEqIdBIQnslknkoqfedIBQNikFduRQA7" border="0"></td> <td class="point" onclick="GoTop(); sortTable(this,1);" title="Sort" align="right"><b>Lvl</b> <img src="data:image/gif;base64,R0lGODlhCgAKALMLAHaRdnCTcHegd7C8sNTa1Ku4q9vg24GXgfr8+uDl4P///////wAAAAAAAAAAAAAAACH5BAEAAAsALAAAAAAKAAoAAAQfcMlJq12hIHKoSEqIdBIQnslknkoqfedIBQNikFduRQA7" border="0"></td> <td class="point" onclick="GoTop(); sortTable(this,1);" title="Sort" align="right"><b>Rank</b> <img src="data:image/gif;base64,R0lGODlhCgAKALMLAHaRdnCTcHegd7C8sNTa1Ku4q9vg24GXgfr8+uDl4P///////wAAAAAAAAAAAAAAACH5BAEAAAsALAAAAAAKAAoAAAQfcMlJq12hIHKoSEqIdBIQnslknkoqfedIBQNikFduRQA7" border="0"></td> <td class="point" onclick="GoTop(); sortTable(this,1);" title="Sort" align="right"><b>Position</b> <img src="data:image/gif;base64,R0lGODlhCgAKALMLAHaRdnCTcHegd7C8sNTa1Ku4q9vg24GXgfr8+uDl4P///////wAAAAAAAAAAAAAAACH5BAEAAAsALAAAAAAKAAoAAAQfcMlJq12hIHKoSEqIdBIQnslknkoqfedIBQNikFduRQA7" border="0"></td> <td class="point" onclick="GoTop(); sortTable(this,1);" title="Sort" align="right"><b>Date</b> <img src="data:image/gif;base64,R0lGODlhCgAKALMLAHaRdnCTcHegd7C8sNTa1Ku4q9vg24GXgfr8+uDl4P///////wAAAAAAAAAAAAAAACH5BAEAAAsALAAAAAAKAAoAAAQfcMlJq12hIHKoSEqIdBIQnslknkoqfedIBQNikFduRQA7" border="0"></td> </tr> </thead> <tbody class="scrollContent bodyFormat" style="height:200px;"> <tr class="alternateRow"> <td>Maha</td> <td align="right">$19,923.19</td> <td align="right">100</td> <td align="right">100</td> <td>Owner</td> <td align="right">01/02/2001</td> </tr> <tr> <td>Thrawl</td> <td align="right">$9,550</td> <td align="right">159</td> <td align="right">100%</td> <td>Co-Owner</td> <td align="right">11/07/2003</td> </tr> <tr class="alternateRow"> <td>Marhanen</td> <td align="right">$223.04</td> <td align="right">83</td> <td align="right">99%</td> <td>Banker</td> <td align="right">06/27/2006</td> </tr> <tr> <td>Peter</td> <td align="right">$121</td> <td align="right">567</td> <td align="right">23423%</td> <td>FishHead</td> <td align="right">06/06/2006</td> </tr> <tr class="alternateRow"> <td>Jones</td> <td align="right">$15</td> <td align="right">11</td> <td align="right">15%</td> <td>Bubba</td> <td align="right">10/27/2005</td> </tr> <tr> <td>Supa-De-Dupa</td> <td align="right">$145</td> <td align="right">91</td> <td align="right">32%</td> <td>momma</td> <td align="right">12/15/1996</td> </tr> <tr class="alternateRow"> <td>ClickClock</td> <td align="right">$1,213</td> <td align="right">23</td> <td align="right">1%</td> <td>Dada</td> <td align="right">1/30/1998</td> </tr> <tr> <td>Mrs. Robinson</td> <td align="right">$99</td> <td align="right">99</td> <td align="right">99%</td> <td>Wife</td> <td align="right">07/04/1963</td> </tr> <tr class="alternateRow"> <td>Maha</td> <td align="right">$19,923.19</td> <td align="right">100</td> <td align="right">100%</td> <td>Owner</td> <td align="right">01/02/2001</td> </tr> <tr> <td>Thrawl</td> <td align="right">$9,550</td> <td align="right">159</td> <td align="right">100%</td> <td>Co-Owner</td> <td align="right">11/07/2003</td> </tr> <tr class="alternateRow"> <td>Marhanen</td> <td align="right">$223.04</td> <td align="right">83</td> <td align="right">59%</td> <td>Banker</td> <td align="right">06/27/2006</td> </tr> <tr> <td>Peter</td> <td align="right">$121</td> <td align="right">567</td> <td align="right">534.23%</td> <td>FishHead</td> <td align="right">06/06/2006</td> </tr> <tr class="alternateRow"> <td>Jones</td> <td align="right">$15</td> <td align="right">11</td> <td align="right">15%</td> <td>Bubba</td> <td align="right">10/27/2005</td> </tr> <tr> <td>Supa-De-Dupa</td> <td align="right">$145</td> <td align="right">91</td> <td align="right">42%</td> <td>momma</td> <td align="right">12/15/1996</td> </tr> <tr class="alternateRow"> <td>ClickClock</td> <td align="right">$1,213</td> <td align="right">23</td> <td align="right">2%</td> <td>Dada</td> <td align="right">1/30/1998</td> </tr> <tr> <td>Mrs. Robinson</td> <td align="right">$99</td> <td align="right">99</td> <td align="right">(-10.42%)</td> <td>Wife</td> <td align="right">07/04/1963</td> </tr> <tr class="alternateRow"> <td>Maha</td> <td align="right">-$19,923.19</td> <td align="right">100</td> <td align="right">(-10.01%)</td> <td>Owner</td> <td align="right">01/02/2001</td> </tr> <tr> <td>Thrawl</td> <td align="right">$9,550</td> <td align="right">159</td> <td align="right">-10.20%</td> <td>Co-Owner</td> <td align="right">11/07/2003</td> </tr> <tr class="total"> <td><strong>TOTAL</strong>:</td> <td align="right"><strong>999999</strong></td> <td align="right"><strong>9999999</strong></td> <td align="right"><strong>99</strong></td> <td > </td> <td align="right"> </td> </tr> </tbody> </table> </div> </td></tr> </table> </body> </html> 

मैं एक साइट पर कुछ हफ्ते पहले भाग गया यह पहले कॉलम का एक कामयाब उदाहरण है, लेकिन यह Firefox के साथ संगत ब्राउज़र नहीं है। मैंने बहुत से जाँच नहीं की, लेकिन ऐसा लगता है कि यह केवल IE में काम करता है। इसमें कुछ नोट्स उपलब्ध कराए गए हैं जो आप पढ़ सकते हैं।

पहला स्तंभ लॉक करें: http://home.tampabay.rr.com/bmerkey/examples/locked-column-csv.html

मुझे बताएं कि क्या आपको टेबल शीर्षकों को भी लॉक करने के लिए जावास्क्रिप्ट की आवश्यकता है।

आप जावास्क्रिप्ट के बिना ऐसा कर सकते हैं

यह लिंक देखें: http://yonax73.blogspot.com/2014/09/tabla-con-cabecera-estatica-cuerpo-con.html

या लाइव डेमो: http://jsfiddle.net/yonatanalexis22/aeeme8mt/7/

 table{ border-spacing: 0; display: flex;/*Se ajuste dinamicamente al tamano del dispositivo**/ max-height: 40vh; /*El alto que necesitemos**/ overflow-y: auto; /**El scroll verticalmente cuando sea necesario*/ overflow-x: hidden;/*Sin scroll horizontal*/ table-layout: fixed;/**Forzamos a que las filas tenga el mismo ancho**/ width: 98vw; /*El ancho que necesitemos*/ border:1px solid gray;}