jQuery+ajax实现文章点赞功能的方法


Posted in Javascript onDecember 31, 2015

本文实例讲述了jQuery+ajax实现文章点赞功能的方法。分享给大家供大家参考,具体如下:

前几日有童鞋问我索要本站右上角的点赞功能,麦葱左思右想,决定把这功能分享出来,希望此功能对各位会带来方便哦。

代码很简单,jQuery+php实现的。

jQuery代码:

jQuery(document).ready(function($) {
$(".zan").click(function(e){
var $i=$(".zan i"), $b=$("<b>").text("+1"), n=parseInt($i.text());
$b.css({
"bottom":0,
"z-index":999,
});
$i.text(n+1);
$(".zan").append($b);
$b.animate({"bottom":100,"opacity":0},1000,function(){$b.remove();});
var d = setInterval(function(){
clearInterval(d);
if($(".zan b").length == 1){
$.post("",{zan:$i.text()})
}
},1000)
e.stopPropagation();
});
});

php代码:

<?php
$path = "zan.txt";
if(isset($_POST['zan'])){
$num = (int)$_POST['zan'];
$save = fopen($path,"w");
fwrite($save,$num);
fclose($save);
echo "good";
exit();
$zan = file_exists($path) ? intval(file_get_contents($path)) : 0;
}
?>

html代码:

<div class="main">
<div class="zan"><em>看官们给了 <i><?php echo $zan; ?></i> 个赞</em></div>
</div>

配上合适的css样式:

.main { position: relative; font-size: 10pt; line-height: 18px; margin: 40px auto; width: 800px; height: 170px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none;}
.zan { position: absolute; top: 20%; left: 45%; width: 160px; height: 110px; background: url("zan.jpg") center no-repeat; cursor: pointer; opacity: 0.85; }
.zan:active { opacity: 1; }
.zan em { position: absolute; color: #333; font-style: normal; bottom: -15px; width: 100%; text-align: center; }
.zan i { font-style: normal; color: #E94F06; }
.zan b { position: absolute; color: #E94F06; font-style: normal; bottom: -15px; width: 100%; text-align: center; }

就是这样,简单吧!

下面是完整代码:

<?php
$path = "zan.txt";
if(isset($_POST['zan'])){
$num = (int)$_POST['zan'];
$save = fopen($path,"w");
fwrite($save,$num);
fclose($save);
echo "good";
exit();
}
$zan = file_exists($path) ? intval(file_get_contents($path)) : 0;
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>我要点赞</title>
<style>
.main { position: relative; font-size: 10pt; line-height: 18px; margin: 40px auto; width: 800px; height: 170px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none;}
.zan { position: absolute; top: 20%; left: 45%; width: 160px; height: 110px; background: url("zan.jpg") center no-repeat; cursor: pointer; opacity: 0.85; }
.zan:active { opacity: 1; }
.zan em { position: absolute; color: #333; font-style: normal; bottom: -15px; width: 100%; text-align: center; }
.zan i { font-style: normal; color: #E94F06; }
.zan b { position: absolute; color: #E94F06; font-style: normal; bottom: -15px; width: 100%; text-align: center; }
</style>
</head>
<body>
<div class="main">
<div class="zan"><em>看官们给了 <i><?php echo $zan; ?></i> 个赞</em></div>
</div>
<script src="jquery.min.js"></script>
<script>
jQuery(document).ready(function($) {
$(".zan").click(function(e){
var $i=$(".zan i"), $b=$("<b>").text("+1"), n=parseInt($i.text());
$b.css({
"bottom":0,
"z-index":999,
});
$i.text(n+1);
$(".zan").append($b);
$b.animate({"bottom":100,"opacity":0},1000,function(){$b.remove();});
var d = setInterval(function(){
clearInterval(d);
if($(".zan b").length == 1){
$.post("",{zan:$i.text()})
}
},1000)
e.stopPropagation();
});
});
</script>
</body>
</html>

标题都说了是无上限点赞的,So,麦葱告诉大家个小诀窍:

/* 怒赞 */
jQuery.noConflict();
function zan() {
setInterval(function () {
jQuery(".zan").click();
zan();
}, 600)
}
zan();

当然,如果你使用了加速乐防CC(麦葱就是),怒赞请求量过多,会被屏蔽掉哦!除非你取消掉jQuery里的POST

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
Javascript 调试利器 Firebug使用详解六
Jul 05 Javascript
iframe的父子窗口之间的对象相互调用基本用法
Sep 03 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
Jan 13 Javascript
js实现Select列表内容自动滚动效果代码
Aug 20 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
Aug 25 Javascript
浅谈JavaScript中的对象及Promise对象的实现
Nov 15 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
Sep 21 Javascript
React服务端渲染(总结)
Jul 01 Javascript
vue项目国际化vue-i18n的安装使用教程
Mar 14 Javascript
通过实践编写优雅的JavaScript代码
May 30 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
Nov 21 Javascript
JavaScript实现队列结构过程
Dec 06 Javascript
jQuery实现的超简单点赞效果实例分析
Dec 31 #Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
Dec 31 #Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
Dec 31 #Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
Dec 31 #Javascript
javascript数据类型验证方法
Dec 31 #Javascript
jQuery操作基本控件方法实例分析
Dec 31 #Javascript
javascript图片延迟加载实现方法及思路
Dec 31 #Javascript
You might like
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
php通过strpos查找字符串出现位置的方法
2015/03/17 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
vue实现图书管理demo详解
2017/10/17 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
详解Angular路由之路由守卫
2018/05/10 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
2018/09/13 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
基于DATAFRAME中元素的读取与修改方法
2018/06/08 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
2020/06/30 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
英国综合网上购物商城:The Hut
2018/07/03 全球购物
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
环境科学专业大学生自荐信格式
2013/09/21 职场文书
计算机应用专业毕业生求职信
2013/10/24 职场文书
优秀护士先进事迹
2014/05/08 职场文书
幼儿园大班开学寄语
2014/08/02 职场文书
单独二胎证明
2015/06/24 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫