Как сделать так, чтобы div перешел из свернутого в развернутый (и наоборот), но сделать это справа налево?
Почти все, что я вижу, всегда слева направо.
Как сделать так, чтобы div перешел из свернутого в развернутый (и наоборот), но сделать это справа налево?
Почти все, что я вижу, всегда слева направо.
Ответы:
$("#slide").animate({width:'toggle'},350);
Ссылка: https://api.jquery.com/animate/
paddingLeft: 'toggle', paddingRight: 'toggle'
когда элемент имеет внутреннее заполнение.
CSS
похож на настоящий слайд слева
overflow: hidden
.
Этого можно достичь с помощью методов скрытия / показа jQueryUI. Например.
// To slide something leftwards into view,
// with a delay of 1000 msec
$("div").click(function () {
$(this).show("slide", { direction: "left" }, 1000);
});
Использовать этот:
$('#pollSlider-button').animate({"margin-right": '+=200'});
Улучшенная версия
Некоторый код был добавлен в демонстрационную версию, чтобы избежать двойного поля при двойном щелчке: http://jsfiddle.net/XNnHC/942/
Используйте это с облегчением;)
http://jsfiddle.net/XNnHC/1591/
Лишние коды JavaScript удалены.
Имена классов и некоторые CSS-коды изменены
Добавлена функция поиска, если она развернута или свернута
Изменено ли использовать эффект ослабления или нет
Изменена скорость анимации
Взгляните на этот рабочий пример Fiddle, который использует пользовательский интерфейс jQuery . Это решение, которое я использовал изначально слева направо, но я изменил его для работы справа налево.
Это позволяет пользователю быстро нажимать на ссылки, не нарушая анимацию среди доступных панелей.
Код JavaScript прост:
$(document).ready(function(){
// Mostra e nascondi view-news
var active = "europa-view";
$('a.view-list-item').click(function () {
var divname= this.name;
$("#"+active ).hide("slide", { direction: "right" }, 1200);
$("#"+divname).delay(400).show("slide", { direction: "right" }, 1200);
active = divname;
});
});
Получить HTML и CSS по ссылке Fiddle.
Добавлен белый фон и отступы слева для лучшего представления эффекта.
Использовать этот
<script src="jquery.min.js"></script>
<script src="jquery-ui.min.js"></script>
<script>
$(document).ready(function(){
$("#flip").click(function () {
$("#left_panel").toggle("slide", { direction: "left" }, 1000);
});
});
</script>
Я сделал это так:
var btn_width = btn.width();
btn.width(0);
btn.show().animate({width: btn_width}, {duration: 500});
Обратите внимание, что узел "btn" должен быть скрыт перед анимацией, и вам также может потребоваться установить для него "position: absolute".
width: 'toggle'
? btn.show().animate({width: 'toggle'}, {duration: 500});
это все, что тебе нужно, я верю.
Другая заслуживающая упоминания библиотека - это animate.css . Он отлично работает с jQuery, и вы можете делать много интересных анимаций, просто переключая класс CSS.
Подобно..
$ ("# slide"). toggle (). toggleClass ('animated bounceInLeft');
GreenSock Animation Platform (GSAP) сTweenLite
/TweenMax
обеспечивает более плавные переходы с гораздо большей настройкой, чем переходы jQuery или CSS3. Чтобы анимировать свойства CSS с помощью TweenLite / TweenMax, вам также понадобится их плагин под названием «CSSPlugin». TweenMax включает это автоматически.
Сначала загрузите библиотеку TweenMax:
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.18.0/TweenMax.min.js"></script>
Или облегченная версия, TweenLite:
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.18.0/plugins/CSSPlugin.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.18.0/easing/EasePack.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.18.0/TweenLite.min.js"></script>
Затем назовите вашу анимацию:
var myObj= document.getElementById("myDiv");
// Syntax: (target, speed, {distance, ease})
TweenLite.to(myObj, .7, { x: 500, ease: Power3.easeOut});
Вы также можете вызвать его с помощью селектора идентификаторов:
TweenLite.to("#myID", .7, { x: 500, ease: Power3.easeOut});
Если у вас загружен jQuery, вы можете использовать более сложные расширенные селекторы, как и все элементы, содержащие определенный класс:
// This will parse the selectors using jQuery's engine.
TweenLite.to(".myClass", .7, { x: 500, ease: Power3.easeOut});
Для получения полной информации см .: Документация TweenLite
По словам их сайта: «TweenLite - чрезвычайно быстрый, легкий и гибкий инструмент анимации, который служит основой GreenSock Animation Platform (GSAP)».
Вы можете определить сначала ширину элемента как 0, с плавающей точкой справа, а затем в случае, когда вы собираетесь его показать .. это будет выглядеть так:
$('#the_element_to_slide_from_right_left').animate({ width:'your desired width' }, 600);
Просто как тот.
Пример анимации справа налево без jQuery UI , только с jQuery (любая версия, см. Https://api.jquery.com/animate/ ).
$(document).ready(function() {
var contentLastMarginLeft = 0;
$(".wrap").click(function() {
var box = $(".content");
var newValue = contentLastMarginLeft;
contentLastMarginLeft = box.css("margin-left");
box.animate({
"margin-left": newValue
}, 500);
});
});
.wrap {
background-color: #999;
width: 200px;
overflow: hidden;
}
.content {
width: 100%;
margin-left: 100%;
background-color: #eee;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrap">
click here
<div class="content">
I would like to have a div go from collapsed to expanded (and vice versa), but do so from right to left. Most everything I see out there is always left to right.
</div>
</div>
или вы можете использовать
$('#myDiv').toggle("slide:right");
Пример, сделанный мной с использованием прокрутки (только HTML, CSS и JS, только с библиотекой jquery). При прокрутке вниз кнопка сдвинется влево.
Кроме того, я предлагаю вам, если вам нужен только этот эффект, не используйте jQuery UI, потому что он слишком тяжелый (если вы просто хотите использовать его для этого).
$(window).scroll(function(){
if ($(this).scrollTop() > 100) {
event.preventDefault();
$(".scrollToTop").css({'transform': 'translate(0px, 0px)'});
} else {
$(".scrollToTop").css({'transform': 'translate(40px, 0px)'});
}
});
Проверьте этот пример
Если ваш div
абсолютно позиционирован и вы знаете ширину, вы можете просто использовать:
#myDiv{
position:absolute;
left: 0;
width: 200px;
}
$('#myDiv').animate({left:'-200'},1000);
Который сдвинет его с экрана.
Кроме того, вы можете обернуть его контейнером div
#myContainer{
position:relative;
width: 200px;
overflow: hidden;
}
#myDiv{
position:absolute;
top: 0;
left: 0;
width: 200px;
}
<div id="myContainer">
<div id="myDiv">Wheee!</div>
</div>
$('#myDiv').animate({left:'-200'},1000);