我多年来一直在寻找这个问题的解决方案。 1st Splash页面有超时持续时间,然后它加载主页和链接列表。链接显示但图标(真棒图标)未加载,我在每个 li 上设置的转换也未加载。 一旦页面加载,如果我刷新它所有具有过渡效果的内容正在工作。我正在使用animate.css进行列表动画。
有人可以找出问题吗?
SPLASH PAGE CODE
<!DOCTYPE html>
<html>
<head>
<title>Splash</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/themes/default/jquery.mobile-1.4.5.min.css">
<link rel="stylesheet" href="_assets/css/jqm-demos.css">
<link rel="stylesheet" href="css/animate.min.css">
<link rel="stylesheet" href="css/myapp.css">
<link rel="shortcut icon" href="favicon.ico">
<script src="js/jquery.js"></script>
<script src="_assets/js/index.js"></script>
<script src="js/jquery.mobile-1.4.5.min.js"></script>
<script>
$(document).on('pageinit','#splash',function(){
// the .on() method does require jQuery 1.7 + but this will allow you to have the contained code only run when the #splash page is initialized.
setTimeout(function(){
//$.mobile.pageContainer.pagecontainer("change", "home.html", {transition: "animated fadeOut"});
$.mobile.changePage("home.html", "animated fadeOut");
}, 4000);
});
</script>
</head>
<body>
<div data-role="page" id="splash">
<div data-role="content">
<img src="images/uos_logo.svg" alt="startup image" style="width: 100%; height: 100%" />
</div>
</div>
<!-- /page -->
</body>
</html>
主页代码
<!DOCTYPE html>
<html>
<head>
<title>Home</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/themes/default/jquery.mobile-1.4.5.min.css">
<link rel="stylesheet" href="_assets/css/jqm-demos.css">
<link rel="stylesheet" href="css/myapp.css">
<link rel="stylesheet" href="css/font-awesome.min.css">
<link rel="stylesheet" href="css/animate.min.css">
<link rel="shortcut icon" href="favicon.ico">
<script src="js/jquery.js"></script>
<script src="_assets/js/index.js"></script>
<script src="js/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
<div data-role="page" id="home">
<div data-role="content">
<ul id="myTabs" class="animated slideInUp">
<li class="clr1"><a href="#"><i class="fa fa-angle-right"></i> 1</a></li>
<li class="clr2"><a href="#"><i class="fa fa-angle-right"></i> 2</a></li>
<li class="clr3"><a href="#"><i class="fa fa-angle-right"></i> 3</a></li>
<li class="clr4"><a href="#"><i class="fa fa-angle-right"></i> 4</a></li>
<li class="clr5"><a href="#"><i class="fa fa-angle-right"></i> 5</a></li>
<li class="clr6"><a href="#"><i class="fa fa-angle-right"></i> 6</a></li>
<li class="clr7"><a href="#"><i class="fa fa-angle-right"></i> 7</a></li>
<li class="clr6"><a href="#"><i class="fa fa-angle-right"></i> 8</a></li>
<li class="clr5"><a href="#"><i class="fa fa-angle-right"></i> 9</a></li>
<li class="clr4"><a href="#"><i class="fa fa-angle-right"></i> 10</a></li>
<li class="clr3"><a href="#"><i class="fa fa-angle-right"></i> 11</a></li>
<li class="clr2"><a href="#"><i class="fa fa-angle-right"></i> 12</a></li>
<li class="clr1"><a href="#"><i class="fa fa-angle-right"></i> 13</a></li>
<li class="clr2"><a href="#"><i class="fa fa-angle-right"></i> 14</a></li>
<li class="clr3"><a href="#"><i class="fa fa-angle-right"></i> 15</a></li>
<li class="clr4"><a href="#"><i class="fa fa-angle-right"></i> 16</a></li>
</ul>
</div>
</div>
<!-- /page -->
<script type="text/javascript">
$('ul#myTabs li').each(function(i){
var t = $(this);
setTimeout(function(){ t.addClass('animated slideInUp'); }, (i+1) * 120);
});
</script>
</body>
</html>
答案 0 :(得分:0)
默认情况下,jQM通过AJAX将页面加载到当前DOM中,并且只获取带有data-role =&#34; page&#34;的第一个DIV。因此,不会加载第二页中的任何脚本/ css。
由于您打算用第一页完全替换启动,您可以使用
location.assign("home.html");
如果你真的想要很好的转换,只需在第一页中包含启动页面作为单独的data-role =&#34; page&#34; div,或者在data-role =&#34; page&#34;中包含来自home的所有脚本。 div所以他们被装进了dom。