jquery实现多行文本框高度变化

         看了锋利的jquery,做了3个用jquery实现多行文本框高度变化的效果的小练习。这3个练习是层层完善提高效果的过程。先来看下练习一的效果图:

       

         实现的功能是通过点击文本框上的放大,缩小按钮来控制文本框高度的增加和减小。

         代码的思路是点击放大按钮后进行判断,如果文本框的高度小于500,那么重新设置高度,在原有的基础上加50。同理,点击缩小的按钮再进行判断,如果文本框的高度大于50,那么重新设置高度,在原有的基础上减50。

         但是这样写的缺陷是评论框的变化效果很呆板,缺乏缓冲效果。所以在第二个练习,我们 把它改进用animate()动画方法来控制文本框的高度。

        代码的思路是还是给放大和缩小按钮添加点击事件然后进行判断。只是这次判断文本框是否处于动画,如果处于动画过程中,则不追加其它动画,以免造成动画队列不必要的累积,使效果出现问题。如果评论框未处于动画中,则再判断如果评论框的高度小于500,则用animate()方法,让它的高度在0.4秒内增大40。   

 $('.bigger').click(function(){ //放大按钮绑定单击事件
      if(!$comment.is(":animated")){ //判断是否处于动画
	if( $comment.height() < 500 ){ 
	   $comment.animate({ height : "+=50" },400); //重新设置高度,在原有的基础上加50
			  }
			}
		})
       缩小则相反。

$('.smaller').click(function(){//缩小按钮绑定单击事件
    if(!$comment.is(":animated")){//判断是否处于动画
	if( $comment.height() > 50 ){
	   $comment.animate({ height : "-=50" },400); //重新设置高度,在原有的基础上减50
				}
			}
		});
      练习三的目的是在多行文本框中,还有另外一个应用,就是通过控制多行文本框的滚动条的变化,使文本框里的内容滚动。给向上按钮添加click事件,然后相同的判断文本框是否处于动画中,如果未处于,则用animate()方法,让滚动条的高度在0.4秒内减小50。代码如下:

<span style="font-size:18px;">$('.up').click(function(){ //向上按钮绑定单击事件
	if(!$comment.is(":animated")){//判断是否处于动画
	    $comment.animate({ scrollTop  : "-=50" } , 400);
			}
		})</span>

     向下则同理。通过这个练习,主要学习了animate()的用法,以及用animate()来控制scrollTop滚动条的高度的方法。





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值