在动画之前锁定滚动并在之后解锁

时间:2015-04-20 16:26:40

标签: javascript jquery html

无论如何,我可以在动画开始时锁定窗口滚动吗?

我有这个特别的动画:

Element.animate({
 opacity: 1,
 left: '0px'
});

我希望之前锁定窗口滚动。我知道如何在回调中解锁:

Element.animate({
 opacity: 1,
 left: '0px'
}, function(){
 // UNLOCK HERE
});

但是在动画开始之前LOCK窗口滚动怎么样?这是可能的???

我想强迫访问者看动画,然后他/她可以再次滚动..

谢谢!

2 个答案:

答案 0 :(得分:1)



$("div").animate({
 opacity: 1,
 left: '0px'
}, {
  duration:3000,
  start:function() {
    $("body").css("overflow","hidden")
  },
  complete:function() {
    $("body").css("overflow","scroll")
  }
});

body {
  overflow:scroll;
}

div {
  position:relative;
  left:200px;
  opacity:0;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>abc</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

document.body.style.overflow = "hidden";
Element.animate({
    opacity: 1,
    left: '0px'
    }, function(){
         document.body.style.overflow = "";
});

JsBin示例:http://jsbin.com/nonodobavo/1/ - 单击启用并禁用滚动。