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 巧妙去除数组中的重复项
Jan 25 Javascript
常见JS效果之图片减速度滚动实现代码
Dec 08 Javascript
Jquery实现带动画效果的经典二级导航菜单
Mar 22 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
Nov 26 Javascript
Javascript实现滚动图片新闻的实例代码
Nov 27 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
Jul 01 Javascript
EasyUI创建对话框的两种方式
Aug 23 Javascript
jQuery EasyUI 页面加载等待及页面等待层
Feb 06 Javascript
Vue2 轮播图slide组件实例代码
May 31 Javascript
JS实现将二维数组转为json格式字符串操作示例
Jul 12 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
Mar 22 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
Oct 30 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中strtotime函数用法详解
2014/11/15 PHP
Linux操作系统安装LAMP环境
2015/06/26 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
php快速排序原理与实现方法分析
2016/05/26 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
移动手机APP手指滑动切换图片特效附源码下载
2015/11/30 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
jQuery dateRangePicker插件使用方法详解
2017/07/28 jQuery
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
Python IDLE清空窗口的实例
2018/06/25 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
python3判断url链接是否为404的方法
2018/08/10 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
全球最大的游戏市场:G2A
2018/07/05 全球购物
学习2014年全国两会心得体会
2014/03/12 职场文书
2014年行政后勤工作总结
2014/12/06 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
JS数组方法some、every和find的使用详情
2021/10/05 Javascript