首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Superscrollorama +响应式设计=流程不正确

Superscrollorama +响应式设计=流程不正确
EN

Stack Overflow用户
提问于 2013-01-18 04:10:03
回答 1查看 2.1K关注 0票数 1

在这个特殊的站点上使用Superscrollorama在箭头中设置动画:http://itsuptous.org/new_site

这也是一个响应式的设计。960+、768、480和320。使用媒体查询来触发不同的布局。如果我以任何浏览器大小加载网站,箭头动画效果都是正确的,当我扩展或最小化窗口时,它会移动到错误的位置。不知道这是怎么回事。有谁有什么想法吗?

我有绝对位置的元素,以防止水平滚动条。

下面是jQuery Superscrollorama代码:

代码语言:javascript
复制
    jQuery(document).ready(function() {
        //ACTIVATE BUTTON FOR SMOOTH SCROLLING
        jQuery("#scroll_button").scrollTo('#section_two_outer');

        //MOVE ARROWS ON SCROLL
        var controller = jQuery.superscrollorama();
        //INDIVIDUAL ELEMENT TWEEN
        controller.addTween('.apply_now_arrow_left', TweenMax.from(jQuery('.apply_now_arrow_left'), .5, {css:{left:'-2500px'}}));
        controller.addTween('.apply_now_button', TweenMax.from(jQuery('.apply_now_button'), .5, {css:{opacity: 0}}));
        controller.addTween('.apply_now_arrow_right', TweenMax.from(jQuery('.apply_now_arrow_right'), .5, {css:{left:'5000px'}}));
EN

回答 1

Stack Overflow用户

发布于 2013-02-06 04:10:52

戴夫,

实际上(在我看来)你的站点并没有出现Superscrollerama的问题,看起来你看到的问题是由于内联CSS对页面元素所做的改变造成的。例如,当动画被触发时,它只是随着时间的推移对CSS ' left‘属性进行动画处理,但一旦完成,left属性就会保留在元素上,这会在调整窗口大小时破坏您的布局。

要解决这个问题,我建议只需在动画完成后使用jQuery回调来删除箭头中的内联CSS,这将使您的样式表随后在调整窗口大小时控制它们的位置。最糟糕的情况是,如果动画发生在视区大小改变时(我甚至不确定如何做到这一点),那么会产生几乎不可察觉的闪烁,所以我认为你可以继续下去了。

代码语言:javascript
复制
// Demo code from http://johnpolacek.github.com/superscrollorama/
controller.addTween('#fade', 
  TweenMax.from($('#fade'),.5,{
    css:{opacity:0}, 
    onComplete: function(){alert('test')}
  }));

因此,您可能希望这样做:

代码语言:javascript
复制
jQuery(document).ready(function() {
    //ACTIVATE BUTTON FOR SMOOTH SCROLLING
    jQuery("#scroll_button").scrollTo('#section_two_outer');

    //MOVE ARROWS ON SCROLL
    var controller = jQuery.superscrollorama();
    //INDIVIDUAL ELEMENT TWEEN
    controller.addTween('.apply_now_arrow_left', TweenMax.from(jQuery('.apply_now_arrow_left'), .5, {css:{left:'-2500px'}, onComplete:function(){jQuery('.apply_now_arrow_left').css("left","auto")}}));
    controller.addTween('.apply_now_button', TweenMax.from(jQuery('.apply_now_button'), .5, {css:{opacity: 0}}));
    controller.addTween('.apply_now_arrow_right', TweenMax.from(jQuery('.apply_now_arrow_right'), .5, {css:{left:'5000px'}, onComplete:function(){jQuery('.apply_now_arrow_right').css("left","auto")}}));

当然,YMMV取决于样式表的工作方式,因此您可能会做一些不同的事情,但这是基本的总体方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14387295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档