js+css仿微信朋友圈评论布局效果代码
代码语言:html
所属分类:布局界面
代码描述:js+css仿微信朋友圈评论布局效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> <style type="text/css"> body { font-size: 12px; line-height: 120%; text-align: center; color:#333; padding: 20px;} a { color: #333; text-decoration: none;} a:hover { text-decoration: underline;} * { margin: 0; padding: 0; border: none;} .clearfix:after { content:"."; display:block; height:0; clear:both; visibility:hidden} .clearfix { *height:1%;} #list { margin: 0 auto; text-align: left; width: 540px;} .box { border-top: 1px solid #eee; position: relative; width: 540px; padding: 20px 0} .box:hover .close { display: block;} .close { display: none; top:0px; right: 0px; width: 28px; height: 28px; border: 1px solid #eee; position: absolute; background: #f2f4f7; line-height: 27px; text-align: center;} .close:hover { background: #c8d2e2; text-decoration: none;} .head { float: left; width: 60px; height: 60px; margin-right: 10px;} .content { float: left; width: 440px;} .main { margin-bottom: 10px;} .txt { margin-bottom: 10px;} .user { color: #369; } .pic { margin-right: 5px; width: 200px; border: 1px solid #eee;} .info { height: 20px; line-height: 19px; font-size: 12px; margin: 0 0 10px 0;} .info .time { color: #ccc; float: left; height: 20px; padding-left: 20px; background: url("//repo.bfw.wiki/bfwrepo/image/606b9f6797084.png?x-oss-process=image/auto-orient,1/resize,m_fill,w_15,h_15,/quality,q_90") no-repeat left top;} .info .praise { color: #369; float: right; height: 20px; padding-left: 18px; background: url("//repo.bfw.wiki/bfwrepo/image/5f9e9e7005148.png?x-oss-process=image/auto-orient,1/resize,m_fill,w_15,h_15,/quality,q_90") no-repeat left top;} .info .praise:hover { text-decoration: underline; background: url("//repo.bfw.wiki/bfwrepo/image/5f9e9e8c8f25b.png?x-oss-process=image/auto-orient,1/resize,m_fill,w_15,h_15,/quality,q_90") no-repeat left top;} .praises-total { margin: 0 0 10px 0; height: 20px; background: url("//repo.bfw.wiki/bfwrepo/image/5f9e9e8c8f25b.png?x-oss-process=image/auto-orient,1/resize,m_fill,w_15,h_15,/quality,q_90") no-repeat 5px 5px rgb(247, 247, 247); padding: 5px 0 5px 25px; line-height: 19px;} .comment-box { padding: 10px 0; border-top: 1px solid #eee;} .comment-box:hover { background: rgb(247, 247, 247);} .comment-box .myhead { float: left; width: 30px; height: 30px; margin-right: 10px;} .comment-box .comment-content { float: left; width: 400px; } .comment-box .comment-content .comment-time { color: #ccc; margin-top: 3px; line-height: 16px; position: relative;} .comment-box .comment-content .comment-praise { display: none; color: #369; padding-left: 17px; height: 20px; background: url("//repo.bfw.wiki/bfwrepo/image/5f9e9e8c8f25b.png?x-oss-process=image/auto-orient,1/resize,m_fill,w_15,h_15,/quality,q_90") no-repeat; position: absolute; bottom: 0px; right: 44px;} .comment-box .comment-content .comment-operate { display: none; color: #369; height: 20px; position: absolute; bottom: 0px; right: 10px;} .comment-box .comment-content:hover .comment-praise { display: inline-block;} .comment-box .comment-content:hover .comment-operate { display: inline-block;} .text-box .comment { border: 1px solid #eee; display: block; height: 15px; width: 428px; padding: 5px; resize: none; color: #ccc} .text-box .btn { font-size: 12px; font-weight: bold; display: none; float: right; width: 65px; height: 25px; border: 1px solid #0C528D; color: #fff; background: #4679AC;} .text-box .btn-off { border: 1px solid #ccc; color: #ccc; background: #F7F7F7;} .text-box .word{ display: none; float: right; margin: 7px 10px 0 0; color: #666;} .text-box-on .comment{ height: 50px; color: #333;} .text-box-on .btn{ display: inline;} .text-box-on .word{ display: inline;} </style> <script type="text/javascript" > /** * Created by an.han on 14-2-20. */ window.onload = function () { var list = document.getElementById('list'); var boxs = list.children; var timer; //格式化日期 function formateDate(date) { var y = date.getFullYear(); var m = date.getMonth() + 1; var d = date.getDate(); var h = date.getHours(); var mi = date.getMinutes(); m = m > 9 ? m : '0' + m; return y + '-' + m + '-' + d + ' ' + h + ':' + mi; } //删除节点 function removeNode(node) { node.parentNode.removeChild(node); } /** * 赞分享 * @param box 每个分享的div容器 * @param el 点击的元素 */ function praiseBox(box, el) { var txt = el.innerHTML; var praisesTotal = box.getElementsByClassName('praises-total')[0]; var oldTotal = parseInt(praisesTotal.getAttribute('total')); var newTotal; if (txt == '赞') { newTotal = oldTotal + 1; praisesTotal.setAttribute('total', newTotal); praisesTotal.innerHTML = (newTotal == 1) ? '我觉得很赞' : '我和' + oldTotal + '个人觉得很赞'; el.innerHTML = '取消赞'; } else { newTotal = oldTotal - 1; praisesTotal.setAttribute('total', newTotal); praisesTotal.innerHTML = (newTotal == 0) ? '' : newTotal + '个人觉得很赞'; el.innerHTML = '赞'; } praisesTotal.style.display = (newTotal == 0) ? 'none' : 'block'; } /** * 发评论 * @param box 每个分享的div容器 * @param el 点击的元素 */ function reply(box, el) { var commentList = box.getElementsByClassName('comment-list')[0]; var textarea = box.getElementsByClassName('comment')[0]; var commentBox = document.createElement('div'); commentBox.className = 'comment-box clearfix'; commentBox.setAttribute('user', 'self'); commentBox.innerHTML = '<img class="myhead" src="images/my.jpg" alt=""/>' + '<div class="comment-content">' + '<p class="comment-text"><span class="user">我:</span>' + textarea.value + '</p>' + '<p class="comment-time">' + formateDate(new Date()) + '<a href="javascript:;" class="comment-praise" total="0" my="0" style="">赞</a>' + '<a href="javascript:;" class="comment-operate">删除</a>' + '</p>' + '</div>' commentList.appendChild(commentBox); textarea.value = ''; textarea.onblur(); } /** * 赞回复 * @param el 点击的元素 */ function praiseReply(el) { var myPraise = parseInt(el.getAttribute('my')); var oldTotal = parseInt(el.getAttribute('total')); var newTotal; if (myPraise == 0) { newTotal = oldTotal + 1; el.setAttribute('total', newTotal); el.setAttribute('my', 1); el.innerHTML = newTotal + ' 取消赞'; } else { newTotal = oldTotal - 1; el.setAttribute('total', newTotal); el.setAttribute('my', 0); el.innerHTML = (newTotal == 0) ? '赞' : newTotal + ' 赞'; } el.style.display = (newTotal == 0) ? '' : 'inline-block' } /** * 操作留言 * @param el 点击的元素 */ function operate(el) { var commentBox = el.parentNode.parentNode.parentNode; var box = commentBox.parentNode.parentNode.parentNode; var txt = el.innerHTML; var user = commentBox.getElementsByClassName('user')[0].innerHTML; var textarea = box.getElementsByClassName('comment')[0]; if (txt == '回复') { textarea.focus(); textarea.value = '回复' + user; textarea.onkeyup(); } else { removeNode(commentBox); } } //把事件代理到每条分享div容器 for (var i = 0; i < boxs.length; i++) { //点击 boxs[i].onclick = function (e) { e = e || window.event; var el = e.srcElement; switch (el.className) { //关闭分享 case 'close': removeNode(el.parentNode); break; //赞分享 case 'praise': praiseBox(el.parentNode.parentNode.parentNode, el); break; //回复按钮蓝 case 'btn': reply(el.parentNode.parentNode.parentNode, el); break //回复按钮灰 case .........完整代码请登录后点击上方下载按钮下载查看
网友评论0