zoukankan      html  css  js  c++  java
  • jquery文本框textarea自适应高度

    浏览器中默认的文本框是不能根据内容的增多变高,只能固定高度有滚动条,体验不是很好,找了很多方法兼容都不行,总算找到个兼容良好的方法:

    <body>
            <textarea id="textarea3" style="overflow-y:hidden; height:20px;resize: none">
            
            </textarea>
            <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
            <script type="text/javascript">
                $(function() {
                    //最小高度和最大高度默认
                    $("#textarea1").textareaAutoHeight();
                    //最大高度为100px
                    $("#textarea2").textareaAutoHeight({maxHeight: 100});
                    //最小高度为50px,最大高度为200px
                    $("#textarea3").textareaAutoHeight({minHeight: 50, maxHeight: 200});
                })
    
    
                $.fn.extend({
                    textareaAutoHeight: function(options) {
                        this._options = {
                            minHeight: 0,
                            maxHeight: 1000
                        }
    
                        this.init = function() {
                            for (var p in options) {
                                this._options[p] = options[p];
                            }
                            if (this._options.minHeight == 0) {
                                this._options.minHeight = parseFloat($(this).height());
                            }
                            for (var p in this._options) {
                                if ($(this).attr(p) == null) {
                                    $(this).attr(p, this._options[p]);
                                }
                            }
                            $(this).keyup(this.resetHeight).change(this.resetHeight)
                                    .focus(this.resetHeight);
                        }
                        this.resetHeight = function() {
                            var _minHeight = parseFloat($(this).attr("minHeight"));
                            var _maxHeight = parseFloat($(this).attr("maxHeight"));
    
                            if (!$.browser.msie) {
                                $(this).height(0);
                            }
                            var h = parseFloat(this.scrollHeight);
                            h = h < _minHeight ? _minHeight :h > _maxHeight ? _maxHeight : h;
                            $(this).height(h).scrollTop(h);
                            if (h >= _maxHeight) {
                                $(this).css("overflow-y", "scroll");
                            }
                            else {
                                $(this).css("overflow-y", "hidden");
                            }
                        }
                        this.init();
                    }
                });
            </script>
        </body>
    
  • 相关阅读:
    Mono项目将继续推动基于Linux的开发
    VS.PHP 在Visual Studio 下的 PHP 开发 IDE 工具
    SQL Server 2008 的代码提示功能
    想做的时候没有机会了
    我的最爱
    双缓冲
    做个好男人!
    再见了,曾经喜欢过的歌手
    看看他是喜欢你还是爱你的~~~
    独家:未来五年程序员应当具备的十项技能
  • 原文地址:https://www.cnblogs.com/hutuzhu/p/4169808.html
Copyright © 2011-2022 走看看