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 相关文章推荐
jquery之Document元素选择器篇
Aug 14 Javascript
jQuery 浮动广告实现代码
Dec 25 Javascript
JavaScript实现将xml转换成html table表格的方法
Apr 17 Javascript
纯JavaScript代码实现移动设备绘图解锁
Oct 16 Javascript
JS简单判断函数是否存在的方法
Feb 13 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
Feb 18 Javascript
Javascript中this关键字指向问题的测试与详解
Aug 11 Javascript
详解如何使用 vue-cli 开发多页应用
Dec 16 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
Jun 02 Javascript
webpack项目使用eslint建立代码规范实现
May 16 Javascript
微信小程序swiper左右扩展各显示一半代码实例
Dec 05 Javascript
微前端qiankun改造日渐庞大的项目教程
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&amp;&amp;mysql)三
2006/10/09 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
angularjs $http实现form表单提交示例
2017/06/09 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
详解vue-cli脚手架中webpack配置方法
2018/08/22 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
vue之延时刷新实例
2019/11/14 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
pip 错误unused-command-line-argument-hard-error-in-future解决办法
2014/06/01 Python
python实现自动重启本程序的方法
2015/07/09 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
python3将变量输入的简单实例
2020/08/19 Python
详解python中的闭包
2020/09/07 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
2020/09/25 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
CSS3动画之利用requestAnimationFrame触发重新播放功能
2019/09/11 HTML / CSS
HTML5中如何显示视频呢 HTML5视频播放demo
2013/06/08 HTML / CSS
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
学校后勤岗位职责
2014/02/19 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
关于旅游的活动方案
2014/08/15 职场文书
助残日活动总结
2014/08/27 职场文书
环保建议书作文300字
2015/09/14 职场文书