jquery 插件之 点赞“+1” 特效
一般用户点个赞后,都会有个 +1 的特效飘过,用户已经点过赞了,会有“已点过赞”的特效提示
在这里,我们写了一个点赞的插件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | //扩展对象点赞插件、点赞特效 //用法: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 上
1 2 3 | <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,反之,则表示已点赞
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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 }); } } }); } |
作者:panie
出处:http://www.cnblogs.com/panie2015/
如果您希望与我交流互动,欢迎加我微信
本文内容为作者辛苦整理书写,欢迎转载,但请保留文章出处
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?