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 相关文章推荐
关于Mozilla浏览器不支持innerText的解决办法
Jan 01 Javascript
jquery+css+ul模拟列表菜单具体实现思路
Apr 15 Javascript
JavaScript执行顺序详细介绍
Dec 04 Javascript
jquery如何获取复选框的值
Dec 12 Javascript
自己实现ajax封装示例分享
Apr 01 Javascript
jquery实现鼠标滑过显示提示框的方法
Feb 05 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
Aug 17 Javascript
JavaScript、jQuery与Ajax的关系
Jan 24 Javascript
jQuery表单对象属性过滤选择器实例详解
Sep 13 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
Oct 12 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
Oct 21 Javascript
js前端面试常见浏览器缓存强缓存及协商缓存实例
Jun 21 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在Web开发领域的优势
2006/10/09 PHP
PHP文件操作实现代码分享
2011/09/01 PHP
PHP调用C#开发的dll类库方法
2014/07/28 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
用unescape反编码得出汉字示例
2014/04/24 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
详解VueJs中的V-bind指令
2018/05/03 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
gearman的安装启动及python API使用实例
2014/07/08 Python
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
python操作ssh实现服务器日志下载的方法
2015/06/03 Python
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
python中pika模块问题的深入探究
2018/10/13 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
Laravel的加密解密与哈希实例讲解
2021/03/24 PHP
机电一体化自荐信
2013/12/10 职场文书
房产销售经理职责
2013/12/20 职场文书
思想专业自荐信范文
2013/12/25 职场文书
超市创业计划书
2014/04/24 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
摄影展策划方案
2014/06/02 职场文书
2014年企业党支部工作总结
2014/12/04 职场文书
2015年度企业工作总结
2015/05/21 职场文书
电影小兵张嘎观后感
2015/06/03 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
学生病假条怎么写
2015/08/17 职场文书