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 相关文章推荐
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
Apr 20 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
Oct 29 Javascript
javascript与jquery中跳出循环的区别总结
Nov 04 Javascript
javascript实现数字+字母验证码的简单实例
Feb 10 Javascript
node.js集成百度UE编辑器
Feb 05 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
Dec 03 Javascript
JQuery ztree 异步加载实例讲解
Feb 25 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
Oct 26 Javascript
js获取form表单中name属性的值
Feb 27 Javascript
vue两组件间值传递 $router.push实现方法
May 15 Javascript
微信小程序获取当前时间及星期几的实例代码
Sep 20 Javascript
让Vue响应Map或Set的变化操作
Nov 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数据浏览器
2006/10/09 PHP
php实现将Session写入数据库
2015/07/26 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
JS求解三元一次方程组值的方法
2017/01/03 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
JS实现简单拖拽效果
2017/06/21 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
vue插件vue-resource的使用笔记(小结)
2017/08/04 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
jQuery中$原理实例分析
2018/08/13 jQuery
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
2019/05/22 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
python+selenium+autoit实现文件上传功能
2017/08/23 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
python使用socket 先读取长度,在读取报文内容示例
2019/09/26 Python
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
英国最大的海报商店:GB Posters
2018/03/20 全球购物
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
网络技术支持面试题
2013/04/22 面试题
认错检讨书
2014/10/02 职场文书
人事局接收函
2015/01/30 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
幼儿园教师安全责任书
2015/05/08 职场文书
解决golang post文件时Content-Type出现的问题
2021/05/02 Golang
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL
Python OpenCV形态学运算示例详解
2022/04/07 Python