标签: css-transitions

如何在jQuery中使用transitionend?

我需要在允许函数再次重复之前检测CSS转换是否已完成,以防止搞乱边距.

那么我有多喜欢的东西

if (transitionend == true) {
  // do stuff
} else {
  // do nothing
}
Run Code Online (Sandbox Code Playgroud)

jquery css-transitions

33
推荐指数
2
解决办法
4万
查看次数

CSS转换VS转换

CSS转换和转换之间的主要区别是什么?

这两者都用于改变对象的当前形状/状态.(你可以用JS等做漂亮的动画..)

但是我仍然不清楚哪一个用于何处以及用于什么.

css3 css-transitions css-transforms

33
推荐指数
2
解决办法
2万
查看次数

使用CSS从中间扩展div而不是上下左侧

我不确定这是否可行,但我认为使用CSS变换来创建一个效果,其中div从其中心扩展到预定的高度和宽度,而不是仅从左上角开始.

例如,如果我有(演示)

<div id="square"></div>
Run Code Online (Sandbox Code Playgroud)

和(供应商前缀为了简洁而遗漏)

#square {
    width: 10px;
    height: 10px;
    background: blue;
    transition: width 1s, height 1s;
}
#square:hover {
    width: 100px;
    height: 100px;
}
Run Code Online (Sandbox Code Playgroud)

在悬停时,这会将方块向右扩展到100px.我想从中间扩展它.

我知道我可能会使用transform: scale(x)(演示),但这并没有真正为我提供一个非常"像素完美"的布局(因为它是基于百分比的),它也不会影响周围的布局(使其他文档流中的元素调整为其大小调整).这基本上是我想要做的,除非文档流相应地受到影响.

有没有人知道没有javascript的方法吗?

css css3 css-transitions

32
推荐指数
1
解决办法
5万
查看次数

将CSS3过渡设置为none

我如何制作它以便CSS转换在媒体查询或其他任何情况下都不起作用?例如:

@media (min-width: 200px) {
    element {
        transition: width 1s;
    }   
}

@media (min-width: 600px) {
    element {
        transition: none; // SET TO NO TRANSITION
    }   
}
Run Code Online (Sandbox Code Playgroud)

css html5 css3 css-transitions

32
推荐指数
2
解决办法
5万
查看次数

如何使用transform:translateX在父级上水平移动子元素100%

所有,

我希望能够使用translateX它的父元素(即,从左边缘到右边缘)100%的方式为子元素设置动画.

挑战在于百分比是translateX指元素本身,而不是父母.

所以,例如,如果我的html看起来像这样:

<div id="parent">
    <div id="child">
</div>
Run Code Online (Sandbox Code Playgroud)

我的CSS就像这样(省略了供应商前缀):

#parent {
    position: relative;
    width: 300px;
    height: 100px;
    background-color: black;
}
#child {
    position: absolute;
    width: 20px;
    height: 100px;
    background-color:red;
    transform: translateX(100%);
}
Run Code Online (Sandbox Code Playgroud)

这不起作用 - 孩子只移动20px(自身的100%),而不是整个父移动.(你可以在jsfiddle上看到这个):

在此输入图像描述

我可以做这个:

#child {
    position: absolute;
    width: 20px;
    height: 100px;
    background-color:red;
    -webkit-transform: translateX(300px) translateX(-100%);
    transform: translateX(300px) translateX(-100%);
}
Run Code Online (Sandbox Code Playgroud)

这工作(在jsfiddle上再次看到 ),因为它首先移动子300px(父的全宽),减去20px(子的宽度).然而,这取决于具有固定的已知像素尺寸的父母.

在此输入图像描述

但是,在我的响应式设计中 - 我不知道父级的宽度,它会改变.

我知道我可以使用left:0right:0,但是左/右的动画性能比translateX差很多(感谢Paul Irish!).

有没有办法做到这一点?

提前致谢.

html5 css3 css-transitions css-transforms

32
推荐指数
3
解决办法
4万
查看次数

Webkit支持渐变过渡

我想知道是否有人知道webkit何时支持渐变的转换?
例如,以下代码在Chrome 6中不起作用(假设渐变过渡是一个链接):

.grad-transition {
     background-image: -webkit-gradient(linear, 0 0, 0 100%, from(white), to(black));
     -webkit-transition: background-image .5s;
}
.grad-transition:hover {
     background-image: -webkit-gradient(linear, 0 0, 0 100%, from(black), to(white));
}
Run Code Online (Sandbox Code Playgroud)

webkit css3 css-transitions

31
推荐指数
2
解决办法
2万
查看次数

CSS3 Transition突出显示在JQuery中创建的新元素

我想使用CSS3颜色过渡将高亮淡化效果(黄色到透明)应用于使用JQuery附加到标记的新元素.

CSS

#content div {
    background-color:transparent;
    -moz-transition:background-color 2s;
    -webkit-transition:background-color 2s;
    -o-transition:background-color 2s;
    transition:background-color 2s;
}

#content div.new {
    background-color:yellow;
}
Run Code Online (Sandbox Code Playgroud)

HTML

<div id="content"></div>
<a id="add-element" href="#">add new element</a>
Run Code Online (Sandbox Code Playgroud)

JS

$('#add-element').click(function() {
    var newElement = $('<div class="new">new element</div>');
    $('#content').append(newElement);
    newElement.removeClass('new');
});
Run Code Online (Sandbox Code Playgroud)

单击链接时,将创建新元素.它的类是"新"(背景颜色为黄色),它附加到HTML标记.我应该能够立即删除"新"类以触发背景颜色过渡到透明(或任何其他颜色).我显然做错了,因为新元素的背景颜色立即显示为透明,没有过渡效果.我知道我可以在JQuery UI中执行此操作,但我想使用CSS3过渡.

jsfiddle在这里:

http://jsfiddle.net/paulaner/fvv5q/

jquery transition css3 css-transitions

31
推荐指数
3
解决办法
2万
查看次数

在以下内容中设置CSS转换属性的动画:在/之前伪类

是否可以为CSS伪类设置动画?

说我有:

#foo:after {
    content: '';
    width: 200px;
    height: 200px;
    background: red;
    display: block;
    -webkit-transition: all 1s ease-in-out;
    -moz-transition: all 1s ease-in-out;
    -o-transition: all 1s ease-in-out;
}

#foo:hover:after {
    width: 250px;
    height: 250px;
}
Run Code Online (Sandbox Code Playgroud)

这甚至可能吗?我一直在测试,到目前为止我似乎无法找到解决方案.我正在尝试使用Modernizr减少我需要的JavaScript支持量.

我已经有了一个JavaScript方法,所以请不要选择JavaScript.

演示:http://jsfiddle.net/MxTvw/

css css3 pseudo-element css-transitions

29
推荐指数
2
解决办法
4万
查看次数

CSS转换为:before和:after伪元素

似乎无法使用-webkit-transition为伪元素设置动画.下面的小提示显示我在Chrome/Safari中运行时的意思,我想现在不支持这个?

http://jsfiddle.net/4rnsx/130/

css webkit css3 pseudo-element css-transitions

29
推荐指数
3
解决办法
3万
查看次数

使用javascript(没有modernizr)检测css转换?

如何使用javascript检测浏览器是否支持css转换(并且不使用modernizr)?

javascript css cross-browser css-transitions

28
推荐指数
3
解决办法
2万
查看次数