使用JQuery动画进行视差滚动时出错
Parallax Scrolling with JQuery animation stumbles
我用视频实现了视差效果。我想自己做,所以我在没有任何框架或插件的情况下做了这件事,但它很慢,而且会磕磕碰碰。
我的想法是有2张图片,1个视频和2个盒子在他们面前。所以我的代码是,如果我在1图片的位置上,图片滚动得更慢(页边空白在顶部),如下所示:
$( window ).scroll(function() {
var scroll = $(window).scrollTop();
if(scroll>470){
scroll = scroll-470;
var scrollSlow = scroll*0.4;
$('#Picture1').css('margin-top', scrollSlow);
$('#InfoBox1').css('margin-top', -scroll);
if(scroll<400){
$('#Picture2').css('margin-top', -scroll);
}
$('#InfoBox2').css('margin-top', -scroll+heightPX);
if(scroll<900){
$('#Picture3').css('margin-top', -scroll+heightPX);
}
}
}
但如果我向下滚动,它就不起作用。
这是在线版本:http://p-goetz.de/Parallax.html
问题:您可能正在chrome/safari中测试您的网站,尝试使用Firefox,您会发现事情更顺利。
原因:在一些浏览器中,当你滚动时,它们一次跳100像素,因此你的视差动画开始看起来很奇怪。
解决方案:尝试使用带有平滑fx的自定义滚动。我将推荐Nicescroll。
问题是图像/视频太大,浏览器在完全加载之前滚动时会滞后。一种解决方案是等待图像/视频完成加载后再显示页面
$('body').hide();
var video = document.getElementById('PARALLAX_bild2');
video.addEventListener('loadeddata', function() { // video is loaded
$('img').load(function() { // images are loaded
// Do some fancy fade in of the page here. This is just an example.
$('body').show();
});
}, false);
相关文章:
- 幻灯片滚动javascript不起作用
- javascript中的数组出错
- 将视口底部滚动到元素底部
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- jQuery Lazy加载动画滚动
- 设置滑块分区上的滚动
- 结合jQuery和jetpack无限滚动
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- 滚动到容器中的下一个元素-几乎到了
- 只覆盖箭头键滚动事件
- Javascript如何找到滚动事件的来源
- Image赢得't隐藏在滚动jQuery上
- Safari(Mac OS)上的jQuery平滑滚动问题
- nicewoll向下滚动时出错
- 滚动容器时,元素的拖动出错
- UI 网格,滚动时出错
- DIV标记滚动时出错
- 使用JQuery动画进行视差滚动时出错
- Javascript - 滚动到页面底部时出错
- 滚动功能IE出错