【问题标题】:Jquery - Animate by scroll positions to work the same on window resizeJquery - 通过滚动位置动画以在窗口调整大小时相同
【发布时间】:2015-10-15 08:45:44
【问题描述】:

嘿,我有一个非常烦人的问题,它可能有一个简单的解决方案,但我终其一生都无法解决它。

基本上我有两个图像都是 50% 的容器现在目标是两个图像根据滚动位置滑入(左/右),一旦它到达容器的顶部,两个图像都会坐是地方。

现在我已经做到了这一点,唯一的问题是当我调整页面大小时,两个图像的位置都是错误的。我显然做了一个与 scroll() 函数具有相同逻辑的 resize() 函数,但我仍然一无所获。这是我的代码

var page_width  =  $(document).outerWidth(),
            page_height =  $(document).outerHeight(),
            left_image  =  $('.split-screen.youth'),
            right_image =  $('.split-screen.elite'),
            offset      =  (page_width) / page_height;

        left_image.css({'left':'0px'});
        right_image.css({'right':'0px'});

        $(window).on('scroll', null, function(){
            var scrollTop =  $(window).scrollTop(),
                calc      =  -(scrollTop*offset); 

            left_image.css({
                'margin-left': 'calc(100% + '+calc+'px)'

            });

            right_image.css({
                'margin-right': 'calc(100% + '+calc+'px)'
            });
        });

        $(window).resize(function(){
            // something ???
        });

这里是这个问题的 jsFiddle,虽然它看起来并不完全准确,但你明白了。当您调整滚动位置的大小时,我需要margin-left/margin-right 值是正确的。

【问题讨论】:

  • 我们需要更多信息来准确确定问题所在以及您要显示的内容。您能否提供一些问题的屏幕截图和您想要实现的目标的模型?也许 JSFiddle 会有所帮助。
  • 好吧,如果我在 Chrome 中调整 jsfiddle 的大小,则浏览器会正确调整图像的大小。也许您正在使用特定的浏览器?
  • 再试一次,我错误地重新加载到演示中
  • 嗯,它们是重叠的,也许是你的问题?好的,我看到你正在重新加载它:)

标签: javascript jquery html css scroll


【解决方案1】:

我认为您的问题是您仍在使用旧的偏移值。只需先更新您的全局值,这对我有用(请参阅:https://jsfiddle.net/a7tfmp37/2/):

 $(window).resize(function(){
    page_width  =  $(document).outerWidth(),
    page_height =  $(document).outerHeight(),
    offset      =  (page_width) / page_height;
    var scrollTop =  $(window).scrollTop(),
        calc      =  -(scrollTop*offset); 
    left_image.css({
        'margin-left': 'calc(100% + '+calc+'px)'

    });

    right_image.css({
        'margin-right': 'calc(100% + '+calc+'px)'
    });
});

【讨论】:

  • 那行不通 - 当你缩小它时它会起作用,但当你放大它时它就不起作用了。
  • 你到底想要什么?当我调整浏览器的大小(使其更薄)时,图像会变小,而当我将其变大时,图像会变大?当我改变高度时,你也想缩放吗?
  • 我希望容器始终为 100%,图像始终为 50%,这很好 - 只是滚动位置不是这样。
  • 所以您不希望图像“重叠”?
  • 嗯,“最简单”的事情是让你的容器高度不是 100vh,98vh 适合
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-06
  • 1970-01-01
  • 1970-01-01
  • 2012-06-08
  • 2011-09-15
  • 2014-05-05
  • 1970-01-01
相关资源
最近更新 更多