首先,我想提到这个网站:http://annasafroncik.it/ 我喜欢动画的呈现方式。
在jQuery中创建类似的功能难吗? 是否有插件可以创建这样的效果?希望有人能帮忙。
首先,我想提到这个网站:http://annasafroncik.it/ 我喜欢动画的呈现方式。
在jQuery中创建类似的功能难吗? 是否有插件可以创建这样的效果?希望有人能帮忙。
基本上,你想要将“hideme”类添加到每个需要隐藏的元素中(然后将该类设置为“opacity:0”);
然后,使用jQuery设置一个$(window).scroll()事件,检查每个“hideme”元素的底部位置与可见窗口的底部边缘之间的位置。
这是它的核心...
/* Every time the window is scrolled ... */
$(window).scroll( function(){
/* Check the location of each desired element */
$('.hideme').each( function(i){
var bottom_of_object = $(this).offset().top + $(this).outerHeight();
var bottom_of_window = $(window).scrollTop() + $(window).height();
/* If the object is completely visible in the window, fade it in */
if( bottom_of_window > bottom_of_object ){
$(this).animate({'opacity':'1'},500);
}
});
});
这是完整的jsfiddle示例: http://jsfiddle.net/tcloninger/e5qaD/
<div id="my_div">Some content</div>
<script type="text/javascript">
$(document).ready(function() {
var my_div = $("#my_div");
var div_top = my_div.offset().top;
$(document).scroll(function() {
if (div_top <= $(document).scrollTop()) {
// do some cool animations...
}
});
});
</script>
我希望我没有搞砸我的语法!
试一下这个。这个方法对我有效。
$(document).scroll(function() {
var y = $(this).scrollTop();
if (y > 400) {
$("body").addClass("allowshow");
} else {
$("body").removeClass("allowshow");
}
});
而这个的 CSS 是
.showmydiv{display:block}
.offset()
而不是.position()
。另外,顺便提一下,重要的是要使用opacity
而不是jQuery的hide()
、toggle()
等方法,因为后者会实际上弄乱元素的位置。 - cregox.offset()
方法允许我们检索元素相对于文档的当前位置。与之形成对比的是.position()
,它检索相对于偏移父元素的当前位置。因此,如果您的偏移父元素与文档不同,则必须使用.offset()
。我会调整代码以反映这一点。 - Timothy Aaron