слайдер на jquery

Discussion in 'ПО для Web разработчика' started by loze_mc, 27 Jan 2012.

  1. loze_mc

    loze_mc New Member

    Joined:
    2 Oct 2011
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    помоги плиз, а то что то не получается....

    HTML:
    в head'e 
     
    <link rel="stylesheet" type="text/css" href="imageScroller.css">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    
    <div id="outerContainer">
    <div id="imageScroller">
    <div id="viewer" class="js-disabled">
    <a class="wrapper" href="http://www.apple.com" title="Apple">
    <img class="logo" id="apple" src="logos/apple.jpg" alt="Apple"></a>
    <a class="wrapper" href="http://mozilla-europe.org/en/firefox" title="Firefox">
    <img class="logo" id="firefox" src="logos/firefox.jpg" alt="Firefox"></a>
    <a class="wrapper" href="http://jquery.com" title="jQuery">
    <img class="logo" id="jquery" src="logos/jquery.jpg" alt="jQuery"></a>
    <a class="wrapper" href="http://twitter.com" title="Twitter">
    <img class="logo" id="twitter" src="logos/twitter.jpg" alt="Twitter"></a>
    <a class="wrapper" href="http://jqueryui.com" title="jQuery UI">
    <img class="logo" id="jqueryui" src="logos/jqueryui.jpg" alt="jQuery UI"></a>
    </div></div> </div>
    
    
    <script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
    
    <script type="text/javascript"> 
    
    $(function() {
      //remove js-disabled class("js-disabled");
    //create new container for images
    $("<div>").attr("id", "container").css({ position:"absolute"}).width($(".wrapper").length * 170).height(170).appendTo("div#viewer");
    //add images to container
    $(".wrapper").each(function() {
    $(this).appendTo("div#container");
    });
    //work out duration of anim based on number of images (1 second for each image)
    var duration = $(".wrapper").length * 1000;
    //store speed for later (distance / time)
    var speed = (parseInt($("div#container").width()) + parseInt($("div#viewer").width())) / duration;
    //set direction
    var direction = "rtl";
    //set initial position and class based on direction
    (direction == "rtl") ? $("div#container").css("left", $("div#viewer").width()).addClass("rtl") : $("div#container"
    ).css("left", 0 - $("div#container").width()).addClass("ltr") ;
    //animator function
    var animator = function(el, time, dir) {
    //which direction to scroll
    if(dir == "rtl") {
    //add direction class
    el.removeClass("ltr").addClass("rtl");
    //animate the el
    el.animate({ left:"-" + el.width() + "px" }, time, "linear", function() {
    //reset container position
    $(this).css({ left:$("div#imageScroller").width(), right:"" });
    //restart animation
    animator($(this), duration, "rtl");
    //hide controls if visible
    ($("div#controls").length > 0) ? $("div#controls").slideUp("slow").remove() : null ;
    	});
    } else {
     //add direction class
    el.removeClass("rtl").addClass("ltr");
    //animate the el
    el.animate({ left:$("div#viewer").width() + "px" }, time, "linear", function() {
    //reset container position
    $(this).css({ left:0 - $("div#container").width() });
    //restart animation
    animator($(this), duration, "ltr");
    //hide controls if visible
    ($("div#controls").length > 0) ? $("div#controls").slideUp("slow").remove() : null ;	
    });
    }
    }
    //start anim
    animator($("div#container"), duration, direction);
    //pause on mouseover
    $("a.wrapper").live("mouseover", function() {
    //stop anim
    $("div#container").stop(true);
    //show controls
    ($("div#controls").length == 0) ? $("<div>").attr("id", "controls").appendTo("div#outerContainer").css({ opacity:0.7 }).slideDown("slow") : null ;
    ($("a#rtl").length == 0) ? $("<a>").attr({ id:"rtl", href:"#", title:"rtl" }).appendTo("#controls") : null ;
    ($("a#ltr").length == 0) ? $("<a>").attr({ id:"ltr", href:"#", title:"ltr" }).appendTo("#controls") : null ;
    //variable to hold trigger element
    var title = $(this).attr("title");
    //add p if doesn't exist, update it if it does
    ($("p#title").length == 0) ? $("<p>").attr("id", "title").text(title).appendTo("div#controls") : $("p#title").text(title) ;
    });
    //restart on mouseout
    $("a.wrapper").live("mouseout", function(e) {
    //hide controls if not hovering on them
    (e.relatedTarget == null) ? null : (e.relatedTarget.id != "controls") ? $("div#controls").slideUp("slow").remove() : null ;
    //work out total travel distance
    var totalDistance = parseInt($("div#container").width()) + parseInt($("div#viewer").width());
    //work out distance left to travel
    var distanceLeft = ($("div#container").hasClass("ltr")) ? totalDistance - (parseInt($("div#container").css("left")) + parseInt($("div#container").width())) : totalDistance - (parseInt($("div#viewer").width()) - (parseInt($("div#container").css("left")))) ;
    //new duration is distance left / speed)
    var newDuration = distanceLeft / speed;
    //restart anim
    animator($("div#container"), newDuration, $("div#container").attr("class"));
    	});
    //handler for ltr button
    $("#ltr").live("click", function() {
    //stop anim
    $("div#container").stop(true);
    //swap class names
    $("div#container").removeClass("rtl").addClass("ltr");
    //work out total travel distance
    var totalDistance = parseInt($("div#container").width()) + parseInt($("div#viewer").width());
    //work out remaining distance
    var distanceLeft = totalDistance - (parseInt($("div#container").css("left")) + parseInt($("div#container").width()));
    //new duration is distance left / speed)
    var newDuration = distanceLeft / speed;
    //restart anim
    animator($("div#container"), newDuration, "ltr");
    });
    //handler for rtl button
    $("#rtl").live("click", function() {
    //stop anim
    $("div#container").stop(true);
    //swap class names
    $("div#container").removeClass("ltr").addClass("rtl");
    //work out total travel distance
    var totalDistance = parseInt($("div#container").width()) + parseInt($("div#viewer").width());
    //work out remaining distance
    var distanceLeft = totalDistance - (parseInt($("div#viewer").width()) - (parseInt($("div#container").css("left"))));
    //new duration is distance left / speed)
    var newDuration = distanceLeft / speed;
    //restart anim
    animator($("div#container"), newDuration, "rtl");
    });
    });
    </script>
    
    вот код и финкция...не могу понять почему когда все в чистом виде, то все работает, а когда я все это вставляю в код сайта (dle), у меня не отображается, половина сайта и и слайдера вообще не видно....
     
  2. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    140
    Reputations:
    4
    скачай готовый и не парься. css подправить можно
     
    #2 barnaki, 28 Jan 2012
    Last edited: 28 Jan 2012
  3. At0m1c

    At0m1c New Member

    Joined:
    19 Jun 2008
    Messages:
    16
    Likes Received:
    3
    Reputations:
    0
    http://sorgalla.com/projects/jcarousel/
    Вживляется легко и париться не надо.
     
  4. AlexandrK

    AlexandrK New Member

    Joined:
    4 Jan 2012
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Slick SliderShow - эффектный слайдер реализованный на jQuery