在PhoneGap中只有一个CSS转换有效
Only one CSS transition works in PhoneGap
我正在尝试在PhoneGap中单击更改图像大小。我有这样的代码:
HTML
<div id="saber"><div id="handle"><img src="imgs/handle.png"></div>
<div id="blade" class="blade-opened"><img src="imgs/blade-blue.png"></div></div>
JavaScript
$("#saber").bind( "click",
function ()
{
if ($("#blade").height() > 0)
{
$("#blade").addClass("blade-closed");
}
else
{
$("#blade").removeClass("blade-closed");
}
}
);
CSS
#blade
{
text-align: center;
left: 0;
right: 0;
display: inline-block;
position: fixed;
z-index: 1;
}
.blade-opened
{
bottom: 5%;
height: 81.25%;
-webkit-transition: all 1s;
}
.blade-closed
{
bottom: 29%;
height: 0;
}
#blade img
{
height: 100%;
}
但当我在手机上打开它时,图像会随着过渡而缩小,但当我再次点击时,它会在1秒后立即出现
有人能帮我吗?
非常感谢。
编辑
我不知道发生了什么事,但它现在起作用了。我什么都没改变。奇怪
但现在,当我点击某个东西时,它会变成高亮蓝色,这在图像上不是很好。有人能帮我吗?
@Kuxa,
更改:
-webkit-transition: all 1s;
到:
-webkit-transition: height 1s;
FWIW:这也会起作用:
transition: height 1s;
您还需要设置position
,如下所示:
position:relative;
我一直找不到好的文件来解释这一点。
UPDATE我应该添加,当使用位置时,可以使用任何值,但"初始"状态除外,即static
添加或删除类不需要检查高度。只需切换类别
$("#saber").bind( "click", function () {
$("#blade").toggleClass("blade-closed");
});
您需要添加已打开的类以增加高度。
$("#saber").bind( "click",
function ()
{
if ($("#blade").height() > 0)
{
$("#blade").removeClass("blade-opened");
$("#blade").addClass("blade-closed");
}
else
{
$("#blade").removeClass("blade-closed");
$("#blade").addClass("blade-opened");
}
});
相关文章:
- Css转换没有响应
- 将webkit从CSS转换为JavaScript
- css转换高度不起作用
- 鼠标悬停时的css转换
- CSS转换立即进入最终状态
- 选项卡式元素上的动画CSS转换
- 通过JS添加类时应用CSS转换
- 更好的解决方案HTML元素幻灯片从右侧CSS转换
- 使用JavaScript触发CSS转换
- 使用带有javascript的span创建CSS转换
- jQuery addClass中断延迟,或者jQuery延迟中断CSS转换,或者两者兼而有之
- CSS转换获胜't在没有“setTimeout”的情况下运行
- CSS转换后用新内容替换空白
- 如何在不使用css转换的情况下将jQuery animate与css3属性相结合
- CSS 转换不会在没有 setTimeout 的情况下运行
- 拖动和调整 CSS 转换元素的大小
- 当到达屏幕顶部时,jquery/css转换
- CSS-3转换错误,菜单出现卡住
- 在CSS转换期间显示元素的大小值
- 我可以检测任意CSS转换是否已经启动吗