Вообще как они сделали на сайте такой плавный переход ... http://ironfit.ancorathemes.com
Все что я тут попробовал имеет глюки ... только animate дает правильную анимацию но при этом не применим для div с перетеканием картинки в картинку ... Кто то знает как это реализовано в ironfit.ancorathemes.com ? |
Цитата:
Ноту проблема не в этом. Сейчас мне не нравится поведение всей скрипт на основании requestAnimationFrame, setTimeout и т. д. то поведение этой анимации не подходит. Она то играет то обрывает ... то еще как то ... |
requestAnimationFrame and preload images
macik,
вариант с предзагрузчиком от Rise, <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style> #foto_index{ transition:all 3s ease; -webkit-transition:all 3s ease; -moz-transition:all 3s ease; -o-transition:all 3s ease; opacity: 1; background: url("http://img-fotki.yandex.ru/get/5640/35900228.10c/0_7388e_3ab59b4a_XL.jpeg.jpg") no-repeat center; z-index: -2; min-height: 600px; margin-top: -50px; margin-right: 0; margin-left: 0; -moz-background-size: 100%; /* Firefox 3.6+ */ -webkit-background-size: 100%; /* Safari 3.1+ и Chrome 4.0+ */ -o-background-size: 100%; /* Opera 9.6+ */ background-size: 100%; /* Современные браузеры */ background-size:cover; } </style> <script> window.addEventListener('DOMContentLoaded', function() { var mas = [ 'http://img-fotki.yandex.ru/get/5640/35900228.10c/0_7388e_3ab59b4a_XL.jpeg.jpg', 'http://1.bp.blogspot.com/-aleHkBUuqOI/VY0HrCytsXI/AAAAAAAAq1g/f2emGtdqdWo/s640/2015-06-05_0145.jpg', 'http://www.fotki.ykt.ru/albums/userpics/2013/11-18/1384739526_image.jpg' ], i=1, a = performance.now(); function csaHead(b){ if(b - a > 5000) { a = b; document.getElementById('foto_index').style.backgroundImage="url('"+mas[i]+"')"; i = ++i % mas.length; } requestAnimationFrame(csaHead) } function preload(images, callback) { if (images.length) { var image = new Image(); image.onload = image.onerror = function() { preload(images, callback); } image.src = images.pop(); } else { callback(); } } preload(mas.slice(0), function(){ requestAnimationFrame(csaHead)}); }); </script> </head> <body> <div id='foto_index'></div> </body> </html> |
Рони, я сейчас тестирую ... Вроде лучше.
UP Ну в Crom все работает отлично в Firefox анимации нет, только редкий перебор. в Safari старт работает хорошо, после ухода в фон, первый проход рвет потом опять все плавно. Есть идея что надо останавливать анимацию когда окно не активно. Можно это как то сделать? |
macik,
css анимация background - работает нормально только в хроме или фон можно анимировать нормально только в хроме. в остальных только сменой картинок. |
Цитата:
|
macik,
там один блок заменяет другой --- но алгоритм тотже что тут в посте №35 только вместо картинок блоки |
А можете подсказать как это сделать на блоках?
|
смена блоков с разным фоном с opacity
macik,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .foto_index .bg{ position: absolute; width: 100%; height: 100%; opacity: 0; -moz-background-size: 100%; /* Firefox 3.6+ */ -webkit-background-size: 100%; /* Safari 3.1+ и Chrome 4.0+ */ -o-background-size: 100%; /* Opera 9.6+ */ background-size: 100%; /* Современные браузеры */ background-size:cover; box-sizing: border-box; transition: opacity .8s ease-in; } .foto_index .bg.show{ opacity: 1; } .foto_index{ width: 100%; position: relative; z-index: -2; min-height: 600px; margin-top: -50px; margin-right: 0; margin-left: 0; } </style> <script> window.addEventListener("DOMContentLoaded", function() { [].forEach.call(document.querySelectorAll(".foto_index"), function(el) { var img = el.querySelectorAll(".bg"), len = img.length, i = len - 1, p = el.dataset.pause || 5E3; !function g() { img[i].classList.remove("show"); i = ++i % len; img[i].classList.add("show"); window.setTimeout(g, p) }() }) }); </script> </head> <body> <div class="foto_index" data-pause="3000"> <div class="bg" style="background-image: url(http://img-fotki.yandex.ru/get/5640/35900228.10c/0_7388e_3ab59b4a_XL.jpeg.jpg)"></div> <div class="bg" style="background-image: url(http://1.bp.blogspot.com/-aleHkBUuqOI/VY0HrCytsXI/AAAAAAAAq1g/f2emGtdqdWo/s640/2015-06-05_0145.jpg)"></div> <div class="bg" style="background-image: url(http://www.fotki.ykt.ru/albums/userpics/2013/11-18/1384739526_image.jpg"></div> </div> </body> </html> |
Спасибо!
Как же это у вас лихо получается!!! Вы просто супер! Я восхищаюсь такими, как Вы! PS поставил на тест, 5 минут теста в фоне, все ОК. |
Часовой пояс GMT +3, время: 02:39. |