Botão Abrir e Fechar Recentes Comentários Estilo Xat, Fixado no Rodapé da Página
Nesta postagem compartilho com vocês este código. Tudo para deixar seu blog ainda mais melhor com mais Gadgets para Melhorar o Design do seu site.
Para colocar em seu blog... é bem simples
Entre em "layout" - "Adicionar um Gadget" - "HTML/JavaScript" e cole o seguinte código
<style> .chat-box { font:normal normal 11px/1.4 Tahoma,Verdana,Sans-Serif; color:#333; width:200px; /* Chatbox width */ border:1px solid #344150; border-bottom:none; background-color:white; position:fixed; right:10px; bottom:0; z-index:9999; -webkit-box-shadow:1px 1px 5px rgba(0,0,0,.2); -moz-box-shadow:1px 1px 5px rgba(0,0,0,.2); box-shadow:1px 1px 5px rgba(0,0,0,.2);}.chat-box > input[type="checkbox"] { display:block; margin:0 0; padding:0 0; position:absolute; top:0; right:0; left:0; width:100%; height:26px; z-index:4; cursor:pointer; opacity:0; filter:alpha(opacity=0);}.chat-box > label { display:block; height:24px; line-height:24px; background-color:#344150; color:white; font-weight:bold; padding:0 1em 1px;}.chat-box > label:before {content:attr(data-collapsed)}.chat-box .chat-box-content { padding:10px; display:none;}/* hover state */.chat-box > input[type="checkbox"]:hover + label {background-color:#404D5A}/* checked state */.chat-box > input[type="checkbox"]:checked + label {background-color:#212A35}.chat-box > input[type="checkbox"]:checked + label:before {content:attr(data-expanded)}.chat-box > input[type="checkbox"]:checked ~ .chat-box-content {display:block} </style> <div class='chat-box'> <input type='checkbox'/> <label data-collapsed='Abrir Comentários' data-expanded='Fechar Comentários'><i class=' icon-comments'/></i></label> <div class='chat-box-content'> <style type='text/css'> .rc{padding-left:24px; padding-top: 6px;color:#222;overflow:hidden} .rc a:hover {color: #F3903E;text-decoration: none;} .rc-ico{margin-left:-20px;margin-top:4px;float:left; margin-right:3px} .rc-ico img {margin-top: -2px;margin-right:5px; border: 2px solid #fff;-webkit-border-radius: 100px;-moz-border-radius: 100px;border-radius: 100px;-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .4);-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .4);box-shadow: 0 1px 2px rgba(0, 0, 0, .4); -webkit-transition: all 1s ease-in-out; -moz-transition: all 1s ease-in-out; -o-transition: all 1s ease-in-out; -ms-transition: all 1s ease-in-out; } .rc-ico img:hover {-webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -o-transform: rotate(360deg); -ms-transform: rotate(360deg);} .rc-header{font-size: 13px;} .rc-header a{} .rc-body{font-style: italic; font-size:11px;padding: 0px 4px 1px 10px;border: 1px solid transparent;overflow:hidden} .rc-footer{font-size:11px; float: right;} #rcw-cr {font-family: Arial,Tahoma;font-size:9px;padding-top:7px;display:block;overflow:hidden} </style> <script type='text/javascript'> //<![CDATA[ var numRecentComments = 4; var maxCommentChars = 67; var trueAvatars = true; var urlMyAvatar = ''; var urlMyProfile = ''; var cropAvatar = true; var sizeAvatar = 50; var urlNoAvatar = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKEQGQbkkl1XJHA5K5gpSUPctKMLnD8vYm5tjeb3_KVyqNjdgXs0VZEN3Bbefct1zgZxNuFoOtxEI2_pJr2PSvGI4RaImQAjGCa1lZ67bgjF7spUfgD2KRvG612qabjCe_2Lc4cnCDjXBn/"+sizeAvatar+"/anonymous-Icon.jpg"; var urlAnoAvatar = 'http://www.gravatar.com/avatar/00000000000000000000000000000000?d=mm&s=' + sizeAvatar; var txtMore = ''; var txtWrote = 'commented:'; var txtAnonymous = ''; var maxResultsComments = ""; var numPerPost = 2; var maxPostTitleChars = 40; var getTitles = true; var maxResultsPosts = ""; var txtTooltip = '[user] on "[title]" - [date MM-dd-yyyy hh:mm]'; var urlToTitle = {}; function replaceVars(text, user, title, date) { text = text.replace('[user]', user); text = text.replace('[date]', date.toLocaleDateString()); text = text.replace('[datetime]', date.toLocaleString()); text = text.replace('[time]', date.toLocaleTimeString()); text = text.replace('[title]', title.replace(/\"/g,'"')); var i = text.indexOf("[date "); if(i > -1) { var format = /\[date\s+(.+?)\]/.exec(text)[1]; if(format != '') { var txtDate = format.replace(/yyyy/i, date.getFullYear()); txtDate = txtDate.replace(/yy/i, date.getFullYear().toString().slice(-2)); txtDate = txtDate.replace("MM", String("0"+(date.getMonth()+1)).slice(-2)); txtDate = txtDate.replace("mm", String("0"+date.getMinutes()).slice(-2)); txtDate = txtDate.replace("ss", String("0"+date.getSeconds()).slice(-2)); txtDate = txtDate.replace("dd", String("0"+date.getDate()).slice(-2)); //or: txtDate = txtDate.replace("dd", date.getDate()); txtDate = txtDate.replace("hh", String("0"+date.getHours()).slice(-2)); //or: txtDate = txtDate.replace("hh", date.getHours()); text = text.replace(/\[date\s+(.+?)\]/, txtDate) } } return text; } if(urlMyProfile == "") { var elements = document.getElementsByTagName("*"); var expr = /(^| )profile-link( |$)/; for(var i=0 ; i<elements.length ; i++) if(expr.test(elements[i].className)) { urlMyProfile = elements[i].href; break; } } function getPostUrlsForComments(json) { for(var i = 0 ; i < json.feed.entry.length ; i++ ) { var entry = json.feed.entry[i]; for (var k = 0; k < entry.link.length; k++ ) { if (entry.link[k].rel == 'alternate') { href = entry.link[k].href; break; } } urlToTitle[href] = entry.title.$t; } } function showRecentComments(json) { var postHandled = {}; var j = 0; if(numPerPost) { while(numPerPost < numRecentComments) { for(var i = 0 ; i < json.feed.entry.length ; i++ ) { var entry = json.feed.entry[i]; if(entry.author[0].name.$t=="Blogger User") continue; if(entry["thr$in-reply-to"]) { if(!postHandled[entry["thr$in-reply-to"].href]) postHandled[entry["thr$in-reply-to"].href] = 1; else postHandled[entry["thr$in-reply-to"].href]++; if(postHandled[entry["thr$in-reply-to"].href] <= numPerPost) j++; } } if(j >= numRecentComments) break; numPerPost++; j = 0; postHandled = {}; } if(numRecentComments == numPerPost) numPerPost = 0; } postHandled = {}; j = 0; for(var i = 0 ; j < numRecentComments && i < json.feed.entry.length ; i++ ) { var entry = json.feed.entry[i]; if(entry.author[0].name.$t=="Blogger User") continue; if(numPerPost && postHandled[entry["thr$in-reply-to"].href] && postHandled[entry["thr$in-reply-to"].href] >= numPerPost) continue; if(entry["thr$in-reply-to"]) { if(!postHandled[entry["thr$in-reply-to"].href]) postHandled[entry["thr$in-reply-to"].href] = 1; else postHandled[entry["thr$in-reply-to"].href]++; j++; var href=''; for (var k = 0; k < entry.link.length; k++ ) { if (entry.link[k].rel == 'alternate') { href = entry.link[k].href; break; } } if(href=='') {j--; continue; } var hrefPost = href.split("?")[0]; var comment = ""; if("content" in entry) comment = entry.content.$t; else comment = entry.summary.$t; comment = comment.replace(/<br[^>]*>/ig, " "); comment = comment.replace(/<\S[^>]*>/g, ""); var postTitle="-"; if(urlToTitle[hrefPost]) postTitle=urlToTitle[hrefPost]; else { if(hrefPost.match(/\/([^/]*)\.html/)) postTitle = hrefPost.match(/\/([^/]*)\.html/)[1].replace(/_\d{2}$/, ""); postTitle = postTitle.replace(/-/g," "); postTitle = postTitle[0].toUpperCase() + postTitle.slice(1); } if(maxPostTitleChars && postTitle.length > maxPostTitleChars) { postTitle = postTitle.substring(0, maxPostTitleChars); var indexBreak = postTitle.lastIndexOf(" "); postTitle = postTitle.substring(0, indexBreak) + "..."; } var authorName = entry.author[0].name.$t; var authorUri = ""; if(entry.author[0].uri && entry.author[0].uri.$t != "") authorUri = entry.author[0].uri.$t; var avaimg = urlAnoAvatar; var bloggerprofile = "http://www.blogger.com/profile/"; if(trueAvatars && entry.author[0].gd$image && entry.author[0].gd$image.src && authorUri.substr(0,bloggerprofile.length) == bloggerprofile) avaimg = entry.author[0].gd$image.src; else { var parseurl = document.createElement('a'); if(authorUri != "") { parseurl.href = authorUri; avaimg = 'http://www.google.com/s2/favicons?domain=' + parseurl.hostname; } } if(urlMyProfile != "" && authorUri == urlMyProfile && urlMyAvatar != "") avaimg = urlMyAvatar; if(avaimg == "http://img2.blogblog.com/img/b16-rounded.gif" && urlNoAvatar != "") avaimg = urlNoAvatar; var newsize="s"+sizeAvatar; avaimg = avaimg.replace(/\/s\d\d+-c\//, "/"+newsize+"-c/"); if(cropAvatar) newsize+="-c"; avaimg = avaimg.replace(/\/s\d\d+(-c){0,1}\//, "/"+newsize+"/"); if(authorName == 'Anonymous' && txtAnonymous != '' && avaimg == urlAnoAvatar) authorName = txtAnonymous; var imgcode = '<img height="'+sizeAvatar+'" width="'+sizeAvatar+'" title="'+authorName+'" src="'+avaimg+'" />'; if (authorUri!="") imgcode = '<a href="'+authorUri+'">'+imgcode+'</a>'; var clsAdmin = ""; if(urlMyProfile != "" && authorUri == urlMyProfile) clsAdmin = " rc-admin"; var datePart = entry.published.$t.match(/\d+/g); // assume ISO 8601 var cmtDate = new Date(datePart[0],datePart[1]-1,datePart[2],datePart[3],datePart[4],datePart[5]); var txtHeader = txtWrote; if(txtWrote.indexOf('[')==-1) txtHeader = authorName + ' ' + txtWrote; else txtHeader = replaceVars(txtHeader, authorName, postTitle, cmtDate); var tooltip = replaceVars(txtTooltip, authorName, postTitle, cmtDate); if(!/#/.test(href)) href += "#comments"; document.write('<div title="'+tooltip+'" class="rc'+clsAdmin+'">'); document.write('<div title="'+tooltip+'" class="rc-header'+clsAdmin+'"><div title="'+tooltip+'" class="rc-ico'+clsAdmin+'">'+imgcode+'</div><a title="'+tooltip+'" href="' + href + '">' + txtHeader + ' </a></div>'); if(comment.length < maxCommentChars) document.write('<div title="'+tooltip+'" class="rc-body'+clsAdmin+'">' + comment + '</div>'); else { comment = comment.substring(0, maxCommentChars); var indexBreak = comment.lastIndexOf(" "); comment = comment.substring(0, indexBreak); document.write('<div title="'+tooltip+'" class="rc-body'+clsAdmin+'">' + comment + '...</div>'); if(txtMore != "") { var moretext = replaceVars(txtMore, authorName, postTitle, cmtDate); document.write('<div title="'+tooltip+'" class="rc-footer'+clsAdmin+'"><a title="'+tooltip+'" href="' + href + '">' + moretext + '</a></div>'); } } document.write('<div style="clear:both;"></div></div>'); } } } if(getTitles) document.write('<script type="text/javascript" src="http://'+window.location.hostname+'/feeds/posts/summary?redirect=false'+maxResultsPosts+'&alt=json-in-script&callback=getPostUrlsForComments"></'+'script>'); document.write('<script type="text/javascript" src="http://'+window.location.hostname+'/feeds/comments/default?redirect=false'+maxResultsComments+'&alt=json-in-script&callback=showRecentComments"></'+'script>'); //]]> </script> </div></div> <div style="text-align: right;"> <span style="font-size: xx-small;"><span style="color: #cccccc;">Widget by </span><a href="http://dicashot.blogspot.com.br/" target="_blank"><span style="color: #cccccc;">DicasHot</span></a></span></div>
O número 4 destacada de azul no código, corresponde ao número de comentários que irá aparecer...
Tendo colado o código, basta salvar e pronto!!!