update YUI to 2.8.0r4
This commit is contained in:
parent
27f474ec64
commit
2d28e0c0ba
2007 changed files with 344487 additions and 210070 deletions
|
|
@ -0,0 +1,223 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Using deferred loading of items and Carousel's built-in paginator</title>
|
||||
|
||||
<style type="text/css">
|
||||
/*margin and padding on body element
|
||||
can introduce errors in determining
|
||||
element position and are not recommended;
|
||||
we turn them off as a foundation for YUI
|
||||
CSS treatments. */
|
||||
body {
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="../../build/fonts/fonts-min.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../build/carousel/assets/skins/sam/carousel.css" />
|
||||
<script type="text/javascript" src="../../build/yahoo-dom-event/yahoo-dom-event.js"></script>
|
||||
<script type="text/javascript" src="../../build/connection/connection-min.js"></script>
|
||||
<script type="text/javascript" src="../../build/element/element-min.js"></script>
|
||||
<script type="text/javascript" src="../../build/carousel/carousel-min.js"></script>
|
||||
|
||||
|
||||
<!--begin custom header content for this example-->
|
||||
<style type="text/css">
|
||||
/* Style the spotlight container */
|
||||
#spotlight {
|
||||
border: 1px solid #ccc;
|
||||
height: 240px;
|
||||
margin: 10px auto;
|
||||
padding: 1px;
|
||||
text-align: center;
|
||||
width: 240px;
|
||||
}
|
||||
|
||||
#carousel {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#container {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/* Always be sure to give your carousel items a width and a height */
|
||||
.yui-carousel-element li {
|
||||
height: 75px;
|
||||
width: 75px;
|
||||
}
|
||||
|
||||
/* Since for this example, we display more than the default 5 page buttons,
|
||||
by setting MAX_PAGER_BUTTONS, we increase the offset margin for IE6/7, to
|
||||
make space for the 6th button */
|
||||
.yui-skin-sam .yui-carousel-nav ul {
|
||||
*margin-left: -190px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!--end custom header content for this example-->
|
||||
|
||||
</head>
|
||||
|
||||
<body class="yui-skin-sam">
|
||||
|
||||
|
||||
<h1>Using deferred loading of items and Carousel's built-in paginator</h1>
|
||||
|
||||
<div class="exampleIntro">
|
||||
<p>This example extends <a href="http://developer.yahoo.com/yui/examples/carousel/csl_dynload2.html">Using Ajax for deferred loading of items</a> and demonstrates
|
||||
how to support <a href="http://developer.yahoo.com/yui/carousel/">YUI Carousel Control's</a> built-in paginator via the <code>replaceItem</code> method.</p>
|
||||
</div>
|
||||
|
||||
<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
|
||||
|
||||
<!-- The Carousel container -->
|
||||
<div id="container">
|
||||
<ol id="carousel"></ol>
|
||||
</div>
|
||||
<!-- The spotlight container -->
|
||||
<div id="spotlight"></div>
|
||||
<script>
|
||||
var curpos, batchSize, items = [];
|
||||
|
||||
function getImageTag(img) {
|
||||
return "<img src=\"" + img + "\" height=\"75\" width=\"75\">";
|
||||
}
|
||||
|
||||
function getImages(o) {
|
||||
var carousel = this,
|
||||
revealEnabled = carousel.get("revealAmount"),
|
||||
numVisible = carousel.get("numVisible"),
|
||||
curpos = o.num > numVisible + (revealEnabled?1:0) ? o.last - (o.last % numVisible) : o.first;
|
||||
|
||||
YAHOO.util.Connect.asyncRequest("GET", "assets/php/getimages2.php"+ "?r="+Math.random()+"&batchSize="+ batchSize + "&pos=" + curpos, {
|
||||
success: function (o) {
|
||||
var i = curpos,
|
||||
j = 0,
|
||||
r = eval("(" + o.responseText + ")"),
|
||||
item,
|
||||
loadingItems;
|
||||
|
||||
curpos += r.length;
|
||||
|
||||
while (i < curpos) {
|
||||
|
||||
if (r[j]) {
|
||||
|
||||
item = getImageTag(r[j]);
|
||||
|
||||
loadingItems = carousel.getLoadingItems();
|
||||
|
||||
if(loadingItems[i]){
|
||||
// We use replaceItem to swap out a placeholder loading item, which allows for backwards navigation.
|
||||
carousel.replaceItem(item,i);
|
||||
} else {
|
||||
carousel.addItem(item);
|
||||
}
|
||||
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
j++;
|
||||
}
|
||||
|
||||
carousel.set("selectedItem", carousel.get("firstVisible"));
|
||||
},
|
||||
|
||||
failure: function (o) {
|
||||
alert("Ajax request failed!");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Get the image link from within its (parent) container.
|
||||
function getLargeImage(parent) {
|
||||
var el = parent.firstChild;
|
||||
|
||||
while (el) { // walk through till as long as there\'s an element
|
||||
if (el.nodeName.toUpperCase() == "IMG") { // found an image
|
||||
// flickr uses "_s" suffix for small, and "_m" for big
|
||||
// images respectively
|
||||
return el.src.replace(/_s\.jpg$/, "_m.jpg");
|
||||
}
|
||||
el = el.nextSibling;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
YAHOO.util.Event.onDOMReady(function (ev) {
|
||||
|
||||
var carousel, spotlight = YAHOO.util.Dom.get("spotlight");
|
||||
|
||||
/* Allow for anchor pagination to better demonstrate backwards loading.
|
||||
Note: MAX_PAGER_BUTTONS defaults to 5 making a Carousel with more than
|
||||
5 pages spawn a select box containing pages instead of page anchors. */
|
||||
|
||||
YAHOO.widget.Carousel.prototype.CONFIG.MAX_PAGER_BUTTONS = 100;
|
||||
|
||||
carousel = new YAHOO.widget.Carousel("container", {
|
||||
/* Setting numItems is required for dynamic loading. This property lets Carousel
|
||||
know how many total items it will ever be populated with.
|
||||
Not to be confused with numVisible: the number of items to display
|
||||
per page. In this case we don't specify it and Carousel
|
||||
defaults to 3 items visible per page. */
|
||||
|
||||
numItems: 17
|
||||
});
|
||||
|
||||
batchSize = carousel.get("numVisible");
|
||||
|
||||
YAHOO.util.Connect.asyncRequest("GET", "assets/php/getimages2.php" + "?r="+Math.random()+"&batchSize=" + batchSize, {
|
||||
success: function (o) {
|
||||
var i, r = eval("(" + o.responseText + ")");
|
||||
|
||||
curpos = r.length;
|
||||
|
||||
for (i = 0; i < curpos; i++) {
|
||||
items.push(r[i]);
|
||||
}
|
||||
|
||||
// check if the Carousel widget is available
|
||||
if (typeof carousel != "undefined") {
|
||||
for (i = 0; i < curpos; i++) {
|
||||
// if so, shove the elements into it
|
||||
carousel.addItem(getImageTag(items[i]));
|
||||
}
|
||||
carousel.set("selectedItem", 0);
|
||||
items = [];
|
||||
}
|
||||
},
|
||||
|
||||
failure: function (o) {
|
||||
alert("Ajax request failed!");
|
||||
}
|
||||
});
|
||||
|
||||
carousel.on("loadItems", function (o) {
|
||||
// more items available?
|
||||
getImages.call(this, o);
|
||||
});
|
||||
|
||||
carousel.on("itemSelected", function (index) {
|
||||
// item has the reference to the Carousel\'s item
|
||||
var item = carousel.getElementForItem(index);
|
||||
|
||||
if (item) {
|
||||
spotlight.innerHTML = "<img src=\""+getLargeImage(item)+"\">";
|
||||
}
|
||||
});
|
||||
|
||||
carousel.render();
|
||||
carousel.show();
|
||||
});
|
||||
</script>
|
||||
<!--END SOURCE CODE FOR EXAMPLE =============================== -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue