2

我喜欢页面加载时初始的 smoothHeight 的效果。我讨厌它在初始加载后对页面大小调整缓慢做出反应的方式。我希望保留初始页面加载的效果,然后回退到没有动画的默认调整大小。我已经追了几个小时了。通过在smoothHeight函数本身的末尾将smoothHeight变量设置回false,我可以在初始动画之后将变量切换回false,但这会在初始加载后禁用任何高度调整。这感觉就像一个非常简单的操作,但我想不通。提前感谢您的任何想法!

基本上,当这个块被执行一次时,它会设置高度,这样即使变量变回假,高度也不再灵活。

smoothHeight: function(dur) { if (!vertical || fade) { var $obj = (fade) ? slider : slider.viewport; (dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).height()}, dur) : $obj.height(slider.slides.eq(slider.animatingTo).height()); } }

4

2 回答 2

0

在调整大小时禁用平滑高度 FlexSlider,在调整大小时禁用过渡高度 FlexsSider。

在我的情况下,我不得不停止 FlexsSider 以在调整大小后顺利适应视口高度。

解决方案不在.js文件中。

我只是想消除 中的过渡效果.css,这造成了延迟:

.flex-viewport {max-height: 2000px; -webkit-transition: all 1s ease; -moz-transition: all 1s ease; transition: all 1s ease;}

改为:

.flex-viewport {max-height: 2000px;}

此致

于 2013-07-04T19:34:26.123 回答
0

这似乎已经做到了,我在 resize 函数的开头将 smoothHeight 变量设置回“false”,这样在初始页面加载后它就不会尝试在 resize 时设置高度动画。然后,我在 resize 函数中将 slider.viewport 高度设置为“100%”,这会重置高度,然后调整页面大小会做出响应:) 最后但并非最不重要的是,我将resetHeight布尔变量添加到脚本的顶部首次运行 resize 时将其设置为 false,这样每次调整页面大小时将视口高度设置为 100% 不会浪费资源。

resize: function() { if(resetHeight) { slider.viewport.height("100%"); resetHeight=false;} if (!slider.animating && slider.is(':visible')) { if (!carousel) slider.doMath(); if (fade) { // SMOOTH HEIGHT: methods.smoothHeight(); } else if (carousel) { //CAROUSEL: slider.slides.width(slider.computedW); slider.update(slider.pagingCount); slider.setProps(); } else if (vertical) { //VERTICAL: slider.viewport.height(slider.h); slider.setProps(slider.h, "setTotal"); } else { // SMOOTH HEIGHT: if (vars.smoothHeight) methods.smoothHeight(); slider.newSlides.width(slider.computedW); slider.setProps(slider.computedW, "setTotal"); } } }, smoothHeight: function(dur) { if (!vertical || fade) { var $obj = (fade) ? slider : slider.viewport; (dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).height()}, dur) : $obj.height(slider.slides.eq(slider.animatingTo).height()); } },

于 2012-12-13T01:48:42.673 回答