【发布时间】:2015-10-11 17:09:57
【问题描述】:
我想要实现的是当您在页面上向下滚动到具有 .skill-container 的 div 时,它会展开。就像这个 JFiddle,但在滚动而不是悬停。
http://jsfiddle.net/fernandosavio/u8MS3/
或者这个:http://jsfiddle.net/zT9Y8/7/
我尝试了一些方法,包括使用 stop().animate 的方法,但没有成功。我认为这是在正确的轨道上..
CSS
.slideOut {
width: 600px;
}
.skill-container {
width: 0;
overflow: hidden;
height: 250px;
background-color: rgba(27,176,206,.6);
float: left;
-webkit-transition: all .5s ease .05s;
-moz-transition: all .5s ease .05s;
-o-transition: all .5s ease .05s;
-ms-transition: all .5s ease .05s;
transition: all .5s ease .05s;
}
JS
$('.skill-container').each(function(){
var imagePos = $(this).offset().top;
var topOfWindow = $(window).scrollTop();
if (imagePos < topOfWindow+200) {
$(this).addClass("slideOut");
}
});
【问题讨论】:
-
请注意,调用
.offset()将触发forced synchronous layout。如果您在每个滚动事件上都这样做,您将在较慢的浏览器/设备上快速降低性能。确保限制运行此代码以响应滚动事件的次数(使用 underscoreJS/lodash 的_.throttle()方法),并且首先读取值,然后再进行任何修改。
标签: javascript jquery css scroll css-transitions