我想要一個推拉門的效果,用戶點擊一個鏈接,並在當前內容下降,並揭示新內容。克里斯凱里在原型中做到了這一點,但我想使用jQuery。有沒有插件或教程?我看到一個,但它非常基本。如何使滑動門的效果?
回答
這裏有一個基本的例子,讓你開始:
試試看:http://jsfiddle.net/yuF8S/3/(更新切換內容)
JS
$('a').click(function() {
var index = $(this).index();
$('#door').animate({top:0}, 500, function() {
$('#content > .contentItem').hide()
.eq(index).show();
$(this).animate({top: -200}, 500);
});
});
HTML
<div id='container'>
<div id='content'>
<div class='contentItem'>content display 1</div>
<div class='contentItem'>content display 2</div>
<div class='contentItem'>content display 3</div>
</div>
<div id='door'></div>
</div>
<div id='links'>
<a href='#'>content 1</a>
<a href='#'>content 2</a>
<a href='#'>content 3</a>
</div>
CSS
#container {
float:left;
width: 200px;
height: 300px;
clip: auto;
overflow: hidden;
position: relative;
}
#content {
width: 100%;
height: 200px;
background: yellow;
position: absolute;
bottom: 0;
}
.contentItem {
display:none;
}
.contentItem:first-child {
display:block;
}
#door {
width: 100%;
height: 100%;
position: absolute;
top: -200px;
background: black;
}
#links {
float: left;
}
a {
display: block;
}
$("#elementId").click(function(){
$(this).slideUp();
});
了slideDown()是倒數。
強制性[文檔參考](http://api.jquery.com/category/effects/)鏈路。 – Phrogz 2010-11-17 18:33:40
'slideUp()'將隱藏顯示:none的元素,網站上顯示的效果是一個移動的div,而不是一個消失的效果。 – 2010-11-17 18:37:24
是的。因此幻燈片在名稱。重點是一旦動畫完成,div需要保持可見並始終保持相同的高度,另一個原因是「slideUp()」不合適。 – 2010-11-17 18:49:56
基本上想要使用animate function點擊新位置時移動絕對位置的div。
$('#moving-div').click(function() {
if ($(this).position().top < 150) {
$(this).animate({
top: 200px
}, 1000);
} else {
$(this).animate({
top: 100px
}, 1000);
}
});
這會是div還是這是什麼?對不起,我在這個 – MyHeadHurts 2010-11-17 18:39:24
真的很新,沒問題,我的代碼是相當一般的。 jQuery首先選擇你想要移動的div(在代碼的第一行),然後綁定一個函數,當一個點擊甚至發生在div上時被執行。當它發生時,函數代碼決定是否給this賦值(這是一個點擊事件綁定到的移動div,當然你必須自己決定這些邊界) – 2010-11-17 18:45:10
正在發生的事情有,就是他有三個獨立的DIV組成三個菜單中,只有一個是一次明顯的。覆蓋所有這些菜單DIV是一個「門」,因爲他稱之爲封面,如果您正確設置定位,它會比菜單DIV更高的z-index,因此出現在它的頂部。蓋子可以拉伸高度,導致菜單頂部的「門」增長。
的過程是:
- 讓按鈕上的點擊事件觸發動畫
- 動畫()在其默認大小蓋的高度提高,以完全覆蓋菜單
- 隱藏()當前可見的菜單,並顯示()一個可見
- animate()蓋的高度減少到默認大小
如果您有以下HTML(使第一個菜單最初可見,其他人隱藏,並且封面位於可見菜單正上方的「打開」高度處,並具有更高的z-index覆蓋可見菜單):
<div id="menu-container">
<div id="cover"></div>
<div id="menu-contact" class="menu"></div>
<div id="menu-home" class="menu"></div>
<div id="menu-products" class="menu"></div>
</div>
<div id="buttons">
<div id="contact" class="menu-button"></div>
<div id="home" class="menu-button"></div>
<div id="products" class="menu-button"></div>
</div>
那麼你的jQuery的可能是:
$('.menu-button').click(function() {
var cMenuButton = $(this);
var cMenuID = cMenuButton.attr('id');
var coverHeight = $('#cover').height();
var cVisibleMenu = $('.menu:visible');
var cVisibleHeight = cVisibleMenu.height();
$('#cover').animate({'height': coverHeight + cVisibleHeight}, 600, 'linear', function() {
$('.menu').hide();
$('#menu-' + cMenuID).show();
var newMenuHeight = $('#menu-' + cMenuID).height();
var coverHeight = $('#cover').height();
$('#cover').animate({'height': coverHeight - newMenuHeight}, 600, 'linear');
});
});
的是以毫秒爲單位的過渡,可以改變,以適應速度。這比你給出的例子稍微複雜一點,因爲我決定展示如何處理可變高度菜單將是有用的。如果菜單的高度是固定的,則可以取消高度的計算並僅使用開放和封閉的高度。
patrcik DW做一個很好的例子開始,任何方式對你說:
上升顯露新內容
因此,這裏僅僅是一個主意,讓你這是怎麼回事:
的javascript:
$('p').hide();
$('a').click(function() {
$('#door').animate({top:0}, 500, function() {
$(this).animate({top: -200}, 500);
$('p').show();
});
});
HTML:
<a href='#'>click me</a>
<div id='container'>
<div id='content'>
<p>some content to display</p>
</div>
<div id='door'></div>
</div>
CSS:
#container {
width: 200px;
height: 300px;
clip: auto;
overflow: hidden;
position: relative;
}
#content {
width: 100%;
height: 200px;
background: yellow;
position: absolute;
bottom: 0;
}
#door {
width: 100%;
height: 100%;
position: absolute;
top: -200px;
background: black;
}
它是完全一樣的patrcik's代碼隱藏()和show()函數。
祝你好運!
嘗試here
- 1. 如何使滑動門效果提交按鈕?
- 2. 如何使滑動效果 - jQuery滑塊
- 3. 如何使用jQuery的滑動效果
- 4. 滑動效果
- 5. Android滑動效果動畫
- 6. 滑動效果爲uiimageviews
- 7. js水平滑動效果
- 8. 滑動效果靈敏度
- 9. tabhost實現滑動效果
- 10. 出現滑動效果?
- 11. 更改NIVO滑塊滑動效果
- 12. 使用jQuery複製Flash滑動效果
- 13. 如何在圖像滑塊中製作滑動效果?
- 14. 如何在Bootstrap模態中使用數據滑動效果?
- 15. 蘋果風格文字滑動效果
- 16. 帶尾巴的滑動門
- 17. jQuery的表列的滑動效果
- 18. 使用Core Animation的開門效果
- 19. Winforms的翻轉/滑動效果
- 20. jQuery的向下滑動效果
- 21. 反應js中的滑動效果
- 22. jQuery的滑動效果[觸摸]
- 23. 實現滑動效果的一個UIView
- 24. 如何從本網站創建拖動和滑動效果?
- 25. 我該如何做到「改變視角」的滑動效果?
- 26. 你如何創建這樣的滑動效果?
- 27. 如何完成HTML文本元素的滑動過渡效果?
- 28. 輸入按鈕使用滑動門CSS
- 29. 滑動菜單使用部門
- 30. CSS滑動門故障
WOW你在哪找到的?尋找類似的東西 – MyHeadHurts 2010-11-17 18:40:57
@NEW:我剛剛做到了,它的確很簡單 – user113716 2010-11-17 18:44:06
缺少的唯一東西是當「門」完全「關閉」時切換舊內容和新內容 – jball 2010-11-17 18:50:32