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 定义function的三种方式小结
Oct 16 Javascript
js限制文本框为整数和货币的函数代码
Oct 13 Javascript
jquery isEmptyObject判断是否为空对象的函数
Feb 14 Javascript
JavaScript的递归之递归与循环示例介绍
Aug 05 Javascript
JavaScript实现SHA-1加密算法的方法
Mar 11 Javascript
省市联动效果的简单实现代码(推荐)
Jun 06 Javascript
基于模板引擎Jade的应用(详解)
Dec 12 Javascript
微信小程序实现动态获取元素宽高的方法分析
Dec 10 Javascript
vue开发环境配置跨域的方法步骤
Jan 16 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
May 10 Javascript
详解vue高级特性
Jun 09 Javascript
JavaScript实现音乐导航效果
Nov 19 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
PHP4中实现动态代理
2006/10/09 PHP
php 获取完整url地址
2008/12/20 PHP
PHP实现HTML生成PDF文件的方法
2014/11/07 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
PHP多进程简单实例小结
2019/11/09 PHP
javascript Firefox与IE 替换节点的方法
2010/02/24 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
2015/12/16 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
详谈innerHTML innerText的使用和区别
2017/08/18 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
python实现比较两段文本不同之处的方法
2015/05/30 Python
Python线性回归实战分析
2018/02/01 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
pyqt远程批量执行Linux命令程序的方法
2019/02/14 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
python Django 创建应用过程图示详解
2019/07/29 Python
基于pandas中expand的作用详解
2019/12/17 Python
Django关于admin的使用技巧和知识点
2020/02/10 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
python实现图片素描效果
2020/09/26 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
英国最大的专业户外零售商:Mountain Warehouse
2018/06/06 全球购物
HQhair美国/加拿大:英国化妆品、美容及美发产品商城
2019/04/15 全球购物
大学生毕业自我鉴定
2013/11/06 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
学校后勤工作总结2015
2015/05/15 职场文书