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 相关文章推荐
asp 的 分词实现代码
May 24 Javascript
对frameset、frame、iframe的js操作示例代码
Aug 16 Javascript
Jquery中&quot;$(document).ready(function(){ })&quot;函数的使用详解
Dec 30 Javascript
根据当前时间在jsp页面上显示上午或下午
Aug 18 Javascript
JavaScript中的console.assert()函数介绍
Dec 29 Javascript
jQuery实现仿百度帖吧头部固定导航效果
Aug 07 Javascript
jQuery事件与动画基础详解
Feb 23 Javascript
详解在Vue中如何使用axios跨域访问数据
Jul 07 Javascript
详解react关于事件绑定this的四种方式
Mar 09 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
Sep 22 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
Nov 06 Javascript
vue.js Router中嵌套路由的实用示例
Jun 27 Vue.js
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与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
JavaScript XML操作 封装类
2009/07/01 Javascript
BOM与DOM的区别分析
2010/10/26 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
js中传递特殊字符(+,&amp;)的方法
2014/01/16 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
javascript与Python快速排序实例对比
2015/08/10 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
JS中使用变量保存arguments对象的方法
2016/06/03 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
Vue的移动端多图上传插件vue-easy-uploader的示例代码
2017/11/27 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
2019/06/17 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
vue中根据时间戳判断对应的时间(今天 昨天 前天)
2019/12/20 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
vue axios请求成功却进入catch的原因分析
2020/09/08 Javascript
[02:26]DOTA2英雄米拉娜基础教程
2013/11/25 DOTA
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
Tory Burch德国官网:美国时尚生活品牌
2018/01/03 全球购物
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
就业推荐表自我鉴定
2013/10/29 职场文书
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
体育专业学生自我评价范文
2014/01/17 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
大学新生军训自我鉴定
2014/03/18 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
2014年行政工作总结
2014/11/19 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书