javascript - 具有自动增量功能的中心div(高度)

标签 javascript jquery html

我有这样的代码,当选中任何复选框时自动增加 div 高度,并在未选中时减少高度,但我想在增加或减少其高度时将 div 在屏幕中垂直居中,我该怎么做?

感谢您的帮助!

http://jsfiddle.net/MetCastle/6adby/

    $(function () {
      $(':checkbox').click(function() {

       $(".scroll").show();

       var delta = $(this).is(':checked') ? -1 : 1;

       if(delta < 0){
        $("#scroll").append( "<h2>" + $(this).next("label").html()  + "</h2>");
        $('.count').text(parseInt($('.count').text()) - 1);
      }
      else{
        $("#scroll h2:contains('" + $(this).next("label").html() + "')").remove();
        $('.count').text(parseInt($('.count').text()) + 1);
      }

      if ($(".count").text() == "0") {
        var children = $('.options').children('input:not(:checked)');
        for(var i= 0; i<children.length; i++) {
          $(children[i]).prop('disabled', true);
        }
      } else {
        var children = $('.options').children('input:not(:checked)');
        for(var i= 0; i<children.length; i++) {
          $(children[i]).prop('disabled', false);
        }
      }

      if ($(".count").text() == "18") {
        $(".scroll").hide();
      }

    });
    });

最佳答案

您可以将 top 设置为 50%,然后在每次添加时重新计算 margin-top 为 -height/2

top:50%

然后设置你的方法

var scroll=$('#scroll');
scroll.css('margin-top',(Math.ceil(scroll.height()/-2)+'px'))

http://jsfiddle.net/6adby/14/

关于javascript - 具有自动增量功能的中心div(高度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24102970/

相关文章:

html - Bootstrap 中的网格布局

html - 白色 X 出现在我拥有的所有浏览器的灰色框中,但 iPad 上的 Safari 除外。我犯了错误还是Safari?

javascript - 在页面刷新 View jsFiddle 后使用 cookie.js 在 div 上保持切换状态

javascript - 提交后表单成功消息消失

javascript - 将具有子数组的对象数组映射并减少到具有父 id 的子数组

javascript - 需要选中 jQuery Validate 复选框吗?

jquery - 如何(重新)绑定(bind)以在 .load(ed) 表单上提交按钮/表单

javascript - 与 React-hook-form 库一起使用时,无法在 MUI 日期选择器中显示帮助程序文本

javascript - jsp 导入和 js 变量

javascript - 在每个选项卡导航中保持 div 等高