Я сделала анимацию при клике, и на компьютере она выглядит хорошо. Проблема в том что на iOS и Android девайсах анимация очень резкая, и выглядит рвано. Очень долго искала способы это исправить, но до сих пор не смогла найти решения. Вот мой JS, полностью код можно увидеть на jsfiddle.
$('.project-image').on('click', function() {
var $this = $(this);
var img = $(this).attr('id');
var minusLeft = $(this)[0].offsetLeft - 8;
var minusTop = $(this)[0].offsetTop - 80;
$('.show-description').fadeOut(600, function () {
$('.hide-description').fadeIn(600);
});
$('.flex-container img').not('#' + img).animate({
opacity: 0,
}, 200, "linear", function() {
$this.css({
top:'-'+minusTop+'px',
left:'-'+minusLeft+'px'
})
setTimeout(function() {
$('.flex-container img').not('#'+img).hide();
$this.css("position", 'static');
$('.flex-container').css('flex-flow', 'column wrap');
$('.'+img+'-text-block').show();
$('.'+img+'-text-block').animate({
opacity:1
}, 100)
}, 600)
});
})
$('.hide-description').on('click', function() {
$('.hide-description').fadeOut("slow", function () {
$('.show-description').fadeIn(1000);
});
$('[class*="-text-block"]').hide()
$('.flex-container').css('flex-flow', 'row wrap')
$('.flex-container img').css({
position: 'relative',
top:0,
left:0
})
$('[class*="-text-block"]').css('opacity', '0');
$('.flex-container img').animate({
opacity: 1,
}, 400)
$('.flex-container img').show()
})
Во-первых, для анимации всегда и везде желательно использовать только свойства opacity
и transform
. Тот кусок кода, который у вас отвечает за перемещение элементов стоит переписать на:
$this.css({
transform: 'translate(' +minusLeft+ 'px, ' +minusTop+ 'px)'
})
...
$('.flex-container img').css({
position: 'relative',
transform: 'translate(0, 0)'
})
Во-вторых, используйте только последнюю версию jQuery, раз уж используете его — там метод .animate()
норм оптимизирован.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть готовый код который при нажатии на кнопки скроллит содержимое внутри блока (На чистом js)Необходимо сделать при клике плавную прокрутку...
На текущий момент есть блог в виде Rails приложенияСтраницы проиндексированы поисковиками
Есть скрипт (ниже), который должен по задумке на состояние checkbox - checked записывать value этого checkbox(их много) в массив, делать тоже самое с другим...