视差.js + js淡出=第一次<光<后没有乐趣
parallax.js + js fadein/out = no joy after first <li>
我正在使用parallax.js在主页上制作一系列元素的动画。我搜索代码,允许我添加一个简单的"滑块"效果的元素。
一切似乎都工作正常,除了在第一个li之后,视差效果只能水平工作。在li #1上,元素按照预期的方式悬停,跟随鼠标的各个方向。
这里是jsfiddle的链接:http://jsfiddle.net/sdeviva/t6uwq/1/
这是修改后的jsfiddle的链接:http://jsfiddle.net/sdeviva/t6uwq/5/
var scene = document.getElementById('scene');
var parallax = new Parallax(scene);
var scene = document.getElementById('scene2');
var parallax = new Parallax(scene2);
(function($) {
$.fn.ezslide = function ( options ) {
var defaults = {
fadeIn : 1000,
fadeOut : 1000,
delay : 500
},
settings = $.extend( defaults, options ),
$this = this,
cur = 0,
fadeIt = function( which ) {
var li = $this.find('li');
cur = which = (which >= li.length) ? 0 : which;
li.fadeOut( settings.fadeOut );
li.eq( which )
.delay( settings.fadeOut )
.fadeIn( settings.fadeIn, function(){
setTimeout(function() {
cur++;
fadeIt( cur );
}, settings.delay);
});
};
fadeIt( cur );
};
$('ul.scene').ezslide({
fadeIn : 600,
fadeOut : 600,
delay : 3000
});
})(jQuery);
EDIT:我修复了这个问题。我真的不知道我在做什么,所以可能有更干净的方法。但是,我意识到视差效果只应用于第一个列表项一次。让每个项目淡出的脚本没有得到parallax.js脚本的好处。
SO -我将每个褪色元素放入其自己的ul中,具有唯一的id和共享类。奇迹发生了,这真的有效。如果有更好的方法,请告诉我。
这是一个有趣的问题。问题是视差代码将第一层设置为position: relative
,而将所有其他层设置为position: absolute
。这样做的效果是使母体ul
只有第一层的尺寸。这通常很好,除了当您显示除第一个元素之外的任何元素时,第一个元素将被隐藏。这导致ul
的高度为0。视差取决于场景的高度,因此没有高度意味着没有垂直移动。
你可以通过给ul
应用一个固定的高度来解决这个问题:
#scene{
height: 128px;
}
http://jsfiddle.net/t6uwq/7/你可以在github的文档中找到更多关于运动计算的详细信息
相关文章:
- PHP和JS脚本的奇怪问题,在我刷新页面之前第一次失败
- Three.js场景在第一次通过后似乎无法渲染
- JS切换DIV's第一次点击时CSS未启动
- 第一次用部分调用 Angular js 文件不起作用
- 我的 update.js.erb 文件仅在第一次单击按钮时运行,而不在后续单击时运行(单击时更改按钮的类和值)
- JS在第一次访问时重定向到启动页面
- 角度.js模型在第一次后不更新
- JS不会循环,在第一次循环后停止
- Rails应用程序中的JS仅在第一次加载时加载
- js动画在第一次点击时不起作用
- JQuery Mobile JS脚本第一次运行,但返回页面时不会运行
- Angular.JS onclick函数只在第一次点击时调用
- 我的node.js http请求第一次工作,现在它显示了一些错误
- 当第一次在一个现有的网站上开始时,找出所有链接的css/js
- 为什么JS只在页面第一次加载或刷新时加载?
- js根据第一次输入设置焦点
- 调用js函数只能在jquery手机上第一次工作
- 设置页面在第一次登录,express.js
- Node.js, Mongoose函数第一次返回错误,第二次不返回
- js防止第一次值的改变