2014-01-16 20 views
0

讓我再深入解釋一下。我期待有一個關閉屏幕。當用戶點擊一個按鈕時,我想讓div轉換到屏幕上。如何獲取屏幕外的div並使用translateX()將其翻譯到屏幕中間

<a href="#" id="button">Click Me</a> 
    <div style="position:absolute;left:-100%;width:80%;height:80%;background:yellow; id="block" class="objecttransition"></div> 

這裏是JS:

$("#button").click(function(){ 
$("#block".addClass("move"); 
}): 

這裏是CSS:

.move 
    { 
    transform: translateX($$); 
    -webkit-transform: translateX($$); /** Safari & Chrome **/ 
    -o-transform: translateX($$); /** Opera **/ 
    -moz-transform: translateX($$); /** Firefox **/ 
    } 

.objecttransition 
    { 
    transition: all 0.5s linear; 
    -webkit-transition: all 0.5s linear; /** Chrome & Safari **/ 
    -moz-transition: all 0.5s linear; /** Firefox **/ 
    -o-transition: all 0.5s linear; /** Opera **/ 
    } 

我現在的問題是多少錢,我的塊移動到要確保正確的無論屏幕大小如何,塊總是在屏幕中間?

+0

爲什麼不ü'顯示:none'它,只是顯示它需要的時候呢? – deW1

+0

爲什麼你不使用切換?或動畫? – Dwza

+0

原因是我想在phonegap應用程序中使用這些動畫。我之前使用過動畫,問題是它的運行非常糟糕,與切換相同。但是當我直接使用css時,它可以很好地用作電話應用程序 – user481610

回答

1

這實際上可以做到沒有任何Javascript,無論如何這裏是使用jQuery的working example

<div>Hello!</div> 
div { 
    opacity: 0; 
    position: absolute; 
    top: 50%; 
    left: 100%; 
    width: 5rem; 
    line-height: 5rem; 
    text-align: center; 
    background: red; 
    -webkit-transform: translate(-50%, -50%); 
    -moz-transform: translate(-50 -50%); 
    transform: translate(-50%, -50%); 
    -webkit-transition: 1200ms; 
    -moz-transition: 1200ms; 
    transition: 1200ms; } 

div.foo { 
    opacity: 1; 
    left: 50%; 
} 
$(document).on('click', function() { 
    $('div').toggleClass('foo'); 
}); 
+0

謝謝你這樣的合法答案! – user481610

0

首先,你可能應該使用

.toggle()

.animate()

但通過CSS居中,你必須做一些像

.foobar{ 
    height: 100px; 
    width: 100px; 
    position: absolute; 
    left: 50%; 
    top: 50%; 
    margin: -50px 0 0 -50px; /* half of height | 0 | 0 | half of width */ 
} 
2

我不知道你爲什麼試圖移動它到使用translateX()屏幕時,你可以修改left屬性來做到這一點:

HTML

<a href="#" id="button">Click Me</a> 
<div id="block" class="objecttransition"></div> 

CSS

.objecttransition { 
    position: absolute; 
    top: 10%; 
    left: -80%; 
    width: 80%; 
    height: 80%; 
    background-color: yellow; 
    transition: all 0.5s linear; 
    -webkit-transition: all 0.5s linear; 
    -moz-transition: all 0.5s linear; 
    -o-transition: all 0.5s linear; 
} 

.move { 
    left: 10%; 
} 

jQuery的

$('#button').on('click', function() { 
    $('#block').addClass('move'); 
}); 
+0

這不是中期...當我有一個寬屏幕我會遇到問題顯示一些中心! – Dwza

+0

這將使div居中,因爲'left'設置爲'10%',div的'width'爲'90%',在右側留下另一個'10%'空間,佔據整個屏幕並居中div 。 –

+0

哦,好吧:)我不是朋友關閉這樣的動態窗口。當然應該是動態的,但在這種情況下,居中的div的內容將會非常怪異^^ – Dwza

相關問題