我想在用戶首次選擇輸入表單時設置動畫的高度。所以表格只能說1線高,他們去打字,它變成大約10行高。動畫表單大小
動畫表單大小
回答
這裏的 'CSS-只有' 的方式來做到這一點。
只需使用:在文本區域對焦選擇和改變textarea的高度聚焦的狀態
textarea{
height:20px;
width:150px;
-webkit-transition: all .2s ease-in-out;
-moz-transition: all .2s ease-in-out;
}
textarea:focus{
height:50px;
}
您可以使用有關CSS3動畫當前狀態的正確信息來完成答案嗎? – Alexander 2013-03-10 13:49:47
@Alexander你的意思是? http://caniuse.com/#feat=css-transitions – Tomarinator 2013-03-10 13:53:46
這真是太棒了,就是我之後的事情。但是在用戶寫入一次後,會不會有一種簡單的方法讓表單保持較大的尺寸? – user1855596 2013-03-11 03:23:31
首先,您希望使用<textarea/>
來代替,這樣您可以操作rows
屬性顯示的文本行數。即,
<textarea rows="10"></textarea>
顯示10行文本的元素。
關於動畫,您可以使用.animate()
方法平滑過渡,同時展開和摺疊文本行數。
我已經將它包裝在一個jQuery插件中以方便使用。
$.fn.expandable = function(){
return this.each(function(){
var $self = $(this);
var isExpanded = false;
var collapseTimeout;
$self.on({
focusin: function(evt) {
if (isExpanded || evt.keyCode < 46 && evt.keyCode != 8 && evt.keyCode != 32)
return true;
isExpanded = true;
clearTimeout(collapseTimeout);
$self.stop(true).animate({
rows: 10
}, "slow");
},
focusout: function() {
collapseTimeout = setTimeout(function(){
$self.stop(true).animate({
rows: 1
}, "slow");
}, 200);
isExpanded = false;
}
});
});
};
focusin
事件處理程序將展開該元素以顯示10行文本。它也將清除在元素失去焦點後將摺疊超時設置爲將顯示更改爲1行文本。崩潰超時在focusout
事件處理程序中設置。
動畫速度設置爲slow
,摺疊超時時間爲200
毫秒,文本的行數將擴展爲10
行文本。
下面將初始化所有頁面的textarea
元素:
$("textarea").expandable();
- 1. 動畫菜單和Cufon字體大小
- 2. 動畫列表查看大小增加
- 3. 動畫UITableView調整大小
- 4. jQuery動畫div大小
- 5. 放大縮小動畫
- 6. UITableview調整動畫大小
- 7. 動畫字體大小
- 8. 動畫查看大小changed
- 9. QPushButton調整大小動畫
- 10. 動畫UIView大小跳躍
- 11. 動畫的圖像大小!
- 12. 按動UITextField時的動畫大小
- 13. DataGridView的大小根據表單的大小自動變化
- 14. HTML表單元格自動大小
- 15. C#表單動畫
- 16. 動畫擴展/縮小表
- 17. C#爲什麼表單大小(this.Size)大於表單最大大小(this.MaximumSize)?
- 18. PyQt4 - 從動畫調整大小區分窗口大小調整
- 19. 動畫放大/減小大小的ImageView的iOS
- 20. 霓虹動畫頁面動畫大小與聚合
- 21. 使用動畫調整UIView大小,子視圖不會動畫
- 22. 動畫gif調整大小並上傳
- 23. UILabel動畫調整大小副作用
- 24. TextView的文字大小動畫
- 25. 如何動畫字符大小?
- 26. AS2固定大小的動畫片段
- 27. 動畫的RelativeLayout大小問題
- 28. 帶放大和縮小的jQuery動畫
- 29. Windows啓動畫面的標準大小
- 30. 用動畫調整UIWebView的大小
閱讀jQuery的文檔,這是非常簡單的。 element.animate(細節): – bgusach 2013-03-10 10:01:50
也不要使用輸入,請使用textarea – Dogoku 2013-03-10 10:12:13