我有一个按钮,试图通过增加填充来使鼠标悬停时明显变大,但是我希望文本保持与当前向下移动时完全相同的大小和位置,这怎么可能?预先谢谢你。
HTML
<button type="submit">
Checkout
</button>
CSS
button{
position: relative;
width: auto;
background-color: #eb4f47;
border-radius: 0;
color: #fff;
border: 2px solid #eb4f47;
font-size: 0.7rem;
font-weight: 800;
letter-spacing: 2px;
text-decoration: none;
text-align: center;
text-transform: uppercase;
padding: 10px 20px;
line-height: 2.2;
vertical-align: middle;
cursor: pointer;
transition: outline 0.1s linear;
box-sizing: border-box;
margin-top: 20px;
}
JQUERY
//Animate Checkout button
$("button").mouseenter(function(){
console.log('enter');
$(this).css("padding", "12px 23px");
}).mouseleave(function(){
console.log('leave');
$(this).css("padding", "11px 24px");
});
答案 0 :(得分:2)
如果您希望在悬停时保留“文本”和相同的“位置”,请尝试使用:
$("button").mouseenter(function() {
$(this).css("padding", "10px 24px 14px 20px");
}).mouseleave(function() {
$(this).css("padding", "10px 20px");
});
演示
$("button").mouseenter(function() {
$(this).css("padding", "10px 24px 14px 20px");
}).mouseleave(function() {
$(this).css("padding", "10px 20px");
});
button {
position: relative;
width: auto;
background-color: #eb4f47;
border-radius: 0;
color: #fff;
border: 2px solid #eb4f47;
font-size: 0.7rem;
font-weight: 800;
letter-spacing: 2px;
text-decoration: none;
text-align: center;
text-transform: uppercase;
padding: 10px 20px;
line-height: 2.2;
vertical-align: middle;
cursor: pointer;
transition: outline 0.1s linear;
box-sizing: border-box;
margin-top: 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="submit">
Checkout
</button>
答案 1 :(得分:1)
您可以仅通过CSS来执行此操作,而无需jQuery。 根据您的要求,这就是我的理解,请告诉我是否需要其他东西
button{
position: relative;
width: auto;
background-color: #eb4f47;
border-radius: 0;
color: #fff;
border: 2px solid #eb4f47;
font-size: 0.7rem;
font-weight: 800;
letter-spacing: 2px;
text-decoration: none;
text-align: center;
text-transform: uppercase;
padding: 10px 20px;
line-height: 2.2;
vertical-align: middle;
cursor: pointer;
transition: all 0.2s linear;
box-sizing: border-box;
margin-top: 20px;
}
button:hover {
padding: 10px 24px 12px 20px;
}
<button type="submit">
Checkout
</button>
答案 2 :(得分:0)
尝试使用悬停伪类并转换scaleX()scaleY()
button:hover {
transform: scaleX(1.4) scaleY(1.6);
}
答案 3 :(得分:0)
我是这样做的。您可以根据需要进一步添加CSS
#checkout{
font-size: 15px;
position: absolute;
padding: 5px 5px 5px 5px;
transition: 0.30s;
}
#checkout:hover{
padding: 20px 20px 20px 20px;
transition: 0.30s;
}
<button type="submit" id="checkout">
Checkout
</button>
答案 4 :(得分:0)
Sackey的建议很有效-
//Animate Checkout button
$("button").mouseenter(function(){
console.log('enter');
$(this).css("outline", "2px solid #eb4f47");
}).mouseleave(function(){
console.log('leave');
$(this).css("outline", "none");
});
非常感谢所有帖子!