尽管过去了一年多,这个系列还是可以继续的。因为乱梦使然我离开这里,离开技术很久。有时候想,我是不是太高估自己了,很多做不到的事情我想做好,做不好的事情我想做到。就像这博客的评论区……也就止于此吧。在别人评论自己的地方,我想怎样不重要。

把目前用到的东西整理出来,希望能给博友们启发,仅供参考:

一、下拉按钮显示评论

com_arrow.jpg

效果是借鉴mg12的动态加载文章内容,但是没搞懂ajax,所以就成了现在这个样子……还是会加载评论区内容,所以会卡。坚持这个风格的原因很简单,就是我讨厌评论把页面拖得很长,又怕分页影响SEO。

js部分(需要jquery支持):

  1. //下拉式评论区
  2. $(".comment-list").css('display','none');
  3. var expand='';
  4. var collapse='';
  5. $('div#comments h4').append(expand);
  6. $('div#comments h4').append(collapse);
  7. $('a.expand').css('display','none');
  8. $('a.collapse').click(function() {
  9. $('.comment-list').slideDown('slow');
  10. $('a.collapse').css('display','none');
  11. $('a.expand').css('display','inline');
  12. $('a.expand').click(function() {
  13. $('.comment-list').slideUp('slow');
  14. $('a.expand').css('display','none');
  15. $('a.collapse').css('display','inline'); })})
  16. });

css部分:

  1. #comments h4 a.expand,
  2. #comments h4 a.collapse {
  3. background:url("images/openicons.gif") 0 -336px no-repeat;
  4. height:16px;
  5. width:16px;
  6. display:block;
  7. text-indent:-999em;
  8. float:right;
  9. }
  10. #comments h4 a.expand {
  11. background-position:0 -320px;
  12. }

好玩的是,很多人看不到会以为没评论。手动广告党们悻悻而去,沙发党却常兴高采烈的坐个屁股墩儿……如果有高手喜欢,希望能研究出ajax加载的效果,默认不显示或只显示前几条评论。这样想看评论的人可以去点开浏览全部,不想看的能享受更快速和简短的页面,岂不两全其美?

二、Done?

com_done.jpg

写完了?——不少博友觉得我这个“防垃圾评论”功能很酷,打个勾确认下才能发表。其实这是从typecho坛友那找来的防君子不防小人之招……仅做js表现没有和程序功能挂钩,意味着spam机器人可以完全无视此框框。所以咳,趣味性的意义更大。至少说明手动广告党们也是很憨的~

修改模板文件comments.php,将评论按钮那句改为:

  1. <div style="clear:both"><input type="checkbox" onclick="agreesubmit(this)" name="agreecheck"/></p><label>Done? </label></div>
  2. <div class="post-button"><input class="submit" name="submit" type="submit" value="" tabindex="7" disabled="disabled" /></div>
  3. <script type="text/javascript">//
  4. var checkobj;
  5. function agreesubmit(el){
  6. checkobj=el;
  7. if (document.all||document.getElementById){
  8. for (i=0;i
  9. var tempobj=checkobj.form.elements[i];
  10. if(tempobj.type.toLowerCase()=="submit")
  11. tempobj.disabled=!checkobj.checked;
  12. }
  13. }
  14. }
  15.  
  16. function defaultagree(el){
  17. if (!document.all && !document.getElementById){
  18. if (window.checkobj && checkobj.checked)
  19. return true;
  20. else{
  21. alert("Say something to continue plz");
  22. return false;
  23. }
  24. }
  25. }