gpt4 book ai didi

html - 淡入淡出的按钮过渡不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 18:06:46 25 4
gpt4 key购买 nike

所以我正在尝试模拟我在 Google 页面上看到的按钮转换 我已经尝试了各种方法来使转换平滑,但无法使其表现得像其 Google 对应部分那样平滑。具体来说,我想要#fade_one 的平滑扩展来填充#button 并平滑淡出。到目前为止,我还不能通过同时进行边距和宽度转换来实现这一点,它们各自的缓入和缓出参数的时间似乎不想同步移动。任何帮助将不胜感激!这是谷歌链接http://www.google.com/design/spec/animation/responsive-interaction.html#responsive-interaction-surface-response (向下滚动到“触摸时抬起”的位置),这是我的 fiddle 链接 http://jsfiddle.net/darth_business/hJchP/2/最后这是我的代码:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<link rel="stylesheet" type="text/css" href="button.css">
</head>

<body>

<div id="button">
<div id="fade_one"></div>
<p id="button_text">Click Me</p>
</div> <!-- button ends -->

#button {
height: 100px;
width: 200px;
background-color: #5677fc;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
}
#button:hover #fade_one {
width: 100%;
margin: 0 0 0 0;
opacity: 0;
}
#button_text {
color: #fff;
font-family: Roboto;
font-size: 50px;
}
#fade_one {
position: absolute;
height: 100px;
width: 0px;
margin: 0 0 0 100px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
background-color: #fff;
-moz-transition: width .5s ease-in-out, opacity 1s ease-in;, margin .25s ease-in-out, opacity 1s ease-in;
}

最后我想提一下,如果可以的话,我想尽可能地避免使用 java,谢谢!

最佳答案

您遇到的问题基本上与 CSS 定位有关。 #fade_one 元素具有绝对定位。当您给您一个元素绝对位置时,它会脱离页面的正常流并定位相对于其最近的定位祖先

在您的情况下,您希望 #fade_one 元素覆盖在 #button 元素之上。换句话说,您希望 #fade_one 相对于 #button 定位。但是为了使绝对元素与其祖先相关,该祖先也需要“定位”。 #button 元素不在此处。

因此,当悬停被触发时,#fade_one 元素获得其定位祖先的 100% 宽度——这不是 #button。在 fiddle 中,没有定位的祖先,所以它采用 body 元素的宽度。

诀窍是给你想要包含绝对定位子元素的祖先元素一个位置。在这里,只需给 #button 一个相对位置就足以将其更改为 #fade_one 的定位祖先。

这里是关于定位的更多信息:

https://developer.mozilla.org/en-US/docs/Web/CSS/position#Absolute_positioning

我还去掉了边距,因为它们是不必要的。试试这个 CSS:

#button {
height: 100px;
position: relative;
width: 200px;
background-color: #5677fc;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;

}
#button:hover #fade_one {
width: 100%;
opacity: 0;
left: 0;
right: 0;
}
#button_text {
color: #fff;
font-family: Roboto;
font-size: 50px;
}
#fade_one {
position: absolute;
height: 100px;
width: 0px;
left: 100px;
top: 0;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
background-color: #fff;
transition: left .5s ease-in-out, width .5s ease-in-out, opacity 1s ease-in, opacity 1s ease-in;
}

在这里 fiddle :http://jsfiddle.net/hJchP/11/

关于html - 淡入淡出的按钮过渡不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24498166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com