mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
reverted r2179 (demos: removed Slider 'Simple scrollbar' and Tabs 'Simple manipulation' for now as both have issues in Safari) restoring broken demos to trunk so they can be worked on for the next release (1.7.1)
This commit is contained in:
parent
f291a81311
commit
c701c7126c
@ -18,6 +18,7 @@
|
||||
<li><a href="range-vertical.html">Vertical range slider</a></li>
|
||||
<li><a href="multiple-vertical.html">Multiple sliders</a></li>
|
||||
<li><a href="colorpicker.html">Simple colorpicker</a></li>
|
||||
<li><a href="side-scroll.html">Simple scrollbar</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
135
demos/slider/side-scroll.html
Normal file
135
demos/slider/side-scroll.html
Normal file
@ -0,0 +1,135 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>jQuery UI Slider - Slider scrollbar</title>
|
||||
<link type="text/css" href="../../themes/base/ui.all.css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="../../jquery-1.3.2.js"></script>
|
||||
<script type="text/javascript" src="../../ui/ui.core.js"></script>
|
||||
<script type="text/javascript" src="../../ui/ui.slider.js"></script>
|
||||
<link type="text/css" href="../demos.css" rel="stylesheet" />
|
||||
<style type="text/css">
|
||||
#demo-frame > div.demo { padding: 10px !important; }
|
||||
.scroll-pane { overflow: auto; width: 99%; float:left; }
|
||||
.scroll-content { width: 2440px; float: left; }
|
||||
.scroll-content-item { width: 100px; height: 100px; float: left; margin: 10px; font-size: 3em; line-height: 96px; text-align: center; }
|
||||
* html .scroll-content-item { display: inline; } /* IE6 float double margin bug */
|
||||
.scroll-bar-wrap { clear: left; padding: 0 4px 0 2px; margin: 0 -1px -1px -1px; }
|
||||
.scroll-bar-wrap .ui-slider { background: none; border:0; height: 2em; margin: 0 auto; }
|
||||
.scroll-bar-wrap .ui-handle-helper-parent { position: relative; width: 100%; height: 100%; margin: 0 auto; }
|
||||
.scroll-bar-wrap .ui-slider-handle { top:.2em; height: 1.5em; }
|
||||
.scroll-bar-wrap .ui-slider-handle .ui-icon { margin: -8px auto 0; position: relative; top: 50%; }
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
//scrollpane parts
|
||||
var scrollPane = $('.scroll-pane');
|
||||
var scrollContent = $('.scroll-content');
|
||||
|
||||
//build slider
|
||||
var scrollbar = $(".scroll-bar").slider({
|
||||
slide:function(e, ui){
|
||||
if( scrollContent.width() > scrollPane.width() ){ scrollContent.css('margin-left', Math.round( ui.value / 100 * ( scrollPane.width() - scrollContent.width() )) + 'px'); }
|
||||
else { scrollContent.css('margin-left', 0); }
|
||||
}
|
||||
});
|
||||
|
||||
//append icon to handle
|
||||
var handleHelper = scrollbar.find('.ui-slider-handle')
|
||||
.mousedown(function(){
|
||||
scrollbar.width( handleHelper.width() );
|
||||
})
|
||||
.mouseup(function(){
|
||||
scrollbar.width( '100%' );
|
||||
})
|
||||
.append('<span class="ui-icon ui-icon-grip-dotted-vertical"></span>')
|
||||
.wrap('<div class="ui-handle-helper-parent"></div>').parent();
|
||||
|
||||
//change overflow to hidden now that slider handles the scrolling
|
||||
scrollPane.css('overflow','hidden');
|
||||
|
||||
//size scrollbar and handle proportionally to scroll distance
|
||||
function sizeScrollbar(){
|
||||
var remainder = scrollContent.width() - scrollPane.width();
|
||||
var proportion = remainder / scrollContent.width();
|
||||
var handleSize = scrollPane.width() - (proportion * scrollPane.width());
|
||||
scrollbar.find('.ui-slider-handle').css({
|
||||
width: handleSize,
|
||||
'margin-left': -handleSize/2
|
||||
});
|
||||
handleHelper.width('').width( scrollbar.width() - handleSize);
|
||||
}
|
||||
|
||||
//reset slider value based on scroll content position
|
||||
function resetValue(){
|
||||
var remainder = scrollPane.width() - scrollContent.width();
|
||||
var leftVal = scrollContent.css('margin-left') == 'auto' ? 0 : parseInt(scrollContent.css('margin-left'));
|
||||
var percentage = Math.round(leftVal / remainder * 100);
|
||||
scrollbar.slider("value", percentage);
|
||||
}
|
||||
//if the slider is 100% and window gets larger, reveal content
|
||||
function reflowContent(){
|
||||
var showing = scrollContent.width() + parseInt( scrollContent.css('margin-left') );
|
||||
var gap = scrollPane.width() - showing;
|
||||
if(gap > 0){
|
||||
scrollContent.css('margin-left', parseInt( scrollContent.css('margin-left') ) + gap);
|
||||
}
|
||||
}
|
||||
|
||||
//change handle position on window resize
|
||||
$(window)
|
||||
.resize(function(){
|
||||
resetValue();
|
||||
sizeScrollbar();
|
||||
reflowContent();
|
||||
});
|
||||
//init scrollbar size
|
||||
setTimeout(sizeScrollbar,10);//safari wants a timeout
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="demo">
|
||||
|
||||
<div class="scroll-pane ui-widget ui-widget-header ui-corner-all">
|
||||
<div class="scroll-content">
|
||||
<div class="scroll-content-item ui-widget-header">1</div>
|
||||
<div class="scroll-content-item ui-widget-header">2</div>
|
||||
<div class="scroll-content-item ui-widget-header">3</div>
|
||||
<div class="scroll-content-item ui-widget-header">4</div>
|
||||
<div class="scroll-content-item ui-widget-header">5</div>
|
||||
<div class="scroll-content-item ui-widget-header">6</div>
|
||||
<div class="scroll-content-item ui-widget-header">7</div>
|
||||
<div class="scroll-content-item ui-widget-header">8</div>
|
||||
<div class="scroll-content-item ui-widget-header">9</div>
|
||||
<div class="scroll-content-item ui-widget-header">10</div>
|
||||
<div class="scroll-content-item ui-widget-header">11</div>
|
||||
<div class="scroll-content-item ui-widget-header">12</div>
|
||||
<div class="scroll-content-item ui-widget-header">13</div>
|
||||
<div class="scroll-content-item ui-widget-header">14</div>
|
||||
<div class="scroll-content-item ui-widget-header">15</div>
|
||||
<div class="scroll-content-item ui-widget-header">16</div>
|
||||
<div class="scroll-content-item ui-widget-header">17</div>
|
||||
<div class="scroll-content-item ui-widget-header">18</div>
|
||||
<div class="scroll-content-item ui-widget-header">19</div>
|
||||
<div class="scroll-content-item ui-widget-header">20</div>
|
||||
</div>
|
||||
<div class="scroll-bar-wrap ui-widget-content ui-corner-bottom">
|
||||
<div class="scroll-bar"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div><!-- End demo -->
|
||||
|
||||
|
||||
|
||||
<div class="demo-description">
|
||||
|
||||
<p>Use a slider to manipulate the positioning of content on the page. In this case, it acts as a scrollbar with the potential to capture values if needed.</p>
|
||||
|
||||
</div><!-- End demo-description -->
|
||||
|
||||
</body>
|
||||
</html>
|
@ -14,6 +14,7 @@
|
||||
<li><a href="mouseover.html">Open on mouseover</a></li>
|
||||
<li><a href="collapsible.html">Collapse content</a></li>
|
||||
<li><a href="sortable.html">Sortable</a></li>
|
||||
<li><a href="manipulation.html">Simple manipulation</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
119
demos/tabs/manipulation.html
Normal file
119
demos/tabs/manipulation.html
Normal file
@ -0,0 +1,119 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>jQuery UI Tabs - Simple manipulation</title>
|
||||
<link type="text/css" href="../../themes/base/ui.all.css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="../../jquery-1.3.2.js"></script>
|
||||
<script type="text/javascript" src="../../ui/ui.core.js"></script>
|
||||
<script type="text/javascript" src="../../ui/ui.tabs.js"></script>
|
||||
<script type="text/javascript" src="../../ui/ui.dialog.js"></script>
|
||||
<link type="text/css" href="../demos.css" rel="stylesheet" />
|
||||
<style type="text/css">
|
||||
#dialog label, #dialog input { display:block; }
|
||||
#dialog label { margin-top: 0.5em; }
|
||||
#dialog input, #dialog textarea { width: 95%; }
|
||||
#tabs { margin-top: 1em; }
|
||||
#tabs li .ui-icon-close { float: left; margin: 0.4em 0.2em 0 0; cursor: pointer; }
|
||||
#add_tab { cursor: pointer; }
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
var $tab_title_input = $('#tab_title'), $tab_content_input = $('#tab_content');
|
||||
var tab_counter = 2;
|
||||
|
||||
// tabs init with a custom tab template and an "add" callback filling in the content
|
||||
var $tabs = $('#tabs').tabs({
|
||||
tabTemplate: '<li><a href="#{href}">#{label}</a> <span class="ui-icon ui-icon-close">Remove Tab</span></li>',
|
||||
add: function(event, ui) {
|
||||
var tab_content = $tab_content_input.val() || 'Tab '+tab_counter+' content.';
|
||||
$(ui.panel).append('<p>'+tab_content+'</p>');
|
||||
}
|
||||
});
|
||||
|
||||
// modal dialog init: custom buttons and a "close" callback reseting the form inside
|
||||
var $dialog = $('#dialog').dialog({
|
||||
autoOpen: false,
|
||||
modal: true,
|
||||
buttons: {
|
||||
'Add': function() {
|
||||
addTab();
|
||||
$(this).dialog('close');
|
||||
},
|
||||
'Cancel': function() {
|
||||
$(this).dialog('close');
|
||||
}
|
||||
},
|
||||
open: function() {
|
||||
$tab_title_input.focus();
|
||||
},
|
||||
close: function() {
|
||||
$form[0].reset();
|
||||
}
|
||||
});
|
||||
|
||||
// addTab form: calls addTab function on submit and closes the dialog
|
||||
var $form = $('form',$dialog).submit(function() {
|
||||
addTab();
|
||||
$dialog.dialog('close');
|
||||
return false;
|
||||
});
|
||||
|
||||
// actual addTab function: adds new tab using the title input from the form above
|
||||
function addTab() {
|
||||
var tab_title = $tab_title_input.val() || 'Tab '+tab_counter;
|
||||
$tabs.tabs('add', '#tabs-'+tab_counter, tab_title);
|
||||
tab_counter++;
|
||||
}
|
||||
|
||||
// addTab button: just opens the dialog
|
||||
$('#add_tab').click(function() {
|
||||
$dialog.dialog('open');
|
||||
}).hover(function() {
|
||||
$(this).addClass("ui-state-hover");
|
||||
}, function() {
|
||||
$(this).removeClass("ui-state-hover");
|
||||
});
|
||||
|
||||
// close icon: removing the tab on click
|
||||
// note: closable tabs gonna be an option in the future - see http://dev.jqueryui.com/ticket/3924
|
||||
$('#tabs span.ui-icon-close').live('click', function() {
|
||||
var index = $('li',$tabs).index($(this).parent());
|
||||
$tabs.tabs('remove', index);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="demo">
|
||||
|
||||
<div id="dialog" title="Tab data">
|
||||
<form>
|
||||
<fieldset class="ui-helper-reset">
|
||||
<label for="tab_title">Title</label>
|
||||
<input type="text" name="tab_title" id="tab_title" value="" class="ui-widget-content ui-corner-all" />
|
||||
<label for="tab_content">Content</label>
|
||||
<textarea name="tab_content" id="tab_content" class="ui-widget-content ui-corner-all"></textarea>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<button id="add_tab" class="ui-button ui-state-default ui-corner-all">Add Tab</button>
|
||||
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
<li><a href="#tabs-1">Nunc tincidunt</a> <span class="ui-icon ui-icon-close">Remove Tab</span></li>
|
||||
</ul>
|
||||
<div id="tabs-1">
|
||||
<p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- End demo -->
|
||||
|
||||
<div class="demo-description">
|
||||
<p>Simple tabs adding and removing.</p>
|
||||
</div><!-- End demo-description -->
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user