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

Jquery.slideToggle() горизонтальная альтернатива?

slideToggle делает именно то, что я хочу, только я хочу, чтобы слайд был горизонтальным.

У меня теперь есть щелчок по горизонтали/показу и анимации, но я хотел бы иметь опции переключения. Так что, когда я нажимаю на активную ссылку, она будет воспроизводить анимацию в обратном порядке и спрятаться.

Каким будет лучший способ сделать это?

4b9b3361

Ответ 1

Вы можете использовать метод animate:

$('#element').animate({width: 'toggle'});

http://jsfiddle.net/7ZBQa/

Ответ 3

Существует другой способ использования jquery ui. Видеть api jquery ui но это может быть не всегда полезно, поскольку оно имеет свои сбои.

Здесь jsfiddle, чтобы увидеть сбой, он не перемещает все остальные элементы плавно. Я помещаю здесь код, но его следует использовать с jQuery UI 1.10.3.

JS

$( document ).click(function() {
  $( "#toggle" ).toggle('slide');
});

css

.t {
    width: 100px;
    height: 100px;
    background: #ccc;
    display: inline-block;
    float: left;
  }

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<p>Click anywhere to toggle the box.</p>
<div id="toggle" class='t'>1</div>
<div id="" class='t'>2</div>
<div class='t'>3</div>

Ответ 4

Я пробовал это и отлично работает!

html-код:

<div class="flip-container" ontouchstart="this.classList.toggle('hover');">
    <div class="flipper">
        <div class="front">
            <!-- front content -->
        </div>
        <div class="back">
            <!-- back content -->
        </div>
    </div>
</div>

CSS       /* переверните панель при зависании */       .flip-container: hover.flipper,.flip-container.hover.flipper {           transform: rotateY (180deg);       }

.flip-container, .front, .back {
    width: 320px;
    height: 480px;
}

/* flip speed goes here */
.flipper {
    transition: 0.6s;
    transform-style: preserve-3d;

    position: relative;
}

/* hide back of pane during swap */
.front, .back {
    backface-visibility: hidden;

    position: absolute;
    top: 0;
    left: 0;
}

/* front pane, placed above back */
.front {
    z-index: 2;
    /* for firefox 31 */
    transform: rotateY(0deg);
}

/* back, initially hidden pane */
.back {
    transform: rotateY(180deg);
}

Я использую это внутри бутстрапа col-sm- * и отлично работает.

 <div class="col-sm-4 flip-container" ontouchstart="this.classList.toggle('hover');">
                    <div class="content-box flipper">
                        <div class="content-box-front">
                            <span class="glyphicon glyphicon-envelope content-box-icon"></span>
                            <h4>Share your emotions</h4>
                        </div>
                        <div class="content-box-back">
                            <p>Share emotions with friends, family and teammates.</p>
                            <button>Read more</button>
                        </div>
                    </div>
                </div>

css

.content-box
{
    position: relative;
    text-align: center;
    height: 105px;
    width: 100%;
}
.content-box-icon
{
    font-size: 30px;
    width: 60px;
    height: 60px;
    line-height: 60px;
    border-radius: 50%;
    text-align: center;
    display: block;
    margin: 5px auto 15px auto;
    color: #fff;
    float: none; 
    background:#25acfd                     
}
.content-box-front
{
    z-index: 2;
    /* for firefox 31 */
    transform: rotateY(0deg);
    backface-visibility: hidden;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 105px;
}
.content-box-back
{
    transform: rotateY(180deg);
    backface-visibility: hidden;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 105px;
}
/* entire container, keeps perspective */
    /* flip the pane when hovered */
    .flip-container:hover .flipper, .flip-container.hover .flipper {
        transform: rotateY(180deg);
    }

/* flip speed goes here */
.flipper {
    transition: 0.6s;
    transform-style: preserve-3d;
    position: relative;
}

Ответ 5

Если вам нужно, чтобы он был непрерывным, вы можете настроить setTimeinterval следующим образом

<?php
setInterval(function (){
$('div').animate({width: 'toggle'});
},200);
?>

Ответ 6

Если вы хотите переключиться между двумя ширинами, вы можете сделать что-то вроде ниже:

$('#A').click(function(){
if($(this).width() > 20){
$(this).animate({width: '20px'})
}
else{
$(this).animate({width: '50%'})
}
});
#A{
  float:left;
  width:50%;
  height:300px;
  background:red;
}
#B{
  min-height:300px;
  background:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="A">
</div>
<div id="B">
<span>Some stuff</span>
</div>

Ответ 7

Я хотел, чтобы высота переключалась, поэтому я использовал (я использовал в своем проекте)

function show_hide(target){
 var x = document.querySelectorAll("." +target);
 var y = $( x ).next()
 $(y).animate({height: 'toggle'});
}