我正在尝试以较慢的速度滚动侧边栏,直到达到某个点。然后,当用户到达该设定点时,侧边栏应该停止滚动。这是我的jQuery代码:
void func(int n, void *buf);
int main()
{
void *buf;
func(10,buf);
for(int i=0;i<10;i++){
printf("%d\n", ((char*)buf)[i]);
}
printf("in main, after func: %p\n",buf);
}
void func(int n, void *buf)
{
(char*)buf;
char my_array[n];
for(int i=0;i<n;i++){
my_array[i]=i;
}
buf = my_array;
printf("in func: %p\n",buf);
}
在ELSE情况下,一切都很好。问题是当满足IF条件时,即使我向上滚动并再次满足ELSE条件,侧边栏仍然会停留在最低点。
如果有人能帮我理解我做错了什么,并且有更聪明的方法来实现同样的目标,我将不胜感激。
提前致谢。
答案 0 :(得分:0)
如果有人对此感兴趣,我是如何解决的:
$(window).on("scroll", function() {
var sidebar = $('.sidebar');
var stopPoint = $('#stop-point');
var sidebarBottom = sidebar.offset().top + sidebar.height();
var stopPointBottom = stopPoint.offset().top + stopPoint.height() - 30;
$('.sidebar').css({'top' : ($(this).scrollTop()/3)+"px"});
if (($(this).scrollTop()/3) > 284 ) {
$('.sidebar').css({'top' : "284px"});
}
});
当向后滚动到顶部时,sidebarBottom比stopPointBottom大几个像素,因此无法满足条件。