不透明度并没有改变,也没有转变,任何想法我做错了什么? (chrome浏览器)
如果我要添加'transitions'类,我只想将不透明度设置为0。它会消失,但不会先淡出。
http://jsfiddle.net/chovy/t37k3/9/
<div></div>
<a href="#" class="start">start</a>
div {
width: 100px;
height: 100px;
background: #f00;
}
div.transitions {
-moz-transition: opacity 1s, -moz-transform 1s;
-webkit-transition: opacity 1s, -webkit-transform 1s;
-o-transition: opacity 1s, -o-transform 1s;
transition: opacity 1s, transform 1s;
}
$(".start").click(function(e){
e.preventDefault();
$("div").css('opacity', 0).addClass('transitions').css('opacity', 1);
});
编辑:我忘了锚上的课程,并且在现实生活中使用内联不透明。
更新:这是我使用的解决方案:https://stackoverflow.com/a/16848785/33522
答案 0 :(得分:1)
小提琴中的选择器不匹配任何元素
<a href="#" class="start">start</a>
$(“。start”)将匹配任何带有“start”类的元素
<强>更新强>:
在css中添加:
.notransition {
-webkit-transition: none !important;
-moz-transition: none !important;
-o-transition: none !important;
-ms-transition: none !important;
transition: none !important;
}
js code:
$(".show").click(function(e){
e.preventDefault();
$("div").css('opacity', 0) // sets the opacity to 0
.addClass("notransition") // add notransition class (will override any other transitions
.addClass("transitions"); // add the transition css rules (notransition overrides)
// need this in a setTimeout in order for the
// code to delay and let the jquery chaining finish
// before we remove notransition and set opacity to 1
setTimeout(function () {
$("div").removeClass("notransition")
.css('opacity', 1)
}, 0);
});
答案 1 :(得分:0)
的 LIVE DEMO 强>
HTML:
<div></div>
<a href="#" class="start">start</a> <!-- ADD A CLASS -->
CSS:
div {
opacity: 0.1;
width: 100px;
height: 100px;
background: #f00;
}
.transitions {
-moz-transition: opacity 1s; /* NO NEED TO TRANSFORM */
-webkit-transition: opacity 1s;
-o-transition: opacity 1s;
transition: opacity 1s;
opacity:1;
}
JQ:
$(".start").click(function(e){
e.preventDefault();
$("div").addClass('transitions');
});
答案 2 :(得分:0)
添加到PSL的答案......
如果要添加类以进行转换,请将所需的最终结果css规则放在要添加到元素的类中。
所以你的.transitions类看起来像这样。
div.transitions {
opacity: 1;
-moz-transition: opacity 1s, -moz-transform 1s;
-webkit-transition: opacity 1s, -webkit-transform 1s;
-o-transition: opacity 1s, -o-transform 1s;
transition: opacity 1s, transform 1s;
}
您的点击仅包含
$(".start").addClass('transition')
答案 3 :(得分:0)
http://jsfiddle.net/chovy/t37k3/42/
<div></div>
<a href="#" class="start">start</a>
$(".start").click(function(e){
e.preventDefault();
var transitions = true
, $div = $("div");
$div.removeClass('transitions');
if ( transitions ) {
$div.addClass('start');
setTimeout(function(){
$div.addClass('transitions').removeClass('start');
}, 20);
}
});
div {
width: 100px;
height: 100px;
background: #f00;
}
div.start {
opacity: 0.1;
}
div.transitions {
-moz-transition: opacity 2s;
-webkit-transition: opacity 2s;
-o-transition: opacity 2s;
transition: opacity 2s;
opacity: 1;
}
这就是我最终要做的事情。如果我们使用转换,我会添加一个.start
类来设置默认状态。然后我在短暂停顿后添加.transitions
类,以便.start
状态生效。
然后我在后续点击时重置它(没有必要,但有助于小提琴演示)。
欢迎提出意见。如果可能的话,我想避免在javascript中使用任何内联css。