Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подскажите с анимацией (https://javascript.ru/forum/misc/37018-podskazhite-s-animaciejj.html)

Vasy 04.04.2013 15:54

Подскажите с анимацией
 
Подскажите пожалуста как зделать так что-бы при нажатии на
<div>
.А там у меня какойто текст.Происходила анимация что <div> переворачиваетса на другую сторону и писалса иной текст,как будто вы перевернули листок бумаги.Сейчас же у меня просто по нажатию на этот див пишетса другой текст.
Подскажите пожалуста,искал что-то подобное в Jquery не нашол.

tsigel 04.04.2013 15:57

Я видел такой плагин. Поищите тут.

Vasy 04.04.2013 16:20

может я неумею правильн оискать но ненашол ничево подходящего.Сейчас делаю это просто вот так
<html>
<head>
<script type="text/javascript">

 document.getElementById('id5').style.display='none';
function text(el){


document.getElementById('id5').style.display='';
el.style.display = 'none';

}
</script>
</head>
<body>
 <div id="id4" onclick = "text(this)" style="border:5px solid black; width:100px ;height:100px">Здесь ваш текст</div>
 <div id="id5" style="border:5px solid red; width:50px; height:50px"> Новый текст</div>
</body>
</html>

Либо же просто делаю вот так
<html>
<head>
<script type="text/javascript">


function text(){


document.getElementById('id4').innerHTML='Новый текст';


}
</script>
</head>
<body>
 <div id="id4" onclick = "text()" style="border:5px solid black; width:100px ;height:100px">Здесь ваш текст</div>
 
</body>
</html>

А как зделать так что-бы в <body> у меня был один <div> и по нажатию на него происходила анимация переворачивания этого <div> и текст изменялса на какойто новый.

Gosha-K 04.04.2013 22:21

Цитата:

Сообщение от Gosha-K
А как зделать так что-бы в <body> у меня был один <div> и по нажатию на него происходила анимация переворачивания этого <div> и текст изменялса на какойто новый.

Видел такую анимацию, но только для фотогалереи, смотрится классно! Нажимаешь на фото и это фото переворачивается, а на обратной стороне написан текст. Соответственно текст редактируется. Я не помню туда ссылку, но если этот вариант подходит, то могу поискать...

Vasy 04.04.2013 22:32

Цитата:

Сообщение от Gosha-K (Сообщение 244321)
Видел такую анимацию, но только для фотогалереи, смотрится классно! Нажимаешь на фото и это фото переворачивается, а на обратной стороне написан текст. Соответственно текст редактируется. Я не помню туда ссылку, но если этот вариант подходит, то могу поискать...

очень даже подходит,было бы неплохо,если вам нетрудно можете вспомнить где вы ёё нашли?По сути неважно что там фото или текс,просто заменить фото на текст совсем не трудно.да и зделать так что-бы на обратной стороне текс нельзя было редактировать,тоже думаю проблемой являтса не будет.

Буду вам очень признателен если вы найдете эту анимацию.А то за целый день смешивания анимаций которые я знаю и находил ничево недобился путёвого.

Gosha-K 05.04.2013 17:52

Цитата:

Сообщение от Vasy
Буду вам очень признателен если вы найдете эту анимацию.А то за целый день смешивания анимаций которые я знаю и находил ничево недобился путёвого.

Нашел эту анимацию. Возможно это не то, что ты искал, так как эта анимация не на скриптах, а на флеше. Но все таки надеюсь, что она тебе поможет и пригодится. Посмотри её в действии здесь: http://www.simpleviewer.net/tiltviewer/examples/flickr/
Вся о ней информация здесь: http://www.simpleviewer.net/tiltviewer/support/

Ervin 05.04.2013 19:15

<div id="animation" style="width:100px;height:100px;background:Black;color:White;text-align:center;">Word</div>

function animate() {
	var el = document.getElementById("animation"),
		animation = {};

	animation = setInterval(function() {
		var degree = "",
		model = (typeof el.style.webkitTransform !== "undefined") ? "webkitTransform" : (typeof el.style.MozTransform !== "undefined") ? "MozTransform" : "msTransform",
		transform = el.style[model];
		
		degree = +transform.replace(/\D/g, "");
		
		console.log(degree);
		
		el.style[model] = "rotate(" + (degree + 5) + "deg)";
		
		if(degree === 175) {
			clearInterval(animation);
		}
	}, 10);
}

window.onload = animate;


П.С.

Если это то что нужно, то в я сделаю нормально сегодня вечером. Щас на работе нету времени.

Vasy 05.04.2013 22:12

Ervin,
это что-то похожее,только переворачиваетса не на другую сторону дива а вверх тормашками.Я имею ввиду что оно должно переворачиватса как листки в тетрадке.Возвожно ли такое вообще сделать?И если вы можете такое сделать,то я буду вам очень признателен.

И не могли бы вы обьяснить что здесь происходит?
animation = setInterval(function() {
        var degree = "",
        model = (typeof el.style.webkitTransform !== "undefined") ? "webkitTransform" : (typeof el.style.MozTransform !== "undefined") ? "MozTransform" : "msTransform",
        transform = el.style[model];
         
        degree = +transform.replace(/\D/g, "");
         
        console.log(degree);
         
        el.style[model] = "rotate(" + (degree + 5) + "deg)";
         
        if(degree === 175) {
            clearInterval(animation);
        }
    }, 10);
}

Vasy 05.04.2013 22:15

Gosha-K,
Спасибо что нашли,посмотрел почитал,будет тоже наверное полезно.Но сейчас это все реализовано на флеше.А хотят перейти к JavaScript'у

Ervin 05.04.2013 23:40

Нечто похожее, да. Не так как на kindle, но что-то похожее, можно сделать. Завтра вечером скину source.

Vasy 06.04.2013 00:26

Цитата:

Сообщение от Ervin (Сообщение 244477)
Нечто похожее, да. Не так как на kindle, но что-то похожее, можно сделать. Завтра вечером скину source.

спасибо.буду вам признателен

Vasy 08.04.2013 11:41

А если сделать что-бы была такая анимация как я хочу тяжело или невозможно.То подскажите как сделать что-бы при нажатии на область <div> второй <div> рисовалса не через несколько секунд использую setTimeout а стили и текст менялись постепенно?

Vasy 09.04.2013 17:50

ребят подскажите пожалуста

Vasy 10.04.2013 13:58

Ам,нашол то что нужно.Пишут что нужно использовать Flip.Но некакой нормальной документации по этому свойству я ненашол.Ни примеров ни описания.
Можете подсказать как реализовать Flip?Чтобы прокрутка была вроде бы вы листаете тетрадь?
Вот где я нашол.http://lab.smashup.it/flip/

Vasy 10.04.2013 14:14

http://www.xiper.net/collect/js-plug...uery-flip.html
Пробую как пишут сдесь но ничево не работает.Подскажите как использовать Flip?

Ervin 10.04.2013 19:35

Сорри было лень сделать раньше. Вот то что я щас написал. Если добавить css стилей, вроде загнутого угла и тд. может получится что-то. Работает в
хроме.

function animate() {
	var el = document.getElementById("shape"),
		animation = {},
		model = (typeof el.style.webkitTransform !== "undefined") ? "webkitTransform" : (typeof el.style.MozTransform !== "undefined") ? "MozTransform" : "msTransform";
	
	el.removeEventListener("click", animate, false);
	
	animation = setInterval(function() {
		var transform = el.style[model],
			degree = +transform.replace(/[a-z\(\),\s-0]/g, ""),
			width = +el.style.width.replace("px", ""),
			left = +el.style.left.replace("px", "");
		
		if(width > 10) {
			el.style.width = (width - 10) + "px";
			el.style.left = (left + 10) + "px";
			el.style[model] = "skew(0deg," + (degree + 0.2) + "deg)";
		}
		else {
			clearInterval(animation);
			
			el.children[0].textContent = ["It's a beautiful life, oh oh ooh It's a beautiful life, oh oh ooh",
						"It's a beautiful life, oh oh ooh I just wanna be here beside you You can do what you want just seize the day",
						"What you're doing tomorrow's gonna come your way Don't you ever consider givin' up, you will find, ooh",
						"It's a beautiful life, oh oh ooh It's a beautiful life, oh oh ooh It's a beautiful life, oh oh ooh",
						"I just wanna be here beside you It's a beautiful life, oh oh ooh",
						"It's a beautiful life, oh oh ooh It's a beautiful life, oh oh ooh I just wanna be here beside you",
						"Beautiful, beautiful, beautiful Take a walk in the park when you feel down There's so many things there",
						"that's gonna lift you up See the nature in bloom a laughing child Such a dream, ooh"].join();
			
			animation = setInterval(function() {
				var transform = el.style[model],
					degree = +transform.replace(/[a-z\(\),\s-0]/g, ""),
					width = +el.style.width.replace("px", "");
				
				if(width < 250) {
					el.style.width = (width + 10) + "px";
					
					if(degree > 0.2) {
						degree = degree - 0.2;
						
						el.style[model] = "skew(0deg, -" + degree + "deg)";
					}
				}
				else {
					clearInterval(animation);
				}
			}, 10);
		}
	}, 10);
}

function bindAnimation() {
	var el = document.getElementById("shape");
	
	el.addEventListener("click", animate, false);
}

window.onload = bindAnimation;

#shape {
	margin: 50px;
	width: 250px;
	min-height: 300px;
	padding:5px;
	position:relative;
	background:#fff;
	background: -webkit-gradient(linear, 0% 20%, 0% 92%, from(#fff), to(#f3f3f3), color-stop(.1,#fff));
	background: -moz-linear-gradient(0% 0% 270deg, #fff, #fff 10%, #f3f3f3);
	border-top: 1px solid #ccc;
	border-right: 1px solid #ccc;
	border-left: 1px solid #ccc;
	-webkit-border-top-left-radius: 60px 5px;
	-moz-border-radius-topleft:60px 5px;
	border-top-left-radius:60px 5px;
	-webkit-border-top-right-radius: 60px 5px;
	-moz-border-radius-topright:60px 5px;
	border-top-right-radius:60px 5px;
	-webkit-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.3) ;
	-moz-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.3) ;
	box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.3) ;
	overflow:hidden;
}

.text {
	width:250px;
	height:300px;
}

<div id="shape" style="width:250px;"><div class="text">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</div></div>


Я рекомендую использовать flip плагин.

Могу помочь разобраться почему не работает, если будет source code в котором ошибка.


Часовой пояс GMT +3, время: 22:06.