扩展JQuery中的slideToggle()方法

一、 slideToggle()方法

    作用:可以方便的控制文本框的上下缩放(就是Y方向上变大,变小)。

     缺点:不能指定缩小的最小值,也不能指定放大的最大值。

                  解释:缩小的时候,slideToggle() 使用的Y值为0,也就是缩小到0,不能让开发者自由指定最小值;放大时,使用的是被伸长控件的height值,也不能让开发者指定除height以外的最大值。


二、扩展内容

1. 内容说明

        此处添加了缩小的最小Y值,在使用时,只要在控件的css中指定min-height,就可以了。同时要注意,建议将min-height 和 height设置为同一个值,这样效果会友好一些。

2. 实现代码

<!DOCTYPE html>
<style>
    .stack-box {
        border: 0px;
        margin-top: 1px;
        overflow-y: auto;
        overflow-x: visible;
        min-height: 180px;
        height: 180px;
        display: block;
    }

</style>
<html>
    <head>
        <!-- 先加载jquery.js,大家可以到官网下载 -->
        <script src="/jquery/jquery.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $("#stackBtn").click(function() {
                    // 获取需要上下缩放的文本框
                    // 取得文本框内容的高度,并加20作为文件框向下放大时的高度,这样就没有Y轴上的滚动条
                    // 从css样式中取得指定的最小高度,然后判断是缩小还是放大,最后通过动画完成缩放操作.
                    var stackBox = $("#stack-box");
                    var maxHeight = stackBox[0].scrollHeight + 20;
                    // 从css中获取的值是带px的,所以我们需要用replace方法来去掉px.
                    var minHeight = stackBox.css("min-height").replace("px", "");
                    var height = stackBox.height();
                    if (height <= minHeight) {
                        height = maxHeight
                    } else {
                        height = minHeight;
                    }
                    stackBox.stop().animate({height:height}, "slow");
                });
            });
        </script>
        <title>拓展slideToggle</title>
    </head>
    <body>
        <pre class="stack-box" id = "stack-box">
            在这里输入很多内容,以便测试。
            a<br>
            b<br>
            c<br>
            d<br>
            e<br>
        </pre>

        <div class="col-md-2 col-md-offset-5">
            <p id="stackBtn" >点击这里</p>
        </div>
    </body>
</html>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值