zoukankan      html  css  js  c++  java
  • jquery 插件之 点赞“+1” 特效

    一般用户点个赞后,都会有个 +1 的特效飘过,用户已经点过赞了,会有“已点过赞”的特效提示

    在这里,我们写了一个点赞的插件

    //扩展对象点赞插件、点赞特效
    //用法:jQuery('.praisebtn').praise(options);//为多元素注册事件时要使用class类名,不能用id
    ; (function ($) {
        $.fn.praise = function (options) {
            var defaults = {
                obj: null, //jq对象,针对哪个对象使用这个tipsBox函数
                str: "+1", //字符串,要显示的内容;也可以传一段html,如: "<b style='font-family:Microsoft YaHei;'>哈哈</b>"
                startSize: "10px", //动画开始的文字大小
                endSize: "30px",  //动画结束的文字大小
                interval: 600, //文字动画时间间隔
                color: "red",  //文字颜色
                callback: function () { }  //回调函数
            };
            var opt = $.extend(defaults, options);  //合并参数
            $("body").append("<span class='num'>" + opt.str + "</span>");
            var box = $(".num");
            var left = opt.obj.offset().left + opt.obj.width() / 2;//span btn左侧的距离加上自身宽度的一半
            var top = opt.obj.offset().top - opt.obj.height();//顶部距离减去自身的高度
            box.css({
                "position": "absolute",
                "left": left + "px",
                "top": top + "px",
                "z-index": 9999,
                "font-size": opt.startSize,
                "line-height": opt.endSize,
                "color": opt.color
            });
            box.animate({
                "font-size": opt.endSize,
                "opacity": "0",
                "top": top - parseInt(opt.endSize) + "px"
            }, opt.interval, function () {
                box.remove();
                opt.callback();
            });
        }
        
        $.fn.praised = function (options) {
            var defaults = {
                obj: null, //jq对象,针对哪个对象使用这个tipsBox函数
                str: "您已赞过~", //字符串,要显示的内容;
                startSize: "10px", //动画开始的文字大小
                endSize: "30px",  //动画结束的文字大小
                interval: 600, //文字动画时间间隔
                color: "red",  //文字颜色
                callback: function () { }  //回调函数
            };
            var opt = $.extend(defaults, options);  //合并参数
            $("body").append("<span class='praisetip'>" + opt.str + "</span>");
            var tipbox = jQuery(".praisetip");
            var left = opt.obj.offset().left + opt.obj.width();//span btn左侧的距离加上自身宽度的一半
            var top = opt.obj.offset().top + opt.obj.height();//顶部距离减去自身的高度
            tipbox.css({
                "position": "absolute",
                "left": left + "px",
                "top": top + "px",
                "z-index": 9999,
                "font-size": "12px",
                "line-height": "20px",
                "color": "red"
            });
            tipbox.animate({
                "opacity": "0"
            }, 1200, function () {
                tipbox.remove();
            });
        }
    })(jQuery);
    

      

    在html 上

    <span class="praisebtn327111">
    	<a href="javascript:void(0)" onclick="praise('327111','57071','0')"><img src="images/zan.png">赞(<span id="praiseCount327111">1</span>)</a>
    </span>
    

    在引用点赞功能上,即如果ajax 返回的结果是success,则表示点赞成功,飘过提示+1,反之,则表示已点赞

    function praise(msgid,name,count) 
    {
    	var datas={"msgid":msgid,"name":name,"count":count}
    	$.ajax({
    		type: "post",
    		url: "/addMsgPraise",
    		data: datas,
    		datatype: "text",
    		success:function(data){
    			var praisebtn = jQuery(".praisebtn"+msgid);
    			if(data=="success")
    			{
    				praisebtn.praise({
    					obj:praisebtn,
    					str: "+1"
    				});
    				count ++;
    				$("#praiseCount"+msgid).html(count);
    			}else
    			{
    				praisebtn.praised({
    					obj: praisebtn
    				});
    			}
    		}
    	});
    }
    

      

  • 相关阅读:
    spring 配置 线程池并使用 springtest 进行测试
    Mybatis使用generator自动生成的Example类使用OR条件查询
    springtest mapper注入失败问题解决 {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    异常 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 解决方案
    idea 开启 tomcat 访问日志记录
    idea ssm项目迁移到另一台机器上时出现不能正常启动项目的解决方案
    记一次 java 连接 linux ssh服务 权限验证失败的原因和解决过程
    ajax传递数组给controller的实现方法和坑
    service手动实例化(new)导致类中的spring对象无法注入的问题解决
    javaweb学习总结十一(JAXP对XML文档进行DOM解析)
  • 原文地址:https://www.cnblogs.com/panie2015/p/5613783.html
Copyright © 2011-2022 走看看