AllDecay
@AllDecay
Вечно отдыхающий.

Как реализовать анимацию ответа от сервера?

<html>
	<head>
		<style>
			#loadImg{position:absolute; z-index:1000; display:none}
		</style>
	</head>
	<body>
		<img id="loadImg" src="/loadImg.gif" />
	</body>
</html>
<?
	
	$get = file_get_contents("http://shikimori.org/api/animes?limit=20&order=ranked");
	$get = json_decode($get);
	
	for ($i = 1; $i < count($get); $i++) {
		echo '<h6><a id="'.$get[$i]->id.'" title="'.$get[$i]->russian.'" href="http://shikimori.org'.$get[$i]->url.'" data-toggle="popover">'.$i.'.'.$get[$i]->russian.'</a></br></h6>';
	}
	
?>
<script type="text/javascript">
	$(document).ready(function(){
		$('[data-toggle="popover"]').popover({
			html: true,
			title: $(this).attr('title'),
			content: 
			function() {
				return $.ajax({
					url: '//shikimori.org/api/animes/'+$(this).attr('id'),
					dataType: 'html',
					async: false,
					beforeSend: function() {startLoadingAnimation()},
					success: function() {stopLoadingAnimation()}
				}).responseText;
			},
			trigger: 'hover',
			placement: 'left'
		});
	});
	function startLoadingAnimation()
	{
		var imgObj = $("#loadImg");
		imgObj.show();
		
		var centerY = $(window).scrollTop() + ($(window).height() + imgObj.height())/2;
		var centerX = $(window).scrollLeft() + ($(window).width() + imgObj.width())/2;
		
		imgObj.offset({top:centerY, left:centerX});
	}
	
	function stopLoadingAnimation()
	{
		$("#loadImg").hide();
	}
</script>

Пытаюсь реализовать popup окна, в которых отображалась бы информация с другого сайта. Проблема вот в чем: Данный код показывает popup окно только после загрузки данных с сайта, т.е анимация загрузки даже не успевает стартовать, как сразу же завершается. Как это исправить?
  • Вопрос задан
  • 1247 просмотров
Пригласить эксперта
Ответы на вопрос 2
Alexufo
@Alexufo
противоречивый, сложный, весь компьютерный.
success - это разве не событие успешной передачи? Поменяйте на complete когда ответка пришла.

api.jquery.com/Ajax_Events
Ответ написан
rOOse
@rOOse
Frontend developer
Это же bootstrap? Используйте trigger: manual, вручную вешайте функцию на hover, по наведению показывайте попап с анимацией и посылайте запрос, как ответ придет убирайте анимацию и обновляйте текст, как то так.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы