调整屏幕宽度后重新启动
Skrollr Restarts when Screen Width adjusted
我的滚动动画工作,除非我在页面的一半的方式和调整屏幕宽度。然后,skrollr
动画都重新启动,好像中间现在是顶部。我必须刷新屏幕顶部的页面来修复它,否则动画将不会开始,直到我到达最后一个已知的"顶部"。
下面是我的代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width; initial-scale=1.0;maximum-scale=1.0; user-scalable=0;" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<title>Template</title>
<link rel="stylesheet" href="../CSS/Services/Services.css">
<link rel="stylesheet" href="../CSS/ParentHF.css">
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery- mousewheel/3.0.6/jquery.mousewheel.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../js/jquery.simplr.smoothscroll.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
$(function () {
$.srSmoothscroll()
})
</script>
<!-- TemplateEndEditable -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<script src="../js/jquery.js" type="text/javascript"></script>
<script src="../js/jquery.touchSwipe.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> </script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"><'/script>')</script>
<script src="../js/enquire.min.js"></script>
<script src="../js/skrollr.js"></script>
<script src="../js/_main.js"></script>
<script type="text/javascript">
// disable skrollr if using handheld device
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
skrollr.init().destroy();
}//execute function
</script>
<script type="text/javascript">
$(window).load(function() {
$(".loader-wrap").fadeOut("slow");
})
</script>
<script>
$(window).load(function(){
var s = skrollr.init();
}); //closes window load function
</script>
</body>
</html>
Try
$(window).resize(function(){
var s = skrollr.refresh();
}); //close window resize
skrollr.refresh()
是一个可行的解决方案,但如果你已经初始化了skrollr并将其分配给一个变量(即var s = skrollr.init();
),那么你需要在变量上调用刷新函数,像这样:
$(window).on('resize', function(){
s.refresh();
});
如果您动态调整元素高度,您将需要手动触发窗口大小调整事件。例如,如果您正在使用jQuery的幻灯片功能,则需要在动画完成后触发大小调整。这样的:
$('#my-element').slideDown({
complete: function() {
$(window).trigger('resize');
}
});
这将触发resize事件,该事件将触发skrollr刷新函数。
或者,您也可以在slideDown函数之后直接调用刷新函数,或者您正在使用的用于调整页面高度的函数,如下所示:
$('#my-element').slideDown({
complete: function() {
s.refresh();
}
});
相关文章:
- 当我在重新启动cordova应用程序后尝试添加更多数据时,lokijs会丢失数据库和收集中的数据
- 重新启动jquery脚本后,角度停止工作
- Chrome内容脚本制作cookie;chrome重新启动时,cookie会被删除.如何使其稳定
- preventDefault之后的重新启动事件
- WebStorm,使用Node Supervisor(因此不必在每次代码更改后重新启动)
- 重新启动游戏jQuery功能不工作
- Web服务器意外退出,正在重新启动新实例
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- 初次加载后关闭启动屏幕
- 重新启动画布 JavaScript
- 事件侦听器,用于完全关闭后重新启动的应用程序
- Node SocketIO以编程方式强制在损坏的套接字上重新启动
- Phonegap启动屏幕图像失真
- 服务器重新启动后javascript不工作
- 当滚动到指定的位置时,启动功能,如何重置它并重新启动,如果我们再次回到这个位置
- Gulp Concat+Browsesync重新启动
- 在 javaScript 中重新启动 setInterval
- 如何为Sails.js创建启动/停止/重新启动Linux服务
- 如何暂停和重新启动jquery数据表插件
- 调整屏幕宽度后重新启动