`
hjl416148489
  • 浏览: 22268 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

值得收藏的无限循环评论系统

    博客分类:
  • PHP
阅读更多

表情丰富的多级评论演示地址:http://www.sucaihuo.com/js/816.html
$(function() {
    isLogin();
    var site_url = $("#footer").attr("data-url");
    /**表情***/
    if ($(".emotion").length > 0) {
        $(".emotion").click(function() {
            var left = $(this).offset().left;
            var top = $(this).offset().top;
            var id = $(this).attr("data-id");
            $("#smileBoxOuter").css({
                "left": left,
                "top": top + 20
            }).show().attr("data-id", id)
        });
        $("#smileBoxOuter,.emotion").hover(function() {
            $("#smileBoxOuter").attr("is-hover", 1)
        },
                function() {
                    $("#smileBoxOuter").attr("is-hover", 0)
                });
        $(".emotion,#smileBoxOuter").blur(function() {
            var is_hover = $("#smileBoxOuter").attr("is-hover");
            if (is_hover != 1) {
                $("#smileBoxOuter").hide()
            }
        });
        $(".smileBox").find("a").click(function() {
            var textarea_id = $("#smileBoxOuter").attr("data-id");
            var textarea_obj = $("#reply_" + textarea_id).find("textarea");
            var textarea_val = textarea_obj.val();
            if (textarea_val == "发布评论") {
                textarea_obj.val("")
            }
            var title = "[" + $(this).attr("title") + "]";
            textarea_obj.val(textarea_obj.val() + title).focus();
            $("#smileBoxOuter").hide()
        });
        $("#smileBoxOuter").find(".smilePage").children("a").click(function() {
            $(this).addClass("current").siblings("a").removeClass("current");
            var index = $(this).index();
            $("#smileBoxOuter").find(".smileBox").eq(index).show().siblings(".smileBox").hide()
        });
        $(".comment_blockquote").hover(function() {
            $(".comment_action_sub").css({
                "visibility": "hidden"
            });
            $(this).find(".comment_action_sub").css({
                "visibility": "visible"
            })
        }, function() {
            $(".comment_action_sub").css({
                "visibility": "hidden"
            })
        })
    }
    if ($("#detail-page").length > 0) {
        var id = $("#detail-page").attr("data-id");
        var mtype = $("#detail-page").attr("data-mtype");
        var totalnum = $("#detail-page").attr("data-totalnum");
        $("#comment_wrap").on("click",".pager a",function(){
             var page = parseInt($(this).attr("data-page"));
            $("#detail-page").children("a").removeClass("current");
            $("#detail-page").children("a").eq(page - 1).addClass("current");
            $("#comment_wrap").html("<div style='padding:20px 0;text-align:center;'><img src='" + site_url + "Public/images/loading.gif'></div>");
            $.get(getUrl("Box/comments"), {
                p: page,
                id: id,
                totalnum: totalnum,
                mtype: mtype
            },
            function(data) {
                $("#comment_wrap").html(data)
            })
        })
    }
});
function getUrl(strs) {
    var url = $("#footer").attr("data-url") + strs;
    return url
}
function goUrl(url) {
    if (url == -1) {
        history.go(-1)
    } else {
        document.location.href = url
    }
}
function showWindowBox() {
    $("#windown_box").modal("toggle")
}
function hideWindowBox() {
    $("#windown_box").modal("hide")
}
function animateShowTip(obj, tip) {
    obj.text(tip);
    var top = obj.attr("data-top");
    obj.animate({
        top: top,
        "height": "16px"
    },
    500)
}
function animateHideTip(obj) {
    var foot = obj.attr("data-foot");
    obj.animate({
        top: foot,
        "height": "0"
    },
    500)
}
function subcomment(id, mtype, pid, pid_sub) {
    var pid_common = pid;
    if (pid_sub > 0) {
        pid_common = pid_sub
    }
    var textarea_obj = $("#reply_" + pid_common).find("textarea");
    var comment = textarea_obj.val();
    comment = comment == "发布评论" ? "" : comment;
    if (comment == "") {
        animateShowTip($("#comment_tip_" + pid_common), "您是不是忘了说点什么?");
        setTimeout("animateHideTip($('#comment_tip_" + pid_common + "'))", 3000);
        return false
    }
//    comment = encodeURIComponent(comment);

    $.post(getUrl("Ajax/subcomment"), {
        id: id,
        mtype: mtype,
        content: comment,
        pid: pid,
        pid_sub: pid_sub
    },
    function(data) {
        var li = "";
        if (data.code == -1) {
            showWindowBox();
            $("#windown_box").attr("data-func", "subcomment('" + id + "', '" + mtype + "', '" + pid + "', '" + pid_sub + "')")
        } else {
            if (data.code == 200) {
                var username = $(".comment_avatar").find(".username").text();
                if (pid_common == 0) {
                    var num = parseInt($("#comments_num").text());
                    $("#comments_num").text(num + 1);
                    var avatar = $(".comment_avatar").find(".avatar").attr("src");
                    var lou_tip = "";
                    if (num == 0) {
                        lou_tip = "沙发"
                    } else {
                        if (num == 1) {
                            lou_tip = "椅子"
                        } else {
                            if (num == 2) {
                                lou_tip = "板凳"
                            } else {
                                lou_tip = num + "楼"
                            }
                        }
                    }
                    li = "<li class='comment_list clearfix'><div class='comment_avatar'><span class='userPic'>\n<img width='36' height='36' src='" + avatar + "'></span><span class='grey'>" + lou_tip + "</span></div>\n<div class='comment_conBox'><div class='comment_avatar_time'><div class='time'>刚刚</div>" + username + "</div>\n<div class='comment_conWrap clearfix'><div class='comment_con'>" + data.comment + "</div></div></div></li>";
                    $(".comment_listBox").prepend(li)
                } else {
                    var length_reply = parseInt($("#comment_" + pid_common).find(".comment_blockquote").length);
                    li = "<blockquote class='comment_blockquote'><div class='comment_floor'>" + (length_reply + 1) + "</div><div class='comment_conWrap'>\n<div class='comment_con'>" + username + ":<p> " + data.comment + "</p></div></div></blockquote>";
                    $("#comment_" + pid).find(".blockquote_wrap").append(li);
                    $("#reply_" + pid).hide();
                    if (pid_sub > 0) {
                        $("#reply_" + pid_sub).hide()
                    }
                }
                if (data.points > 0) {
                    showSuccessTip("评论成功,获得" + data.points + "积分!")
                } else {
                    showSuccessTip("评论成功!")
                }
                textarea_obj.val("")
            } else {
                animateShowTip($("#comment_tip_" + pid_common), data.error);
                setTimeout("animateHideTip($('#comment_tip_" + pid_common + "'))", 3000)
            }
        }
    },"json")
}
  • 大小: 43.6 KB
分享到:
评论

相关推荐

    Unity无限循环列表demo

    在Unity中实现无限循环列表,通常会涉及到Unity的UI系统,包括Canvas、RectTransform、ScrollRect组件以及脚本编程。以下是一些关键知识点: 1. **ScrollRect组件**:这是Unity UI系统中的核心组件,用于实现滚动...

    Android无限循环RecyclerView的完美实现方案

    Android 无限循环 RecyclerView 实现方案详解 Android 无限循环 RecyclerView 的实现方案是 Android 开发中常见的需求,特别是在实现无限循环的横向列表时。下面我们将详细介绍两种常见的实现方案,并对其进行比较...

    unity 无限循环按钮 Scroll View

    当我们想要实现无限循环滚动效果时,它可以让用户在内容到达边界时无缝地继续滚动,给人一种无边无际的用户体验。这个"unity 无限循环按钮"的主题就是关于如何利用Scroll View组件来实现这样的效果。 首先,我们要...

    viewpager真正无限循环

    然而,在某些设计需求中,我们可能希望实现ViewPager的无限循环效果,即当用户滑动到第一个页面时能够自动跳转到最后一个页面,反之亦然,给人一种没有边界的感觉。本文将深入探讨如何在Android中实现ViewPager的...

    按键精灵无限循环教程

    - **性能考虑**:无限循环可能会占用较多系统资源,特别是在高频率执行的情况下,需要注意对性能的影响。 - **异常处理**:在实际应用中,可能会遇到各种预料之外的情况,合理地处理异常可以提高脚本的稳定性和可靠...

    Unity_UGUI_无限循环列表_多功能版 ScrollView组件的多种用法

    本教程将详细讲解如何利用Unity的UGUI系统,特别是ScrollView组件,来实现一个无限循环列表的多功能版本。 首先,ScrollView组件由ScrollRect组件和其内部的Viewport和Content组成。ScrollRect负责处理滚动行为,...

    Unity无限循环滚动列表Demo

    UGUI无限循环滚动列表

    NGUI scrollview 无限循环显示

    UIScrollGrid脚本为无限循环脚本,UIMainChatView脚本为使用UIScrollGrid脚本的使用方式,附带Demo unity版本5.6.2,NGUI版本3.9.9

    解决vue中的无限循环问题

    在使用Vue.js进行前端开发时,经常会遇到一些性能问题,其中之一就是所谓的“无限循环”问题。这类问题通常发生在组件数据更新时,导致Vue的渲染循环陷入死循环,从而引起浏览器卡顿或崩溃。具体来说,无限循环问题...

    Unity UGUI无限循环列表

    Unity UGUI实现无限循环滑动列表功能,如果要做循环滑动列表可以参考。直接导入Unity里面有示例场景。运行即可。

    ViewPager左右无限循环

    在标题“ViewPager左右无限循环”中,我们讨论的是一个特殊定制的ViewPager,它不仅能够进行常规的左右滑动切换,而且支持无限循环,即当用户滑动到最后一个页面时,会自动跳转回第一个页面,形成一种无缝衔接的滚动...

    HTML5无限循环滚动图片展示

    此外,CSS3的动画(animation)功能也可能被用来实现图片的无限循环滚动。 在实际应用中,这个插件可能会包含以下组件: 1. 图片容器:一个div元素,用于容纳所有的图片,可能应用了CSS3的transform和transition...

    RecycleView 自动无限循环

    标题提到的"RecycleView 自动无限循环"是指将RecyclerView设置为能够自动、无缝地循环显示一组图片,这种效果常用于轮播广告或者图片展示场景。下面我们将详细探讨如何实现这一功能。 首先,我们需要理解...

    操作系统课程设计,无限循环进程调度

    操作系统课程设计,特别是“无限循环进程调度”,是学习操作系统核心概念的重要实践环节。在这个课程设计中,学生将深入理解进程的生命周期,包括进程的创建、调度、状态转换以及并发环境的模拟。 首先,进程的定义...

    自动无限循环的viewpager

    在标题"自动无限循环的viewpager"中,我们关注的核心是将`ViewPager`的滚动行为扩展为自动无限循环。这通常是为了实现类似广告轮播的效果,即当用户达到`ViewPager`的第一个或最后一个页面时,它会自动无缝地滚动回...

    viewpager无限循环

    本项目标题为 "viewpager无限循环",意味着我们将探讨如何使`ViewPager`在达到最后一个页面后无缝返回到第一个页面,形成一个无限循环的效果。这在创建图片轮播或动态效果时尤其有用。 描述中提到的 "一个viewpager...

    android封装无限循环ViewPager

    然而,原生的ViewPager并不支持无限循环的效果,即当滑动到最后一页时无法自动跳转回第一页,反之亦然。为了实现这种效果,我们需要对ViewPager进行封装,这就是“android封装无限循环ViewPager”的主题。 首先,...

    ViewPage(无限循环)

    ViewPage 的无限循环模式则是让使用者在滑动到最后一页时能够无缝地过渡到第一页,反之亦然,从而营造出一种内容无限延伸的感觉,提升了用户体验。 在实现 ViewPage 无限循环的过程中,有几个关键知识点是必须要...

    iOS无限循环轮播图

    本教程将详细介绍如何使用UICollectionView来实现一个简单且具有无限循环功能的轮播图。 首先,我们要了解UICollectionView的基本概念。UICollectionView是Apple提供的一个强大的控件,它可以灵活地展示数据集合,...

Global site tag (gtag.js) - Google Analytics