mirror of
https://github.com/Mottie/tablesorter.git
synced 2024-12-05 05:04:20 +00:00
361 lines
17 KiB
HTML
361 lines
17 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>jQuery plugin: Tablesorter 2.0 - Scroller Widget</title>
|
|
|
|
<!-- jQuery -->
|
|
<script src="js/jquery-1.4.4.min.js"></script>
|
|
|
|
<!-- Demo stuff -->
|
|
<link class="ui-theme" rel="stylesheet" href="css/jquery-ui.min.css">
|
|
<script src="js/jquery-ui.min.js"></script>
|
|
<link rel="stylesheet" href="css/jq.css">
|
|
<link href="css/prettify.css" rel="stylesheet">
|
|
<script src="js/prettify.js"></script>
|
|
<script src="js/docs.js"></script>
|
|
|
|
<!-- Tablesorter: theme -->
|
|
<link class="ui-theme" rel="stylesheet" href="css/jquery-ui.min.css">
|
|
<link class="ui-theme" rel="stylesheet" href="../css/theme.jui.css">
|
|
<link class="theme default" rel="stylesheet" href="../css/theme.default.css">
|
|
<link class="theme blue" rel="stylesheet" href="../css/theme.blue.css">
|
|
<link class="theme green" rel="stylesheet" href="../css/theme.green.css">
|
|
<link class="theme grey" rel="stylesheet" href="../css/theme.grey.css">
|
|
<link class="theme ice" rel="stylesheet" href="../css/theme.ice.css">
|
|
<link class="theme black-ice" rel="stylesheet" href="../css/theme.black-ice.css">
|
|
<link class="theme dark" rel="stylesheet" href="../css/theme.dark.css">
|
|
<link class="theme dropbox" rel="stylesheet" href="../css/theme.dropbox.css">
|
|
<link class="theme metro-dark" rel="stylesheet" href="../css/theme.metro-dark.css">
|
|
|
|
<!-- Tablesorter script: required -->
|
|
<script src="../js/jquery.tablesorter.js"></script>
|
|
<script src="../js/jquery.tablesorter.widgets.js"></script>
|
|
<script src="../js/widgets/widget-scroller.js"></script>
|
|
|
|
<script id="js">$(function(){
|
|
|
|
$('.tablesorter').tablesorter({
|
|
theme: 'jui',
|
|
// widthFixed: true, // <- now automatically set by the scroller widget
|
|
showProcessing: true,
|
|
headerTemplate : '{content} {icon}',
|
|
widgets: [ 'uitheme', 'zebra', 'filter', 'scroller' ],
|
|
widgetOptions : {
|
|
scroller_height : 300,
|
|
// scroll tbody to top after sorting
|
|
scroller_upAfterSort: true,
|
|
// pop table header into view while scrolling up the page
|
|
scroller_jumpToHeader: true,
|
|
// In tablesorter v2.19.0 the scroll bar width is auto-detected
|
|
// add a value here to override the auto-detected setting
|
|
scroller_barWidth : null
|
|
// scroll_idPrefix was removed in v2.18.0
|
|
// scroller_idPrefix : 's_'
|
|
}
|
|
});
|
|
|
|
});</script>
|
|
<script>
|
|
$(function() {
|
|
|
|
$('.options').tablesorter({
|
|
theme: 'jui',
|
|
headerTemplate : '{content} {icon}',
|
|
widthFixed: true,
|
|
widgets: ['uitheme','stickyHeaders']
|
|
});
|
|
|
|
$('link.theme').each(function(){ this.disabled = true; });
|
|
|
|
var $tbl,
|
|
$jth = $('#jth'),
|
|
$uas = $('#uas'),
|
|
themes = 'default blue green grey ice black-ice dark dropbox metro-dark',
|
|
i, o = '', t = themes.split(' ');
|
|
for (i = 0; i < t.length; i++) {
|
|
o += '<option value="' + t[i] + '">' + t[i] + '</option>';
|
|
}
|
|
|
|
$('select')
|
|
.append(o)
|
|
.val('jui')
|
|
.change(function(){
|
|
var theme = $(this).val().toLowerCase(),
|
|
name = theme === 'jui' ? 'ui-theme' : theme,
|
|
// ui-theme is added by the themeswitcher
|
|
files = $('link.theme').each(function(){
|
|
this.disabled = true;
|
|
});
|
|
files.filter('.' + name).each(function(){
|
|
this.disabled = false;
|
|
});
|
|
|
|
// refresh uitheme widget class names
|
|
$('.tablesorter').each(function(){
|
|
if (this.config) {
|
|
this.config.theme = theme === 'black-ice' ? 'blackice' : theme;
|
|
}
|
|
});
|
|
$('table').trigger('applyWidgets');
|
|
|
|
// make sure columns align
|
|
$(window).trigger('resize');
|
|
}).change();
|
|
|
|
$tbl = $('.tablesorter-scroller-table table');
|
|
$('button').click(function(){
|
|
var jth = $jth.text() === 'true',
|
|
uas = $uas.text() === 'true';
|
|
if (this.id === 'jthb') {
|
|
jth = !jth;
|
|
} else {
|
|
uas = !uas;
|
|
}
|
|
$tbl.each(function(){
|
|
this.config.widgetOptions.scroller_jumpToHeader = jth;
|
|
this.config.widgetOptions.scroller_upAfterSort = uas;
|
|
$jth.html(jth + '');
|
|
$uas.html(uas + '');
|
|
});
|
|
return false;
|
|
});
|
|
|
|
});
|
|
</script>
|
|
</head>
|
|
<body>
|
|
|
|
<div id="banner">
|
|
<h1>table<em>sorter</em></h1>
|
|
<h2>Scroller Widget</h2>
|
|
<h3>Flexible client-side table sorting</h3>
|
|
<a href="index.html">Back to documentation</a>
|
|
</div>
|
|
|
|
<div id="main">
|
|
|
|
<p></p>
|
|
<br>
|
|
<div id="root" class="accordion">
|
|
|
|
<h3><a href="#">Notes</a></h3>
|
|
<div>
|
|
<ul>
|
|
<li>In <span class="version">v2.21.1</span>, columns now line up, especially while scrolling horizontally. It may not be pixel perfect, but it looks pretty good if table css "box-sizing" is set to "border-box".</li>
|
|
<li>In <span class="version">v2.21.0</span>
|
|
<ul>
|
|
<li>This widget was updated to include the <code>tfoot</code> rows.</li>
|
|
<li>To maintain the column widths across all copied tables:
|
|
<ul>
|
|
<li>The <code>widthFixed</code> options is now forcibly set to <code>true</code>; I apologize if this causes any inconvience.</li>
|
|
<li>This option adds a <code><colgroup></code> containing percentage width <code><col></code> elements to each section of the scroller.</li>
|
|
<li>If this option does cause issues, use css to set each column width as a percentage.</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>In <span class="version">v2.17+</span>
|
|
<ul>
|
|
<li>The scroller widget will now work properly with predefined column widths.</li>
|
|
<li>Shrinking the browser window will now hide the header overflow.</li>
|
|
<li>Horizontal scrolling of the table body will now properly horizontally scroll the header.</li>
|
|
<li>Changed the default scroll bar width from <code>17</code> to <code>18</code>.</li>
|
|
<li>Added <code>scroller_upAfterSort</code> option.</li>
|
|
</ul>
|
|
</li>
|
|
<li>This widget can not be applied to the original plugin and requires jQuery version 1.4+ to function properly; if you need to make it work with older versions of jQuery and the plugin, please use <a href="http://tconnell.com/samples/scroller/">this version</a> of the widget.</li>
|
|
<li>This widget was originally written by <a href="http://tconnell.com/samples/scroller/">Connell & Associates, Inc.</a> and is dual-licensed under the MIT and GPL licenses. It has been modified to work with tablesorter version 2.9+.</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<h3><a href="#">Options</a></h3>
|
|
<div>
|
|
<h4>Filter widget defaults (added inside of tablesorter <code>widgetOptions</code>)</h4>
|
|
<div>
|
|
<span class="label label-info">TIP!</span> Click on the link in the function column to reveal full details (or <a href="#" class="toggleAll">toggle</a>|<a href="#" class="showAll">show</a>|<a href="#" class="hideAll">hide</a> all) or double click to update the browser location.
|
|
</div>
|
|
<table class="options tablesorter-jui" data-sortlist="[[0,0]]">
|
|
<thead>
|
|
<tr><th>Option</th><th class="defaults">Default</th><th class="sorter-false">Description</th></tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
<tr id="scroller-height">
|
|
<td><span class="permalink">scroller_height</span></td>
|
|
<td>300</td>
|
|
<td>Set the height of the scroll window in pixels.</td>
|
|
</tr>
|
|
|
|
<tr id="scroller-bar-width">
|
|
<td><a href="#" class="permalink">scroller_barWidth</a></td>
|
|
<td>null</td>
|
|
<td>Set the width of the scroll bar in pixels (<span class="version">v2.19.0</span>)
|
|
<div class="collapsible">
|
|
<br>
|
|
As of <span class="version">v2.19.0</span>, this option's default was changed to <code>null</code> because internal code was added to detect the scroll bar width which changes dramatically depending on the browser window zoom level.<br>
|
|
<br>
|
|
If you are using a custom scroll bar plugin, this option will still accept a scroll bar width value which overrides the scroll bar width auto-detection.
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr id="scroller-id-prefix">
|
|
<td><a href="#" class="permalink alert">scroller_idPrefix</a></td>
|
|
<td>"s_"</td>
|
|
<td>This option contains a prefix string which is added to a random number (<span class="alert">Removed</span>).
|
|
<div class="collapsible">
|
|
<br>
|
|
This option was been completely removed in <span class="version alert">v2.18.0</span> as the id is now obtained from the unique namespace.
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr id="scroller-up-after-sort">
|
|
<td><a href="#" class="permalink">scroller_upAfterSort</a></td>
|
|
<td>true</td>
|
|
<td>
|
|
<div class="collapsible">
|
|
<br>
|
|
When <code>true</code>, the scroller automatically scrolls the inner window back to the top after sorting.<br>
|
|
<br>
|
|
Set this option to <code>false</code> to prevent this behaviour, or to stop the window from scrolling after interacting with a table cell (e.g. clicking on a checkbox); new in <span class="version">v2.17.3</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr id="scroller-jump-to-header">
|
|
<td><a href="#" class="permalink">scroller_jumpToHeader</a></td>
|
|
<td>true</td>
|
|
<td>
|
|
<div class="collapsible">
|
|
<br>
|
|
When <code>true</code>, this option makes the table header jump into view when the table body is not scolled to the top and while scrolling up the page. It's not perfect, but it works. Disable it as desired.<br>
|
|
<br>
|
|
<span class="remark">*</span> <em>To see the difference, toggle the button in the demo below, then scroll down & up the page using a mouse wheel with the cursor at the horizontal center of the page and about 100 pixels from the top, so the cursor is within the table body.</em>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<h1>Javascript</h1>
|
|
<div id="javascript">
|
|
<pre class="prettyprint lang-javascript"></pre>
|
|
</div>
|
|
|
|
<h1>Demo</h1>
|
|
Choose Theme:
|
|
<select>
|
|
<option value="jui">Jquery UI</option>
|
|
</select><br>
|
|
<br>
|
|
<button id="jthb" type="button">Toggle</button> scroller_jumpToHeader : <span id="jth">true</span> (see the note above)<span class="remark">*</span>
|
|
<br>
|
|
<button type="button">Toggle</button> scroller_upAfterSort : <span id="uas">true</span>
|
|
<p></p>
|
|
|
|
<table class="tablesorter">
|
|
<thead>
|
|
<tr>
|
|
<th class="name">Name</th>
|
|
<th class="major">Major</th><th>Sex</th>
|
|
<th class="english">English</th>
|
|
<th class="japanese">Japanese</th>
|
|
<th class="calculus">Calculus</th>
|
|
<th class="geometry filter-false sorter-false">Geometry</th>
|
|
</tr>
|
|
</thead>
|
|
<tfoot>
|
|
<tr><th>Name</th><th>Major</th><th>Sex</th><th>English</th><th>Japanese</th><th>Calculus</th><th>Geometry</th></tr>
|
|
</tfoot>
|
|
<tbody>
|
|
<tr><td>Student01</td><td>Languages</td><td>male</td><td>80</td><td>70</td><td>75</td><td>80</td></tr>
|
|
<tr><td>Student02</td><td>Mathematics</td><td>male</td><td>90</td><td>88</td><td>100</td><td>90</td></tr>
|
|
<tr><td>Student03</td><td>Languages</td><td>female</td><td>85</td><td>95</td><td>80</td><td>85</td></tr>
|
|
<tr><td>Student04</td><td>Languages</td><td>male</td><td>60</td><td>55</td><td>100</td><td>100</td></tr>
|
|
<tr><td>Student05</td><td>Languages</td><td>female</td><td>68</td><td>80</td><td>95</td><td>80</td></tr>
|
|
<tr><td>Student06</td><td>Mathematics</td><td>male</td><td>100</td><td>99</td><td>100</td><td>90</td></tr>
|
|
<tr><td>Student07</td><td>Mathematics</td><td>male</td><td>85</td><td>68</td><td>90</td><td>90</td></tr>
|
|
<tr><td>Student08</td><td>Languages</td><td>male</td><td>100</td><td>90</td><td>90</td><td>85</td></tr>
|
|
<tr><td>Student09</td><td>Mathematics</td><td>male</td><td>80</td><td>50</td><td>65</td><td>75</td></tr>
|
|
<tr><td>Student10</td><td>Languages</td><td>male</td><td>85</td><td>100</td><td>100</td><td>90</td></tr>
|
|
<tr><td>Student11</td><td>Languages</td><td>male</td><td>86</td><td>85</td><td>100</td><td>100</td></tr>
|
|
<tr><td>Student12</td><td>Mathematics</td><td>female</td><td>100</td><td>75</td><td>70</td><td>85</td></tr>
|
|
<tr><td>Student13</td><td>Languages</td><td>female</td><td>100</td><td>80</td><td>100</td><td>90</td></tr>
|
|
<tr><td>Student14</td><td>Languages</td><td>female</td><td>50</td><td>45</td><td>55</td><td>90</td></tr>
|
|
<tr><td>Student15</td><td>Languages</td><td>male</td><td>95</td><td>35</td><td>100</td><td>90</td></tr>
|
|
<tr><td>Student16</td><td>Languages</td><td>female</td><td>100</td><td>50</td><td>30</td><td>70</td></tr>
|
|
<tr><td>Student17</td><td>Languages</td><td>female</td><td>80</td><td>100</td><td>55</td><td>65</td></tr>
|
|
<tr><td>Student18</td><td>Mathematics</td><td>male</td><td>30</td><td>49</td><td>55</td><td>75</td></tr>
|
|
<tr><td>Student19</td><td>Languages</td><td>male</td><td>68</td><td>90</td><td>88</td><td>70</td></tr>
|
|
<tr><td>Student20</td><td>Mathematics</td><td>male</td><td>40</td><td>45</td><td>40</td><td>80</td></tr>
|
|
<tr><td>Student21</td><td>Languages</td><td>male</td><td>50</td><td>45</td><td>100</td><td>100</td></tr>
|
|
<tr><td>Student22</td><td>Mathematics</td><td>male</td><td>100</td><td>99</td><td>100</td><td>90</td></tr>
|
|
<tr><td>Student23</td><td>Languages</td><td>female</td><td>85</td><td>80</td><td>80</td><td>80</td></tr>
|
|
<tr><td>student23</td><td>Mathematics</td><td>male</td><td>82</td><td>77</td><td>0</td><td>79</td></tr>
|
|
<tr><td>student24</td><td>Languages</td><td>female</td><td>100</td><td>91</td><td>13</td><td>82</td></tr>
|
|
<tr><td>student25</td><td>Mathematics</td><td>male</td><td>22</td><td>96</td><td>82</td><td>53</td></tr>
|
|
<tr><td>student26</td><td>Languages</td><td>female</td><td>37</td><td>29</td><td>56</td><td>59</td></tr>
|
|
<tr><td>student27</td><td>Mathematics</td><td>male</td><td>86</td><td>82</td><td>69</td><td>23</td></tr>
|
|
<tr><td>student28</td><td>Languages</td><td>female</td><td>44</td><td>25</td><td>43</td><td>1</td></tr>
|
|
<tr><td>student29</td><td>Mathematics</td><td>male</td><td>77</td><td>47</td><td>22</td><td>38</td></tr>
|
|
<tr><td>student30</td><td>Languages</td><td>female</td><td>19</td><td>35</td><td>23</td><td>10</td></tr>
|
|
<tr><td>student31</td><td>Mathematics</td><td>male</td><td>90</td><td>27</td><td>17</td><td>50</td></tr>
|
|
<tr><td>student32</td><td>Languages</td><td>female</td><td>60</td><td>75</td><td>33</td><td>38</td></tr>
|
|
<tr><td>student33</td><td>Mathematics</td><td>male</td><td>4</td><td>31</td><td>37</td><td>15</td></tr>
|
|
<tr><td>student34</td><td>Languages</td><td>female</td><td>77</td><td>97</td><td>81</td><td>44</td></tr>
|
|
<tr><td>student35</td><td>Mathematics</td><td>male</td><td>5</td><td>81</td><td>51</td><td>95</td></tr>
|
|
<tr><td>student36</td><td>Languages</td><td>female</td><td>70</td><td>61</td><td>70</td><td>94</td></tr>
|
|
<tr><td>student37</td><td>Mathematics</td><td>male</td><td>60</td><td>3</td><td>61</td><td>84</td></tr>
|
|
<tr><td>student38</td><td>Languages</td><td>female</td><td>63</td><td>39</td><td>0</td><td>11</td></tr>
|
|
<tr><td>student39</td><td>Mathematics</td><td>male</td><td>50</td><td>46</td><td>32</td><td>38</td></tr>
|
|
<tr><td>student40</td><td>Languages</td><td>female</td><td>51</td><td>75</td><td>25</td><td>3</td></tr>
|
|
<tr><td>student41</td><td>Mathematics</td><td>male</td><td>43</td><td>34</td><td>28</td><td>78</td></tr>
|
|
<tr><td>student42</td><td>Languages</td><td>female</td><td>11</td><td>89</td><td>60</td><td>95</td></tr>
|
|
<tr><td>student43</td><td>Mathematics</td><td>male</td><td>48</td><td>92</td><td>18</td><td>88</td></tr>
|
|
<tr><td>student44</td><td>Languages</td><td>female</td><td>82</td><td>2</td><td>59</td><td>73</td></tr>
|
|
<tr><td>student45</td><td>Mathematics</td><td>male</td><td>91</td><td>73</td><td>37</td><td>39</td></tr>
|
|
<tr><td>student46</td><td>Languages</td><td>female</td><td>4</td><td>8</td><td>12</td><td>10</td></tr>
|
|
<tr><td>student47</td><td>Mathematics</td><td>male</td><td>89</td><td>10</td><td>6</td><td>11</td></tr>
|
|
<tr><td>student48</td><td>Languages</td><td>female</td><td>90</td><td>32</td><td>21</td><td>18</td></tr>
|
|
<tr><td>student49</td><td>Mathematics</td><td>male</td><td>42</td><td>49</td><td>49</td><td>72</td></tr>
|
|
<tr><td>student50</td><td>Languages</td><td>female</td><td>56</td><td>37</td><td>67</td><td>54</td></tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<div class="narrow-block">
|
|
<table class="tablesorter">
|
|
<thead>
|
|
<tr><th>Account #</th><th>First Name</th><th>Last Name</th><th>Age</th><th>Total</th><th>Discount</th><th>Diff</th></tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr><td>A43</td><td>Peter</td><td>Parker</td><td>28</td><td>9.99</td><td>20.3%</td><td>+3</td></tr>
|
|
<tr><td>A255</td><td>John</td><td>Hood</td><td>33</td><td>19.99</td><td>25.1%</td><td>-7</td></tr>
|
|
<tr><td>A33</td><td>Clark</td><td>Kent</td><td>18</td><td>15.49</td><td>44.2%</td><td>-13</td></tr>
|
|
<tr><td>A11</td><td>Bruce</td><td>Almighty</td><td>45</td><td>153.19</td><td>44%</td><td>+19</td></tr>
|
|
<tr><td>A102</td><td>Bruce</td><td>Evans</td><td>56</td><td>153.19</td><td>23%</td><td>+9</td></tr>
|
|
<tr><td>A23</td><td>Mike</td><td>Peters</td><td>22</td><td>5.69</td><td>20.3%</td><td>+2</td></tr>
|
|
<tr><td>A55</td><td>Leslie</td><td>Kent</td><td>33</td><td>15.99</td><td>25.1%</td><td>-3</td></tr>
|
|
<tr><td>A3</td><td>Frank</td><td>Mint</td><td>44</td><td>12.59</td><td>44.2%</td><td>-12</td></tr>
|
|
<tr><td>A21</td><td>Joe</td><td>Thomas</td><td>45</td><td>15.25</td><td>44%</td><td>+12</td></tr>
|
|
<tr><td>A12</td><td>Tess</td><td>Evans</td><td>66</td><td>13.59</td><td>23%</td><td>+4</td></tr>
|
|
<tr><td>A21</td><td>Peter</td><td>Dunn</td><td>12</td><td>2.99</td><td>21.1%</td><td>+2</td></tr>
|
|
<tr><td>A33</td><td>Harry</td><td>Jones</td><td>13</td><td>19.49</td><td>22.2%</td><td>-6</td></tr>
|
|
<tr><td>A13</td><td>John</td><td>James</td><td>16</td><td>13.89</td><td>42.1%</td><td>-13</td></tr>
|
|
<tr><td>A71</td><td>Nick</td><td>Parker</td><td>45</td><td>13.89</td><td>44%</td><td>+29</td></tr>
|
|
<tr><td>A21</td><td>Charles</td><td>Dunn</td><td>19</td><td>15.49</td><td>22%</td><td>+3</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="spacer"></div>
|
|
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|