javascript - jQuery 事件滚动顶部

标签 javascript jquery

#mydiv是一个可点击的方框Div,点击#mydiv会添加一个类.openDiv

如果有类.openDiv

if($('#mydiv').hasClass('openDiv')){
 $(window).scrollTop(); //value is 300px
}

如果只是加载页面(没有 .openDiv )

$(window).scrollTop(); //value is 200px

所以我的变量就像

if($('#mydiv').hasClass('openDiv')){
  thisTop =  $(window).scrollTop() - 100;
}else{
  thisTop =  $(window).scrollTop() 
}

如您所见,我对其进行了 100 不同值的硬编码。有没有办法让它动态计算?谢谢!

最佳答案

试试这个:

var div = $('#mydiv'), scrollTop = $(window).scrollTop();
thisTop = div.hasClass('openDiv') ? scrollTop - div.height() : scrollTop;

如果#mydiv具有openDiv类,则从$(window).scrollTop()中取出它的高度,否则返回$(window).scrollTop().

关于javascript - jQuery 事件滚动顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18304316/

相关文章:

javascript - React setState 不改变特定属性的状态

javascript - 优化事件处理 : one large, 还是小很多?

javascript - 如何验证 PHP Codeigniter 中下拉菜单中的选项?

javascript - 拒绝执行来自 'URL' 的脚本,因为它的 MIME 类型 ('text/html' ) 不可执行,并且启用了严格的 MIME 类型检查

javascript - 如何将每个 itemController 设置为(ember 1.11 beta3)?

javascript -/regex/Literals 总是 RegExp 对象吗?

javascript 真实数字

jquery - 使用增量 id 重复 html 单元

javascript - Jquery 事件不会在 ajax 调用后触发

javascript - 在我的 jQuery 表达式中使用 "setTimeout()"