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 相关文章推荐
js操作ajax返回的json的注意问题!
Feb 23 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
Apr 24 Javascript
判断及设置浏览器全屏模式
Apr 20 Javascript
Javascript基础教程之数组 array
Jan 18 Javascript
js判断checkbox是否选中个数的方法(超简单)
Aug 19 Javascript
微信小程序实战之运维小项目
Jan 17 Javascript
jQuery中的on与bind绑定事件区别实例详解
Feb 28 Javascript
jquery实现图片上传前本地预览
Apr 28 jQuery
Vue使用zTree插件封装树组件操作示例
Apr 25 Javascript
通过jQuery学习js类型判断的技巧
May 27 jQuery
JavaScript创建、读取和删除cookie
Sep 03 Javascript
js实现蒙版效果
Jan 11 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
基于mysql的论坛(6)
2006/10/09 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
jQuery旋转插件jqueryrotate用法详解
2016/10/13 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
详解webpack打包nodejs项目(前端代码)
2018/09/19 NodeJs
javascript实现图片轮播代码
2019/07/09 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
python的变量与赋值详细分析
2017/11/08 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
Python函数调用追踪实现代码
2020/11/27 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
Diesel美国网上商店:意大利牛仔时装品牌
2020/12/10 全球购物
解除劳动合同协议书范本
2014/04/14 职场文书
集中整治工作方案
2014/05/01 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
公文写作指导之倡议书!
2019/07/03 职场文书