javascript - 尝试使 div 从页面顶部向下和向上滑动使用 - 顶部定位和点击时的 jquery 动画

标签 javascript jquery css html

基本上,当用户点击 .selector 元素时,div .dropDown 应该向上滑动 -100px,当他们再次点击时,它应该向下滑动到顶部:0px。

$(document).ready(function(){
    var orig = $(".dropDown").outerHeight(); // 104
    var top = $(".dropDown").css("top");
if(top == "0px"){
    $(".selector").on("click", function(e){
        $(".dropDown").animate({top : "-100px"}, 400, 
            function(){
var top = $(".dropDown").css("top");
alert(top);                 
        })
    })
}
// else{
//  $(".selector").on("click", function(e){
//      $(".dropDown").animate({top : "0px"}, 400);
//      $("body").css({"background-color" : "green"})
//  })
// }
if($(".dropDown").css("top") == "-100px"){
    $(".selector").on("click", function(e){
        $(".dropDown").animate({top : "0px"}, 400);
        $("body").css({"background-color" : "green"})

    })
}

});

逻辑:如果 dropDown div 的顶部位置为零,则意味着该 div 是打开的(可见的)。当用户单击按钮隐藏 dropDown div 时,div 变为 -100px(隐藏)。然后如果用户想再次看到 div,他们点击按钮,div 回到顶部:0。

当顶部位于 -100px 时,我遇到了问题,当我单击按钮时,下拉菜单不会向下滑动。请帮忙。谢谢。

当我设置 jsfiddle 时我意识到到目前为止我所拥有的在 FF 中有效,但在 chrome 中无效。这对我来说很奇怪,如果你也能帮我解决那个问题,那就太好了。

最佳答案

您可以通过按展开时应显示的方式布置 div 并设置 display:none 来实现此目的,但将可点击的选项卡作为子元素取出,以便它始终可见。然后,您可以使用 slideToggle 大大简化您的 javascript。 300 值仅指定您希望它滑动的速度。

例子:

$(document).ready(function(){
     $('.selector').click(function () {
         $('.dropDown').slideToggle(300);
     });
});

updated jsFiddle

编辑

此时维护边框只是样式,您可以添加一个容器 div 来保存您的信息选项卡,然后只给它一个顶部边框。这是一个 further updated jsFiddle .

关于javascript - 尝试使 div 从页面顶部向下和向上滑动使用 - 顶部定位和点击时的 jquery 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20750784/

相关文章:

javascript - 使用php和javascript加载连接到mysql的图表,无需刷新页面

Javascript 不从数组中选择背景颜色

javascript - AJAX post 变量到 PHP 不起作用

css - 在 flex 元素上使用边距

javascript - jQuery 自动完成数据未定义错误

javascript - 我可以创建一个 HTML5 表单,将答案直接发送到我的电子邮件,而无需使用 PHP 或 SQL

javascript - 如何使用 Javascript 在单个对象中映射多个对象数据?

jquery - 如何在 jQuery 中选择没有给定类的所有元素?

javascript - 如何更改滚动部分?

html - 我的段落不会上下移动;