如果沒有使用JavaScript,只能使用CSS轉換。雖然這些非常令人印象深刻,但就我發現的情況而言,它們並不是特別好,用於條件動畫;他們基本上可以從一個起點到另一個點然後返回(基於瀏覽器本身可用的本地瀏覽器事件),使用JS可以添加/刪除其他類並讓元素移動到您的內容中,但不是用'just'CSS(儘管我很想在這方面證明是錯誤的)。
我已經能夠拿出,到目前爲止最好的是:
#left {
float:left;
width:200px;
}
.right {
height: 0;
background-color: #fff;
margin-left: 205px;
overflow: hidden;
-webkit-transition: all 1s linear;
-ms-transition: all 1s linear;
-o-transition: all 1s linear;
-moz-transition: all 1s linear;
transition: all 1s linear;
}
.right:target {
display: block;
height: 5em;
background-color: #ffa;
-webkit-transition: all 1s linear;
-ms-transition: all 1s linear;
-o-transition: all 1s linear;
-moz-transition: all 1s linear;
transition: all 1s linear;
}
JS Fiddle demo。
這不會從側面滑動(儘管你可以做到這一點,如果你想),因爲它看起來不太好,因爲內容重新迴流,因爲元素的寬度發生了變化。
編輯,因爲我想我可能誤解了原來的問題的一部分:
...我沒有任何JavaScript
喜歡既然如此,以及評論(下)似乎表明,jQuery的一個好的選擇,這可能是值得作爲示範:
$('#left a').click(
function(){
var div = $('div').not('#left').eq($(this).index('#left a'));
var others = $('div[data-visible="true"]');
others.each(
function(){
$(this).animate({
'left' : '2000px'
},1000,function(){
$(this).removeAttr('style data-visible');
});
});
if (div.attr('data-visible')) {
div.animate({
'left' : '2000px'
},1000,function(){
$(this).removeAttr('style data-visible');
});
}
else {
div.animate({
'left' : '210px'
},1000).attr('data-visible',true);
}
});
JS Fiddle demo。
參考文獻:
第一把小提琴恰到好處。按照您的建議添加腳本之前,我會確保創建我的css。這讓我的生活變得更輕鬆 - 非常感謝你! :D – 2012-03-25 22:58:26
想想你想做什麼,並相應地在css中放置元素,以便它們處於最佳位置,以便在需要時立即啓動。 – sg3s 2012-03-25 23:16:44
這裏有一個我到目前爲止css明智的小提琴:http://jsfiddle.net/bridget_kilgallon/sMDyB/4/小提琴工作正常,但轉換不在Dreamweaver中工作..任何想法?再次感謝-BK – 2012-03-26 02:23:12