javascript - 用一个链接激活两个 jQuery 函数

标签 javascript jquery html

我正在尝试执行以下操作:

  • 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);
});

http://jsfiddle.net/hSHz5/

关于javascript - 用一个链接激活两个 jQuery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16092649/

相关文章:

Visual Studio 2017/19 中的 JavaScript Azure Function 支持(不是 VS Code)

javascript - 相当于在vanillajs中设置html和body height为window height

javascript - 如何在页面加载时仅显示特定幻灯片

javascript - 如何在alexa sdk V2技能中获取亚马逊电子邮件

javascript - 以 jquery 形式序列化变量设置 jquery 延迟

javascript - 是否可以使用自定义属性(JavaScript API 1.3 for Office)

javascript - each() 函数中 jqueryeach() 函数的返回值和作用域

javascript - 如果选中复选框,如何从表中获取数据值?

html - 为什么在某些情况下背景颜色会被忽略?

javascript - jQuery 滑出问题