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 尚未实现错误解决办法
Nov 27 Javascript
ExtJS[Desktop]实现图标换行示例代码
Nov 17 Javascript
通过复制Table生成word和excel的javascript代码
Jan 20 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
Mar 03 Javascript
React组件重构之嵌套+继承及高阶组件详解
Jul 19 Javascript
深入理解 Koa 框架中间件原理
Oct 18 Javascript
vue2.0结合Element-ui实战案例
Mar 06 Javascript
微信小程序图表插件wx-charts用法实例详解
May 20 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
Jun 12 Javascript
vue-cli在 history模式下的配置详解
Nov 26 Javascript
详解Vue中Axios封装API接口的思路及方法
Oct 10 Javascript
elementui实现预览图片组件二次封装
Dec 29 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
一个程序下载的管理程序(三)
2006/10/09 PHP
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
php实现的日历程序
2015/06/18 PHP
PHP生成树的方法
2015/07/28 PHP
PHP使用缓存即时输出内容(output buffering)的方法
2015/08/03 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
js 手机号码合法性验证代码集合
2012/09/29 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
js/jQuery对象互转(快速操作dom元素)
2013/02/04 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
JavaScript中判断原生函数检查function是否是原生代码
2014/09/09 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
2017/09/15 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
如何在js代码中消灭for循环实例详解
2018/07/29 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
vuex存取值和映射函数使用说明
2020/07/24 Javascript
Python字符串匹配算法KMP实例
2015/07/18 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
python爬虫线程池案例详解(梨视频短视频爬取)
2021/02/20 Python
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
自我鉴定三原则
2014/01/13 职场文书
教师考核评语大全
2014/12/31 职场文书
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
Python数据分析之pandas读取数据
2021/06/02 Python
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫