<style type="text/css" media="screen">
<!--
.infiniteCarousel {
width: 706px;
position: relative;
}
img
{
border:0;
}
.infiniteCarousel .wrappertest {
width: 670px; /* .infiniteCarousel width - (.wrapper margin-left + .wrapper margin-right) */
height: 500px;
overflow: auto;
min-height: 10em;
margin: 0 30px;
position: absolute;
top: 0;
}
.infiniteCarousel ul a img {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
.infiniteCarousel .wrappertest ul {
width: 9999px;
list-style-image:none;
list-style-position:outside;
list-style-type:none;
margin:0;
padding:0;
position: absolute;
top: 0;
}
.infiniteCarousel ul li {
display:block;
float:left;
padding: 10px;
height: 177px;
width: 206px;
}
.infiniteCarousel ul li a img {
display:block;
}
.infiniteCarousel .arrow {
display: block;
height: 201px;
width: 113px;
background: url(strelka2.png) no-repeat 0 0;
text-indent: -999px;
position: absolute;
top: 0px;
cursor: pointer;
}
.infiniteCarousel .forward {
background: url(strelka2.png) no-repeat 0 0;
right: -25px;
}
.infiniteCarousel .back {
background: url(strelka.png) no-repeat 0 0;
left: 0;
}
-->
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$.fn.infiniteCarousel = function () {
function repeat(str, num) {
return new Array( num + 1 ).join( str );
}
return this.each(function () {
var $wrapper = $('div.wrappertest', this).css('overflow', 'hidden'),
$slider = $wrapper.find('> ul.gallery'),
$items = $slider.find('> li.gallery'),
$single = $items.filter(':first'),
singleWidth = $single.outerWidth(),
visible = Math.ceil($wrapper.innerWidth() / singleWidth), // note: doesn't include padding or border
visible = 1,
currentPage = 1,
pages = Math.ceil($items.length / visible);
// 1. Pad so that 'visible' number will always be seen, otherwise create empty items
if (($items.length % visible) != 0) {
$slider.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
$items = $slider.find('> li');
}
// 2. Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
$items.filter(':first').before($items.slice(- visible).clone().addClass('cloned'));
$items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
$items.filter(':first').before($items.slice(- visible).clone().addClass('cloned'));
$items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
$items = $slider.find('> li'); // reselect
// 3. Set the left position to the first 'real' item
$wrapper.scrollLeft(singleWidth * visible);
// 4. paging function
function gotoPage(page) {
var dir = page < currentPage ? -1 : 1,
n = Math.abs(currentPage - page),
left = singleWidth * dir * n;
$wrapper.filter(':not(:animated)').animate({
scrollLeft : '+=' + left
}, 1000, function () {
if (page == 0) {
$wrapper.scrollLeft(singleWidth * pages);
page = pages;
} else if (page > pages) {
$wrapper.scrollLeft(singleWidth);
// reset back to start position
page = 1;
}
currentPage = page;
});
return false;
}
$wrapper.after('<a class="arrow back"><</a><a class="arrow forward">></a>');
// 5. Bind to the forward and back buttons
$('a.back', this).click(function () {
return gotoPage(currentPage - 1);
});
$('a.forward', this).click(function () {
return gotoPage(currentPage + 1);
});
// create a public interface to move to a specific page
$(this).bind('goto', function (event, page) {
gotoPage(page);
});
});
};
$(document).ready(function () {
$('.infiniteCarousel').infiniteCarousel();
});
</script>
</head>
<body>
<div class="infiniteCarousel">
<div class="wrappertest">
<ul class="gallery">
<li class="gallery"><a href="#"><img src="acuvue_oasys.jpg"/></a></li>
<li class="gallery"><a href="#"><img src="acuvue_oasys2.jpg"/></a></li>
<li class="gallery"><a href="#"><img src="acuvue_oasys3.jpg"/></a></li>
<li class="gallery"><a href="#"><img src="acuvue_oasys4.jpg"/></a></li>
<li class="gallery"><a href="#"><img src="acuvue_oasys5.jpg"/></a></li>
<li class="gallery"><a href="#"><img src="acuvue_oasys6.jpg"/></a></li>
</ul>
</div>
</div>
</body> |