需要学习JavaScript语言和HTML语言
成都创新互联专注于甘孜州企业网站建设,成都响应式网站建设,商城开发。甘孜州网站建设公司,为甘孜州等地区提供建站服务。全流程按需制作,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
使用方法
HTML结构
该“点赞”红心按钮的HTML结构是将心形按钮放在一个超链接的后面或下面,它的HTML结果如下:
div class="feed" id="feed1"
pjQuery之家 a href="";/a/p
div class="heart" id="like3" rel="like"/div
div class="likeCount" id="likeCount3"24/div
/div
CSS样式
整个“点赞”烟花爆炸效果实际上是使用背景图片的连续播放来完成的,它使用一张很长的雪碧(Sprite)图片,然后在点击红心按钮是逐帧进行播放。下面是开始时显示第一帧的CSS样式:
.heart {
background: url(images/web_heart_animation.png);
background-position: left;
background-repeat: no-repeat;
height: 50px;
width: 50px;
cursor: pointer;
position: absolute;
left:-14px;
background-size:1450px; //实际背景图片尺寸2900px
}
.heart:hover{
background-position: right; //显示最后一个红心帧
}
.likeCount{
margin-top: 13px;
margin-left: 28px;
font-size: 16px;
color: #999999
}
下面的代码是逐帧播放红心背景图片,它使用CSS3 keyframe帧动画来完成。
@-webkit-keyframes heartBlast {
0% {background-position: left;}
100% {background-position: right;}
}
@keyframes heartBlast {
0% {background-position: left;}
100% {background-position: right;}
}
.heartAnimation {
-webkit-animation-name: heartBlast; //webkit内核浏览器
animation-name: heartBlast;
-webkit-animation-duration: .8s;
animation-duration: .8s;
-webkit-animation-iteration-count: 1;
animation-iteration-count: 1;
-webkit-animation-timing-function: steps(28); //共28个背景图片帧
animation-timing-function: steps(28);
background-position: right;
}
JavaScript
在这个“点赞”红心动画特效中使用jQuery代码来使红心按钮在点击时与相应的总点赞数量进行联动。你可以通过ajax来进行数据库操作。当用户点赞时,总数量加1,取消点赞时,总数量减1。
script
$(document).ready(function(){
$('body').on("click",'.heart',function(){
var A=$(this).attr("id");
var B=A.split("like"); //splitting like1 to 1
var messageID=B[1];
$(this).css("background-position","")
var D=$(this).attr("rel");
$.ajax({
type: "POST",
url: "message_like_ajax.php",
data: dataString,
cache: false,
success: function(data){
$("#likeCount"+messageID).html(data);
if(D === 'like') {
$(this).addClass("heartAnimation").attr("rel","unlike"); //applying animation class
}
else{
$(this).removeClass("heartAnimation").attr("rel","like");
$(this).css("background-position","left");
}
}); //ajax end
});//heart click end
});
/script
看到有网友制作了对空间好友的动态点赞,加了个以及取消赞的功能。直接运行的脚本
好友动态点赞代码
jQuery("a.qz_like_btn_v3[data-clicklog='like']").each(function(index,item){ console.log(item); jQuery(item).trigger('click'); }); jQuery(window).scroll(function(){ jQuery("a.qz_like_btn_v3[data-clicklog='like']").each(function(index,item){ jQuery(item).trigger('click'); }); return true; });
取消已点赞
jQuery("a.qz_like_btn_v3[data-clicklog='cancellike']").each(function(index,item){ console.log(item); jQuery(item).trigger('click'); }); jQuery(window).scroll(function(){ jQuery("a.qz_like_btn_v3[data-clicklog='cancellike']").each(function(index,item){ jQuery(item).trigger('click'); }); return true; });
首先只需要在body中定义一个button。和盛放心的盒子
div id = "demo"/div
input type = "button" id = "btn1" value = "点个赞吧" /
由于还要引进心的图片,所以在这里我们在设置css样式的时候还要设置图片img的样式。
css代码如下:
style type="text/css"
*{
margin: 0px;
padding: 0px;
}
#btn1{
position: absolute;
bottom:100px;
width: 200px;
background-color: lightblue;
font-size: 18px;
left:45%;
}
img{
bottom:100px;
margin-left: -15px;
width: 20px;
height:20px;
position: absolute;
left: 50%;
}
/style
下来就是要写jquery函数。
(document).ready(function(){
// 1. 首先给按钮绑定点击事件。(“#btn1”).click(function(){
//2. 生成彩色的心,即随机选择图片。
// 2.1 生成随机数
var num = Math.floor(Math.random() * 3 +1);
//2.2 生成一个img元素,并为其添加src属性
var image = $(“”);
//三个图片的名字分别是 1.png\2.png\3.png,所以img的路径和图片名可以进行线面的字符串拼接
image.attr(“src”,”./images/”+num+”.png”);
//3。将生成的img追加到页面上
$(“#demo”).append(image);
//4. 下来就是让心动起来。从点击按钮的地方向上飘。利用jquery的动画函数animate()
//生成随机的距离左边的距离,这样就可以使心有种向上飘的感觉
var left = Math.random() * 800;
image.animate({
‘bottom':'800px',
‘left':left,
‘opacity':'0'
},3000);
});
});
});
//点赞
$(".log_digg").on('click', function () {
var post_id = $(this).parent().parent().find(".post_id").val();
var log_digg_num =$(this).find(".log_digg_num_"+post_id).html();
log_digg_num=parseInt(log_digg_num);
var text = $(this).find(".digg_text_"+post_id).text();
if(text=="点赞"){
$.post(URL_PATH+"/index/Index/digg_log",{'post_id':post_id},function(data){
var data=JSON.parse(data);//接收解码的数据
if(data.code=="200"){
alert(data.msg);
log_digg_num = log_digg_num+1;
$(".log_digg_num_"+post_id).html(log_digg_num);
$(".digg_text_"+post_id).text('取消点赞');
}
else
{
alert('点赞失败');
}
});
}
else{
$.post(URL_PATH+"/index/Index/cancel_digg_log",{'post_id':post_id},function(data){
var data=JSON.parse(data);//接收解码的数据
if(data.code=="200"){
alert(data.msg);
log_digg_num = log_digg_num-1;
$(".log_digg_num_"+post_id).html(log_digg_num);
$(".digg_text_"+post_id).text('点赞');
}
else
{
alert('取消点赞失败');
}
});
}
})
如果需要后台传输就用ajax的给你个例子:
$.ajax({ url: "test.html", context: document.body}).done(function() { $(this).addClass("done");});
如果只是单纯的这个效果jquery就可以实现,但是要动态的话就要结合ajax实现数据存储
用AJAX实现:
举例jquery ajax:
var paramJSON = {参数1:"值1",参数2:"值2"};
//URL路径为你提交到后台录入数据库的操作,也就是你的图片对应的路径
//paramJSON为你需要传递的参数 可选
//function回调函数为你点赞录入数据库后返回的消息,比如是否录入数据库成功等
$.post("URL路径", paramJSON,
function(data){
alert("Data Loaded: " + data);
});