我正在尝试执行以下操作:
- 用slideToggle打开一个div>
- 使用 scrollTop 将用户窗口移动到 div 的顶部
- 然后在用户关闭 div 时基本上反转该过程。
我几乎完成了整个过程,但我遇到了一个问题。当我打开 div 时,我的窗口不会移动到 div 的顶部。但是当我关闭 div 时,我的窗口确实会移动到我想要的位置。
这是我的 jQuery 代码:
// Find the location of a div (x, y)
function divLoc(object) {
var topCord = 0;
// If browser supports offsetParent
if(object.offsetParent) {
do {
topCord += object.offsetHeight;
}
while (object === object.offsetParent);
return topCord;
}
}
$("#open").click(function () {
var newInfo = document.getElementById("newInfo");
var location = divLoc(newInfo);
$("#newInfo").slideToggle('slow', function() {
$('html,body').animate({ scrollTop: location }, 2000);
});
});
我在 jsFiddle 上上传了一个问题示例:Here
最佳答案
您需要更改幻灯片功能:
$("#newInfo").slideToggle('slow', function() {
var self = $(this)
$('html,body').animate({ scrollTop: self.offset().top }, 2000);
});
关于javascript - 用一个链接激活两个 jQuery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16092649/