2013-02-12 12 views
28

fand ich an mehreren Stellen folgenden Code links/rechts zu verschieben:Slide div links/rechts mit jQuery

$('#hello').hide('slide', {direction: 'left'}, 1000); 

Allerdings kann ich es nicht bekommen zu arbeiten. Hier ist minimalistischer Test, den ich versuche:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en-us"> 
<head> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
    <script> 
    $(document).ready(function() { 
     $("#test").click(function() { 
      $('#hello').hide('slide', {direction: 'left'}, 1000); 
     }); 
    }); 
    </script> 
</head> 
<body> 
    <article > 
     <div id="hello"> 
      Hello  
     </div> 
     <p><span id="test">Test</span> 
    </arcticle> 
</body> 

Ich habe es in Chrome und Safari versucht und es funktioniert nicht.

Was ist das Problem? Gibt es andere Arbeitsmethoden, um nach links/rechts zu gleiten?

+4

[Das liegt daran, dass Slide Teil der jQuery UI-Effekte ist.] (Http://jqueryui.com/effect/) – Ohgodwhy

Antwort

52

erfordert die jQuery-ui-Bibliothek. Siehe http://www.jqueryui.com

+2

Ja, Sie benötigen jqueryUI. Siehe das Beispiel: http://jsfiddle.net/9wLGY/ – Jeff

+1

JSFiddle https://jsfiddle.net/ZQTFq/3372/ – iYazee6

60

Sie können einfach diesen Effekt erhalten, ohne jQueryUI zu verwenden, zum Beispiel:

$(document).ready(function(){ 
    $('#slide').click(function(){ 
    var hidden = $('.hidden'); 
    if (hidden.hasClass('visible')){ 
     hidden.animate({"left":"-1000px"}, "slow").removeClass('visible'); 
    } else { 
     hidden.animate({"left":"0px"}, "slow").addClass('visible'); 
    } 
    }); 
}); 

Versuchen Sie, diese Arbeit Fiddle:

http://jsfiddle.net/ZQTFq/

+4

Ich denke nicht, dass dies der sauberste Weg ist, dies zu tun, aber es funktionierte wie ein Zauber. Allerdings musste ich 'overflow-x: hidden;' einstellen –

1

Der einfachste Weg, dies zu tun ist jQuery mit und animate.css Animationsbibliothek.

Javascript

/* --- Show DIV --- */ 
$('.example').removeClass('fadeOutRight').show().addClass('fadeInRight'); 

/* --- Hide DIV --- */ 
$('.example').removeClass('fadeInRight').addClass('fadeOutRight'); 


HTML

<div class="example">Some text over here.</div> 


Leicht genug zu implementieren. Vergessen Sie aber nicht die animate.css Datei im Header enthalten :)

0

$(document).ready(function(){ 
 
$("#left").on('click', function (e) { 
 
     e.stopPropagation(); 
 
     e.preventDefault(); 
 
     $('#left').hide("slide", { direction: "left" }, 500, function() { 
 
      $('#right').show("slide", { direction: "right" }, 500); 
 
     }); 
 
    }); 
 
    $("#right").on('click', function (e) { 
 
     e.stopPropagation(); 
 
     e.preventDefault(); 
 
     $('#right').hide("slide", { direction: "right" }, 500, function() { 
 
      $('#left').show("slide", { direction: "left" }, 500); 
 
     }); 
 
    }); 
 

 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 
 

 
<div style="height:100%;width:100%;background:cyan" id="left"> 
 
<h1>Hello im going left to hide and will comeback from left to show</h1> 
 
</div> 
 
<div style="height:100%;width:100%;background:blue;display:none" id="right"> 
 
<h1>Hello im coming from right to sho and will go back to right to hide</h1> 
 
</div>

$("#btnOpenEditing").off('click'); 
$("#btnOpenEditing").on('click', function (e) { 
    e.stopPropagation(); 
    e.preventDefault(); 
    $('#mappingModel').hide("slide", { direction: "right" }, 500, function() { 
     $('#fsEditWindow').show("slide", { direction: "left" }, 500); 
    }); 
}); 

Es ist wie Charme werfen Sie einen Blick auf die Demo funktioniert.