Подтвердить что ты не робот

JQuery slideToggle direction

Я пытаюсь переместить jquery.slideToggle, но я не могу добавить направление слева направо или справа налево при щелчке div (nav). Пожалуйста, помогите мне, ниже мой код.

    <!DOCTYPE html>

<html>

<head>

  <style>

  p { width:400px; float:right;background:#e4e4e4; margin:5px;padding:5px;}

  </style>

  <script src="http://code.jquery.com/jquery-latest.js"></script>

</head>

<body style="font-size:10px; color:#333;">

  <div style="width:50px; height:15px;float:right;background:#ccc;border:1px solid #333;text-align:center;">Nav</div>



  <p>

    This is the paragraph to end all paragraphs.  You

    should feel <em>lucky</em> to have seen such a paragraph in

    your life.  Congratulations!

  </p>

<script>

    $("div").click(function () {

      $("p").slideToggle("slow");


    });

</script>



</body>

Я новичок в jquery, очень благодарен за помощь.

4b9b3361

Ответ 1

Вам нужно добавить родителя в текст.

<body>
   <div class="nav">Nav</div>
   <div class="text">
      <p>This is the paragraph to end all paragraphs. You should feel <em>lucky</em> to have seen such a paragraph in your life. Congratulations!</p>
   </div>
</body>

Стиль:

body {
   font-size: 10px;
   color: #333; }

.nav {
   float: right;
   width: 50px;
   height: 30px;
   text-align: center;
   background: #ccc;
   border: 1px solid #333; }

.text {
   overflow: hidden;
   float: right;
   margin: 5px;
   padding: 5px;
   width: 400px;
   background: #e4e4e4; }

И javascript:

$('.nav').click(function() {
   $('.text p').css({
      'width': $('.text p').width(),
      'height': $('.text p').height()
   });
   $('.text').animate({'width': 'toggle'});
});

У вас есть демо: http://jsfiddle.net/abwVd/

Ответ 2

Поведение slideToggle по умолчанию в jquery - это "слайд" или "слайд вниз". Если вы хотите, чтобы ваш <p> "скользил влево" и "слайд вправо", вы можете использовать эффект "слайда", доступный в jquery ui. Аргумент направления принимает значения "вверх", "вниз", "влево", "вправо" в качестве допустимых значений. http://docs.jquery.com/UI/Effects/Slide

Ответ 3

Вы можете сделать это:

p { width:400px; position: absolute; background:#e4e4e4; margin:5px;padding:5px;}

(используйте позицию absolute вместо float right)

И это:

 $(document).ready(function() {
    var $elem = $("p");           
    var docwidth =  $(document).width();
    var inileft = docwidth - $elem.outerWidth();
    $elem.css("left", inileft);  //Position element tho the right
    $("div").click(function () {  //This slides
      $elem.animate({
        left: (parseInt($elem.css("left"), 10) >= docwidth ?  inileft : docwidth)
      });
   });
 });

Используя анимацию, вы можете создавать очень настраиваемые анимации. Надеюсь это поможет. Приветствия

Ответ 4

<script>

    $("div").click(function () {

      $("p").slideToggle("slow", {direction: "left"}, 100);


    });

</script>