Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使两个div反向移动_Jquery_Html_Css - Fatal编程技术网

Jquery 使两个div反向移动

Jquery 使两个div反向移动,jquery,html,css,Jquery,Html,Css,对不起,我想我问了这么一个愚蠢的问题。如果有人知道如何在这样滚动时使div上下动画,请帮助我: 你可以在网站的页脚附近看到,它有两个部分,每个部分包含两个图像(一个大一个小,一个在前面,另一个在后面)。我想知道,当我在网站上下滚动时,如何制作2个div,并使它们有一点上下动画(比如parrallax) 谢谢。我看到的解决此类问题的大多数解决方案都涉及某种JS,并收听用户的滚动事件 我使用JQuery编写了一个非常简单的示例。在这里,javascript会在滚动发生时监听,并测量页面顶部的滚动距离

对不起,我想我问了这么一个愚蠢的问题。如果有人知道如何在这样滚动时使div上下动画,请帮助我:

你可以在网站的页脚附近看到,它有两个部分,每个部分包含两个图像(一个大一个小,一个在前面,另一个在后面)。我想知道,当我在网站上下滚动时,如何制作2个div,并使它们有一点上下动画(比如parrallax)


谢谢。

我看到的解决此类问题的大多数解决方案都涉及某种JS,并收听用户的滚动事件

我使用JQuery编写了一个非常简单的示例。在这里,javascript会在滚动发生时监听,并测量页面顶部的滚动距离。然后,它获取该值并将其乘以每个图像的不同值,然后使用
边距顶部
以不同的速率向下推送图像


如果图像像你的例子中那样在页面的下方,我建议从不同于页面顶部的位置进行测量。JSfiddle here:

您必须根据滚动更改css位置属性。所以你必须做如下的事情。在该页边距中,第二个div标记的顶部已更改。 Javascript代码如下所示

<script type="text/javascript">
var lastScrollTop = 0;
$(window).bind('scroll',function(e){
  var st = $(window).scrollTop();
  var cs = $(this).scrollTop();
  var wh = $( window ).height();
  var dv1 = $('#div1').offset().top;
  var dv2 = $('#div2').offset().top;

  var visible_dv1= dv1 - wh;
  //check wether div1 is in the viewport when scroll down
if(st > visible_dv1){
if(cs > lastScrollTop){
    //if scroll down
    $('#div2').css({
    'margin-top': "-=3"
  });
}else{
    //if scroll up
    $('#div2').css({
'margin-top': "+=3"
  });
}
}else{
    $('#div1').removeAttr('style');
    $('#div2').removeAttr('style');
}
  lastScrollTop = cs;
});
</script>
<style>
.container{width:100%;}
.grid{font-size:22px; width:168px; height:168px; display:block; }
#div1{background:#C30;margin-top:1000px;float:none;position:relative;z-index:1000;}
#div2{background:#6C3;margin-top:-100px;margin-left:50px;float:none;}
</style>
</head>

<body>
<div class="container">
    <div class="grid" id="div1">
        div 1
    </div>
      <div class="grid" id="div2">
        div 2
    </div>
</div>
</body>

var lastScrollTop=0;
$(窗口).bind('scroll',函数(e){
var st=$(window.scrollTop();
var cs=$(this.scrollTop();
var wh=$(window.height();
var dv1=$('#div1').offset().top;
var dv2=$('#div2').offset().top;
var visible_dv1=dv1-wh;
//向下滚动时,检查div1是否在视口中
如果(st>visible_dv1){
如果(cs>lastScrollTop){
//如果向下滚动
$('#div2').css({
“页边距顶部”:“-=3”
});
}否则{
//如果向上滚动
$('#div2').css({
“页边距顶部”:“+=3”
});
}
}否则{
$(“#div1”).removeAttr('style');
$(“#div2”).removeAttr('style');
}
lastScrollTop=cs;
});
html和css将如下所示

<script type="text/javascript">
var lastScrollTop = 0;
$(window).bind('scroll',function(e){
  var st = $(window).scrollTop();
  var cs = $(this).scrollTop();
  var wh = $( window ).height();
  var dv1 = $('#div1').offset().top;
  var dv2 = $('#div2').offset().top;

  var visible_dv1= dv1 - wh;
  //check wether div1 is in the viewport when scroll down
if(st > visible_dv1){
if(cs > lastScrollTop){
    //if scroll down
    $('#div2').css({
    'margin-top': "-=3"
  });
}else{
    //if scroll up
    $('#div2').css({
'margin-top': "+=3"
  });
}
}else{
    $('#div1').removeAttr('style');
    $('#div2').removeAttr('style');
}
  lastScrollTop = cs;
});
</script>
<style>
.container{width:100%;}
.grid{font-size:22px; width:168px; height:168px; display:block; }
#div1{background:#C30;margin-top:1000px;float:none;position:relative;z-index:1000;}
#div2{background:#6C3;margin-top:-100px;margin-left:50px;float:none;}
</style>
</head>

<body>
<div class="container">
    <div class="grid" id="div1">
        div 1
    </div>
      <div class="grid" id="div2">
        div 2
    </div>
</div>
</body>

.container{宽度:100%;}
.grid{字体大小:22px;宽度:168px;高度:168px;显示:块;}
#div1{background:#C30;边距顶部:1000px;float:none;position:relative;z-index:1000;}
#div2{背景:#6C3;页边距顶部:-100px;页边距左侧:50px;浮点:无;}
第一组
第2组

您必须共享必要的代码,才能在问题本身中重新创建问题