html实现评论点赞功能,前端开发中jQuery+CSS3点赞功能

/p>

<

margin:0;

padding:0;

}

.text-content{

min-width:1180px;

border-bottom:1pxsolid#e7e7e7;

border-top:1pxsolid#e7e7e7;

background:#f4f4f4;

}

.text-content h1{

text-align:center;

font-size:20px;

padding-top:50px;

color:#EB4F38;

}

.text-content p{

padding:10px100px40px100px;

clear:both;

color:#333;

display:block;

font-family:”Microsoft Yahei”,”Helvetica Neue”,Helvetica,Arial,sans-serif;

font-size:16px;

line-height:1.6;

margin:0auto;

outline:mediumnone;

position:relative;

width:900px;

word-wrap:break-word;

}

.praise{

width:40px;

height:40px;

margin:50pxauto;

cursor:pointer;

font-size:12px;

text-align:center;

position:relative;

}

#praise{

display:block;

width:40px;

height:40px;

margin:0auto;

}

#praise-txt{

height:25px;

line-height:25px;

display:block;

}

.praise img{

width:40px;

height:40px;

display:block;

margin:0auto;

}

.praise img.animation{

animation: myfirst 0.5s;

-moz-animation: myfirst 0.5s;

-webkit-animation: myfirst 0.5s;

-o-animation: myfirst 0.5s;

}

#add-num{

display:none;

}

#add-num .add-animation{

color:#000;

position:absolute;

top:-15px;

left:10px;

font-size:15px;

opacity:0;

filter:Alpha(opacity=0);

-moz-opacity:0;

animation: mypraise 0.5s;

-moz-animation: mypraise 0.5s;

-webkit-animation: mypraise 0.5s;

-o-animation: mypraise 0.5s;

font-style:normal;

}

.praise .hover , #add-num .add-animation.hover , #praise-txt.hover{

color:#EB4F38;

}

@keyframes myfirst

{

0%{

width:40px;

height:40px;

}

50%{

width:50px;

height:50px;

}

100% {

width:40px;

height:40px;

}

}

@-moz-keyframes myfirst

{

0%{

width:40px;

height:40px;

}

50%{

width:50px;

height:50px;

}

100% {

width:40px;

height:40px;

}

}

@-webkit-keyframes myfirst

{

0%{

width:40px;

height:40px;

}

50%{

width:50px;

height:50px;

}

100% {

width:40px;

height:40px;

}

}

@-o-keyframes myfirst

{

0%{

width:40px;

height:40px;

}

50%{

width:50px;

height:50px;

}

100% {

width:40px;

height:40px;

}

}

@keyframes mypraise

{

0%{

top:-15px;

opacity:0;

filter:Alpha(opacity=0);

-moz-opacity:0;

}

25%{

top:-20px;

opacity:0.5;

filter:Alpha(opacity=50);

-moz-opacity:0.5;

}

50%{

top:-25px;

opacity:1;

filter:Alpha(opacity=100);

-moz-opacity:1;

}

75%{

top:-30px;

opacity:0.5;

filter:Alpha(opacity=50);

-moz-opacity:0.5;

}

100% {

top:-35px;

opacity:0;

filter:Alpha(opacity=0);

-moz-opacity:0;

}

}

@-moz-keyframes mypraise

{

0%{

top:-15px;

opacity:0;

filter:Alpha(opacity=0);

-moz-opacity:0;

}

25%{

top:-20px;

opacity:0.5;

filter:Alpha(opacity=50);

-moz-opacity:0.5;

}

50%{

top:-25px;

opacity:1;

filter:Alpha(opacity=100);

-moz-opacity:1;

}

75%{

top:-30px;

opacity:0.5;

filter:Alpha(opacity=50);

-moz-opacity:0.5;

}

100% {

top:-35px;

opacity:0;

filter:Alpha(opacity=0);

-moz-opacity:0;

}

}

@-webkit-keyframes mypraise

{

0%{

top:-15px;

opacity:0;

filter:Alpha(opacity=0);

-moz-opacity:0;

}

25%{

top:-20px;

opacity:0.5;

filter:Alpha(opacity=50);

-moz-opacity:0.5;

}

50%{

top:-25px;

opacity:1;

filter:Alpha(opacity=100);

-moz-opacity:1;

}

75%{

top:-30px;

opacity:0.5;

filter:Alpha(opacity=50);

-moz-opacity:0.5;

}

100% {

top:-35px;

opacity:0;

filter:Alpha(opacity=0);

-moz-opacity:0;

}

}

@-o-keyframes mypraise

{

0%{

top:-15px;

opacity:0;

filter:Alpha(opacity=0);

-moz-opacity:0;

}

25%{

top:-20px;

opacity:0.5;

filter:Alpha(opacity=50);

-moz-opacity:0.5;

}

50%{

top:-25px;

opacity:1;

filter:Alpha(opacity=100);

-moz-opacity:1;

}

75%{

top:-30px;

opacity:0.5;

filter:Alpha(opacity=50);

-moz-opacity:0.5;

}

100% {

top:-35px;

opacity:0;

filter:Alpha(opacity=0);

-moz-opacity:0;

}

}

145

+1

/* @author:Romey

* 动态点赞

* 此效果包含css3,部分浏览器不兼容(如:IE10以下的版本)

*/

$(function(){

$(“#praise”).click(function(){

varpraise_img=$(“#praise-img”);

vartext_box=$(“#add-num”);

varpraise_txt=$(“#praise-txt”);

varnum=parseInt(praise_txt.text());

if(praise_img.attr(“src”) == (“http://cdn.attach.qdfuns.com/notes/pics/201612/07/111158g2kg4s2gk9hm4fd4.png”)){

$(this).

praise_txt.removeClass(“hover”);

text_box.show().

$(“.add-animation”).removeClass(“hover”);

num-=1;

praise_txt.text(num)

}else{

$(this).

praise_txt.addClass(“hover”);

text_box.show().

$(“.add-animation”).addClass(“hover”);

num+=1;

praise_txt.text(num)

}

});

})

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要在后端实现点赞功能,并将点赞的信息保存到数据库。然后,在前端页面,使用 templates 和 semantic-ui 来实现点赞通知页面。 1. 后端实现点赞功能 在后端,需要创建一个点赞的视图函数,该函数需要接收点赞的请求,并将点赞的信息保存到数据库。例如: ```python from django.shortcuts import get_object_or_404, render from django.http import HttpResponse, JsonResponse from .models import Post, Like def like_post(request, post_id): post = get_object_or_404(Post, id=post_id) like, created = Like.objects.get_or_create(user=request.user, post=post) if created: message = 'You liked this post.' else: message = 'You already liked this post.' return JsonResponse({'message': message}) ``` 在这个视图函数,首先通过 post_id 获取到对应的帖子对象,然后使用当前登录用户和该帖子对象创建一个 Like 对象。如果创建成功,则说明该用户之前还没有点赞过该帖子,否则说明该用户已经点赞过了。最后返回一个 JSON 格式的响应,包含点赞的信息。 2. 前端实现点赞通知页面 在前端,可以使用 templates 和 semantic-ui 来实现点赞通知页面。首先,需要在页面引入 semantic-ui 的样式和 JavaScript 文件。例如: ```html {% load static %} <link rel="stylesheet" href="{% static 'semantic/semantic.min.css' %}"> <script src="{% static 'semantic/semantic.min.js' %}"></script> ``` 然后,在页面添加一个点赞按钮和一个通知框,如下所示: ```html <div class="ui segment"> <h3>Post Title</h3> <p>Post Content</p> <button class="ui labeled icon button like-post" data-post-id="{{ post.id }}"> <i class="heart outline icon"></i> Like </button> <div class="ui message hidden like-message"> <div class="header">You liked this post.</div> </div> </div> ``` 在这个页面,使用了 semantic-ui 的按钮和通知框组件。点赞按钮上绑定了一个 like-post 类,同时设置了一个 data-post-id 属性,该属性保存了当前帖子的 ID。当用户点击点赞按钮时,会触发一个 JavaScript 函数。 ```javascript $(function () { $('.like-post').click(function (event) { event.preventDefault(); var $button = $(this); var post_id = $button.data('post-id'); $.post('/like-post/' + post_id + '/', function (data) { var $message = $button.siblings('.like-message'); $message.find('.header').text(data.message); $message.removeClass('hidden').transition('fade'); }); }); }); ``` 在这个 JavaScript 函数,首先使用 jQuery 获取到所有的点赞按钮,并绑定了一个 click 事件。当用户点击按钮时,会阻止默认的提交事件,并获取到该按钮绑定的 data-post-id 属性,然后使用 AJAX 发送一个 POST 请求到后端的点赞视图函数。当请求返回成功时,获取到响应的 message 属性,并将该属性设置到通知框的标题。最后显示通知框并使用 fade 动画效果隐藏该通知框。 以上就是一个基本的点赞通知页面的实现方法。需要注意的是,在实际开发,还需要对用户的登录状态进行判断,以及对点赞次数进行限制等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值