适当隐藏老用户输入框之 jQuery 实现方法

上一次跟大家分享了怎么让老用户留言时的输入框隐藏,提高WordPress访客评论时的用户体验。其实实现这样的效果有很多的方法,这只是其中的一种,就是用最基本的JS来实现的,而且需要在comment.php中插入JS代码,当然你也可以把代码独立出来。

不过细心的朋友可能发现,本站现在已经没有使用上面介绍的这种方法来实现了,而是用强大的 jQuery 来实现的。这样不仅减少了代码量,而且可以实现不错的效果。如滑动、渐显等。本站现在就用了滑动的效果,大家可以点下那个change 来试下。 :lol: 不过前提是需要载入jQuery框架,虽然也不是很大,只有54.4K,压缩后会更小。追求速度的同学要考虑用不用了,如果你的博客已经用到了jQuery技术的话就不用考虑了,直接上吧!

jQuery框架可以到这里下载后在模版里调用,推荐在footer,不会影响到上面的速度,也可以直接调用 google API 的,代码如下:

  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

然后第一步还是要修改下 comment.php ,因为 $comment_author 这个参数JS是不认得的。在你需要显示 welcome back ****的地方,也就是评论框代码的上面,插入以下代码:

  1. <?php if ( $comment_author != "" ) : ?>
  2. <div id="welcome">
  3. <?php printf(__('Welcome back <strong>%s</strong>.'), $comment_author) ?> </div>
  4. <?php endif; ?>

然后记住需要隐藏掉的用户信息输入框的 ID,如果没有自己用 DIV 包起来后加个 ID,我这里用的是 author_info 。

comment.php文件的修改就可以了,现在看下面的JS代码:

  1. $(document).ready(function() {   //开始
  2. if($('input#author[value]').length>0){   //判断用户框是否有值
  3. $("#author_info").css('display','none');   //将id为author_info的对象的display属性设为none,即隐藏
  4. var change='<span  id="show_author_info" style="cursor: pointer; color:#2970A6;">change &raquo;</span>'//定义change,style是定义CSS样式,让他有超链接的效果,color要根据你自己的来改,当然你也可以在CSS中定义#show_author_info来实现,这样是为了不用再去修改style.css而已!
  5. var close='<span  id="hide_author_info" style="cursor: pointer;color: #2970A6;">close &raquo;</span>';   //定义close
  6. $('#welcome').append(change);   //在ID为welcome的对象里添加刚刚定义的change
  7. $('#welcome').append(close);    // 添加close
  8. $('#hide_author_info').css('display','none');   //隐藏close
  9. $('#show_author_info').click(function() {   //鼠标点击change时发生的事件
  10. $('#author_info').slideDown('slow')   //用户输入框向下滑出
  11. $('#show_author_info').css('display','none');   //隐藏change
  12. $('#hide_author_info').css('display','inline')//显示close
  13. $('#hide_author_info').click(function() {  // 鼠标点击close时发生的事件
  14. $('#author_info').slideUp('slow')    //用户输入框向上滑
  15. $('#hide_author_info').css('display','none')//隐藏close
  16. $('#show_author_info').css('display','inline'); })})}})  //显示change

OK,将这些JS代码保存成一个JS文件载入你的博客就好,或是加到你博客任意一个JS文件后面也可以。推荐后者,但要注意,载入顺序一定要放在jQuery框架的后面,这样才会生效。

这样就OK了,这就是我实现的方法,如果哪位还有更好的方法或对上面的代码有什么可以改进的话可以留言,非常欢迎指点!

对了,类似的文章这里也有一篇,大家也可以去看下。

Share with Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网

相关文章本月热门点击排行

  • N/A
Post a comment 2008/11/11 – 16:506,990 Views
Post a comment | Trackback URL | RSS Comments 61 Comments
  1. 2009/09/10 at 00:18 | #51

    我先测试下

  2. 2009/11/28 at 23:22 | #52
    小虫Notify

    测试下

  3. 2009/12/02 at 22:58 | #53

    我来试试效果啊O(∩_∩)O~

  4. 2009/12/03 at 00:02 | #54

    在本机架设博客试验成功,在IE下效果正常,跑到firefox结果欢迎信息没有了,诡异!~~

  5. 2009/12/09 at 13:56 | #55

    学习了 非常不错 也可以简单改装到typecho平台

  6. 2010/01/16 at 23:43 | #56
    xiao3Notify

    测试一下~

  7. 2010/01/17 at 01:54 | #57

    以后会经常来的!

  8. 2010/01/17 at 20:42 | #58

    好热闹

  9. 2010/01/18 at 00:06 | #59

    一会改改,我也写一篇去

  10. 2010/02/07 at 13:06 | #60

    实验一下,看看是什么效果,非常感谢您的分享!

  11. 2010/02/22 at 13:43 | #61

    求助~ $(‘input#author[value]‘).length>0这个判断写法在jquery1.4.2版本中仅兼容IE,FF等浏览器下都失效。。该怎么改?

Comment pages 1 2
4 Trackbacks
  1. [...] 第一次看到这个功能是在stephen的博客,然后从他的博客,我链接到了xiaorsz写的文章,然后看到了mg12的文章,再然后是xiaorsz使用jQuery的改进版本。 [...]

  2. [...] 引入 jQuery 框架的方法可以看下这里。 [...]

  3. By Opera 10 / JQuery on 2009/09/18 at 20:31

    [...] 适当隐藏老用户输入框之 jQuery 实现方法 [...]

  4. [...] http://www.xiaorsz.com/hide-input-box-jquery/ and [...]

Post a Comment

(必填)

(必填,有回复时方便邮件通知)

(可不填,填了方便回访)

Sharing technology, recording life