使用变量设置具有动画功能的 ScrollTop

Posted

技术标签:

【中文标题】使用变量设置具有动画功能的 ScrollTop【英文标题】:Using a variable to set a ScrollTop with animate function 【发布时间】:2022-01-07 13:49:40 【问题描述】:

我有一系列折叠和打开的 div,我希望浏览器滚动到打开的 div 的顶部。

我正在尝试使用锚链接并将锚链接保存在变量“scrollClass”中,但我的代码无法正常工作。但是,当我测试控制台日志时,它会准确地输出我希望它输出的内容。我不确定这是否是一种语法情况。

如果我能在这里得到任何帮助,我将不胜感激。

提前致谢。

<script>
$('.discover-btn-open, .discover-btn-open a').click(function(e) 
e.preventDefault();
var currentElement = $(document.activeElement);
var scrollClass = $(this).closest('.discover-inner').find('#discover- anchor').attr('href');
$(".discover-inner").removeClass("discover-inner-open");
$(this).closest(".discover-inner").addClass("discover-inner-open");
console.log(scrollClass);
$('html, body').animate(scrollTop: $(scrollClass).offset().top - 100, 450);
);

$('.discover-close, .discover-close a').click(function(e) 
e.preventDefault();
$(this).closest(".discover-inner").removeClass("discover-inner-open");
);

</script>

【问题讨论】:

可能登录$(scrollClass).offset() 不确定你的意思。 【参考方案1】:

您正在将属性href 设置为scrollClass,当您尝试将其用作元素时,它将不起作用。尝试删除attr("href") 部分,然后使用.offset

您也可以通过 jQuery 触发对要滚动到的 anchor 元素的点击。

【讨论】:

是的,谢谢,这帮助很大。立即获取滚动坐标是可行的方法。 var scrollClass = $(this).closest('.discover-inner').offset().top; $("html, body").animate(scrollTop: scrollClass -100, 450); 太棒了!很高兴你成功了

以上是关于使用变量设置具有动画功能的 ScrollTop的主要内容,如果未能解决你的问题,请参考以下文章

使用 UITableViewDropCoordinator 通过具有可区分数据源的 dropDelegate 为 drop 设置动画

具有自动反转功能的 UIView 动画

具有 CSS 变量和 @keyframes 的 CSS 动画未在 Safari 上更新

如何为具有多个 y 轴的图表设置动画(python)

Qt炫酷动画5.QVariantAnimation可变属性类QPropertyAnimation动画属性类

Qt炫酷动画5.QVariantAnimation可变属性类QPropertyAnimation动画属性类