3 * Examples and documentation at:
4 * http://www.gcmingati.net/wordpress/wp-content/lab/jquery/imagestrip/imageslide-plugin.html
5 * 2007-2010 Gian Carlo Mingati
6 * Version: 1.2.3 (9-JULY-2010)
7 * Dual licensed under the MIT and GPL licenses:
8 * http://www.opensource.org/licenses/mit-license.php
9 * http://www.gnu.org/licenses/gpl.html
12 * jQuery v1.4.1 or later, jquery.easing.1.2
17 jQuery("div.svw").prepend("<img src='spinner.gif' class='ldrgif' alt='loading...'/ >");
21 jQuery.fn.slideView = function(settings) {
22 settings = jQuery.extend({
23 easeFunc: "easeInOutExpo",
29 return this.each(function(){
30 var container = jQuery(this);
31 container.find("img.ldrgif").remove();
32 container.removeClass("svw").addClass("stripViewer");
33 var pictWidth = container.find("img").width();
34 var pictHeight = container.find("img").height();
35 var pictEls = container.find("li").size();
36 var stripViewerWidth = pictWidth*pictEls;
37 container.find("ul").css("width" , stripViewerWidth);
38 container.css("width" , pictWidth);
39 container.css("height" , pictHeight);
40 container.each(function(i) {
41 (!settings.uiBefore) ? jQuery(this).after("<div class='stripTransmitter' id='stripTransmitter" + (j) + "'><ul><\/ul><\/div>") : jQuery(this).before("<div class='stripTransmitter' id='stripTransmitter" + (j) + "'><ul><\/ul><\/div>");
42 jQuery(this).find("li").each(function(n) {
43 jQuery("div#stripTransmitter" + j + " ul").append("<li><a title='" + jQuery(this).find("img").attr("alt") + "' href='#'>"+(n+1)+"<\/a><\/li>");
45 jQuery("div#stripTransmitter" + j + " a").each(function(z) {
46 jQuery(this).bind("click", function(){
47 jQuery(this).addClass("current").parent().parent().find("a").not(jQuery(this)).removeClass("current"); // wow!
48 var cnt = -(pictWidth*z);
49 container.find("ul").animate({ left: cnt}, settings.easeTime, settings.easeFunc);
55 container.bind("click", function(e){
56 var ui = (!settings.uiBefore) ? jQuery(this).next().find("a.current") : jQuery(this).prev().find("a.current");
57 var bTotal = parseFloat(jQuery(this).css('borderLeftWidth').replace("px", "")) + parseFloat(jQuery(this).css('borderRightWidth').replace("px", ""));
58 var dOs = jQuery(this).offset();
59 var zeroLeft = (bTotal/2 + pictWidth) - (e.pageX - dOs.left);
60 if(zeroLeft >= pictWidth/2) {
61 var uiprev = ui.parent().prev().find("a");
62 (jQuery(uiprev).length != 0)? uiprev.trigger("click") : ui.parent().parent().find("a:last").trigger("click");
65 var uinext = ui.parent().next().find("a");
66 (jQuery(uinext).length != 0)? uinext.trigger("click") : ui.parent().parent().find("a:first").trigger("click");
71 jQuery("div#stripTransmitter" + j).css("width" , pictWidth);
72 jQuery("div#stripTransmitter" + j + " a:first").addClass("current");
73 jQuery('body').append('<div class="tooltip" style="display:none;"><\/div>');
77 var aref = jQuery("div#stripTransmitter" + j + " a");
79 aref.live('mousemove', function(e) {
80 var att = jQuery(this).attr('title');
83 jQuery('.tooltip').html(att).css({'position': 'absolute', 'top': posY+'px', 'left': posX+'px', 'display': 'block', 'opacity': settings.ttOpacity});
85 aref.live('mouseout', function() {
86 jQuery('.tooltip').hide();