如何仅在元素的上半部设置高度动画

时间:2019-02-28 10:40:04

标签: javascript jquery

如果css说:test,为什么padding:0在这里有填充的顶部和底部?

但是主要问题是-单击按钮上没有数字的高度动画-只是背景动画。

我需要设置数字hieght的动画,但要保持数字的下半部分仍然可见。

7的上半部分应该删掉。

有可能吗?

$('button').on('click', function(){
let half = $('#test').height() / 2;
$('#test').animate({height: half}, 500);
})
#test{
position:absolute;
font-size:14vw;
font-weight:bold;
background:gold;
margin:0;
padding:0;
}

#btn{
margin-left:54px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='test'>7</div>
<br>
<button id='btn'>CLICK</button>

3 个答案:

答案 0 :(得分:2)

overflow-y:hidden;添加到CSS以隐藏溢出区域:

$('button').on('click', function(){
let half = $('#test').height() / 2;
$('#test').animate({height: half}, 500);
})
#test{
overflow-y:hidden;
position:absolute;
font-size:14vw;
font-weight:bold;
background:gold;
margin:0;
padding:0;
}

#btn{
margin-left:54px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='test'>7</div>
<br>
<button id='btn'>CLICK</button>

答案 1 :(得分:2)

根据您的需要,您需要从顶部隐藏数字,以便可以在顶部添加覆盖层并增加点击时的高度。这将隐藏数字

我为叠加添加了CSS。如果您需要其他任何更改,请ping me:)

$('button').on('click', function() {
  let half = $('#overlay').height() * 2;
  $('#overlay').animate({
    height: half
  }, 500);
})
#test {
  position: absolute;
  font-size: 14vw;
  font-weight: bold;
  background: gold;
  margin: 0;
  padding: 0;
  overflow:hidden;
}

#btn {
  margin-left: 54px;
}

#overlay {
    z-index: 1;
    position: absolute;
    display: flex;
    width: 100%;
    height: 1px;
    background: white;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='test'><div id="overlay"></div>7</div>
<br>
<button id='btn'>CLICK</button>

答案 2 :(得分:1)

纠正@Azeem Aslam的答案,将覆盖层的高度从1像素增加到#test div大小的一半

$('button').on('click', function() {
  let half = $('#test').height() / 2;
  $('#overlay').animate({
    height: half
  }, 500);
})
#test {
  position: absolute;
  font-size: 14vw;
  font-weight: bold;
  background: gold;
  margin: 0;
  padding: 0;
  overflow:hidden;
  line-height:0.74;
}

#btn {
  margin-left: 54px;
}

#overlay {
    z-index: 1;
    position: absolute;
    display: flex;
    width: 100%;
    height: 1px;
    background: white;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='test'><div id="overlay"></div>7</div>
<br>
<button id='btn'>CLICK</button>