/* ================================================================ Copyright (c) Stu Nicholls. All rights reserved. This stylesheet and the associated (x)html may be modified in any way to fit your requirements. =================================================================== */ $(document).ready(function () { var sliding = startClientX = startPixelOffset = pixelOffset = currentSlide = 0, slideCount = $('.slide img').length; $('.slide img').each(function (i) { $('.container .buttons').append('') }); $('.container .buttons b').eq(0).css('background','#6cf'); buttonWidth = $('.container .buttons').width(); $('.container .buttons').css('left', (700-buttonWidth)/2 + 'px'); $('.container').live('mousedown touchstart', slideStart); $('.container').live('mouseup mousestop touchend', slideEnd); $('.container').live('mousemove mousedown touchmove', slide); $('.container .pad').live('mousemove mousedown touchmove', slideEnd); function slideStart(event) { if (event.originalEvent.touches) event = event.originalEvent.touches[0]; if (sliding == 0) { sliding = 1; startClientX = event.clientX; } } function slide(event) { event.preventDefault(); if (event.originalEvent.touches) event = event.originalEvent.touches[0]; var deltaSlide = event.clientX - startClientX; if (sliding == 1 && deltaSlide != 0) { sliding = 2; startPixelOffset = pixelOffset; } if (sliding == 2) { var touchPixelRatio = 1; if ((currentSlide == 0 && event.clientX > startClientX) || (currentSlide == slideCount - 1 && event.clientX < startClientX)) touchPixelRatio = 3; pixelOffset = startPixelOffset + deltaSlide / touchPixelRatio; $(".slide").css('left',pixelOffset +'px'); } } function slideEnd(event) { if (sliding == 2) { sliding = 0; currentSlide = pixelOffset < startPixelOffset ? currentSlide + 1 : currentSlide - 1; currentSlide = Math.min(Math.max(currentSlide, 0), slideCount - 1); pixelOffset = currentSlide * -$('.slide img').width(); $('.container .buttons b').css('background','#069'); $('.container .buttons b').eq(currentSlide).css('background','#6cf'); $(".slide").animate({left:pixelOffset}, 250); } } });