【问题标题】:Reduce div height from top using jQuery or javascript使用 jQuery 或 javascript 从顶部减少 div 高度
【发布时间】:2017-08-20 05:17:51
【问题描述】:

我想要做的是,当一个事件被调用时,div #target 的高度从顶部减小/增加,或者顶部内容隐藏/可见到特定大小。我想不出办法。

以下代码从底部减少/增加高度,但我希望它从顶部减少。

$(function() {

  $("button:first").on("click", function() {
    $("#target").css("height", "+=50px");
  });

  $("button:last").on("click", function() {
    $("#target").css("height", "-=50px");
  });
});
#target {
  background: purple;
  color: white;
  height: 300px;
  width: 200px;
}

div {
  float: left;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <button>PLUS</button>
  <button>MINUS</button>
</div>
<div id="target">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
    dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
    dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

</div>

【问题讨论】:

  • 那个代码不工作??当用户单击按钮时该功能是否有效?
  • 它的工作,但它从底部减少/增加高度.. 但我希望它从顶部减少
  • 你能把你的代码上传到jsbin吗?并提供链接
  • 如果你从你的内容中删减将会受到阻碍...
  • 是的,我知道,但是这个内容只是为了演示..我的真实内容将与它兼容

标签: javascript jquery html css


【解决方案1】:

您必须获取元素的当前高度,然后对其进行任何数学运算,然后设置新的 CSS 值。

附: 它总是从底部添加和减少,因为这是浏览器呈现内容的方式。从左上到右下。因此,如果您添加或减去高度,它将从底部开始。

这应该可行。

$("button:first").on("click", function() {
    var targ = $("#target"),
          targHt = targ.height(),
          newTargHt = targHt + 50;

    targ.height(newTargHt);
});

$("button:last").on("click", function() {
    var targ = $("#target"),
          targHt = targ.height(),
          newTargHt = targHt - 50;

    targ.height(newTargHt);
});

【讨论】:

  • 您的代码将执行与我的代码相同的操作...我知道浏览器会呈现内容。从左上角到右下角..但我希望有人能解决这个问题:-)
  • 形成我的理解,这不是我们可以从 JS 控制的任何东西。你需要像 C++ 这样的语言。
  • 感谢您的宝贵时间...您部分正确...一些 CSS 成功了
【解决方案2】:

嘿,看看这个垃圾箱:https://jsbin.com/wiqapadeza/edit?html,js,output 我已使用 margin 属性来解决您的问题:

$(function() {
 var top=0;
 $("button:first").on("click", function() {
    top=top+50;
    $("#target").css("height", "+=50px");
    $("p").css("margin-top", top);
  });
 $("button:last").on("click", function() {
  top=top-50;
    $("#target").css("height", "-=50px");
  $("p").css("margin-top", top);
 });
});

希望对你有帮助:

【讨论】:

  • 这对您有帮助吗?
  • 当我点击减号时,底部的文本内容出现问题
  • 你能解释什么问题??
  • 你要解释清楚...人家弄不明白
  • 在您给定的 JSBin 链接中,当按下减号按钮时,文本会变得混乱......这就是问题......我希望你现在明白
猜你喜欢
  • 2018-05-23
  • 2013-01-15
  • 2012-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-29
  • 2014-05-22
  • 1970-01-01
相关资源
最近更新 更多