带动画特效的点赞+1

这是html的代码      特效的js见附录   需要jQuery的支持

<div class="mui-media-body ">
<span οnclick="to_reply_list('${obj.id}')" style="float: left; "><img src="${contextPath}/resources/dataTreasure/images/hongzan.png " style="zoom: 35% "/>  </span>
<span οnclick="to_reply_list('${obj.id}')" style="float: left; margin-top: 3%;font-size: 20px; color: red; "><span id="zan_number${obj.id}">${obj.number}</span>人觉得很赞</span>  




<span οnclick="to_comment('${obj.id}')" style="float: right; padding-left: 10%; padding-top: 1%; "><img src="${contextPath}/resources/dataTreasure/images/pinglun.png " style="zoom: 35% " /></span>
<span οnclick="zan('${obj.id}')" style="float:right; "  id="btn${obj.id}"><img  src="${contextPath}/resources/dataTreasure/images/zan.png " style="zoom: 35% "/></span>
<span>btn${obj.id}</span>
</div>



复制下边的js写到单独的js文件里边    博客无法上传附件

(function($) {
$.extend({
tipsBox: function(options) {
options = $.extend({
obj: null, //jq对象,要在那个html标签上显示
str: "+1", //字符串,要显示的内容;也可以传一段html,如: "<b style='font-family:Microsoft YaHei;'>+1</b>"
startSize: "12px", //动画开始的文字大小
endSize: "30px", //动画结束的文字大小
interval: 600, //动画时间间隔
color: "red", //文字颜色
callback: function() {} //回调函数
}, options);
$("body").append("<span class='num'>" + options.str + "</span>");
var box = $(".num");
var left = options.obj.offset().left + options.obj.width() / 2;
var top = options.obj.offset().top - options.obj.height();
box.css({
"position": "absolute",
"left": left + "px",
"top": top + "px",
"z-index": 9999,
"font-size": options.startSize,
"line-height": options.endSize,
"color": options.color
});
box.animate({
"font-size": options.endSize,
"opacity": "0",
"top": top - parseInt(options.endSize) + "px"
}, options.interval, function() {
box.remove();
options.callback();
});
}
});
})(jQuery);


/*$(function() {
$("#btn").click(function() {



$.tipsBox({
obj: $(this),
str: "赞+1",
callback: function() {
//alert(5);
}
});
});
});
*/


//更具逻辑更改下边的方法  其他的不用动
function zan(v_id){
alert(v_id)
//异步查询这个用户有没有  点过赞
var url="/weixin/handle_zambia"
$.ajax({
url:url,
type:'post',
data:{
v_id:v_id
},success:function(data){
alert('来了')
var btn = '#btn'+v_id;
alert(btn)

if(data==0){
$.tipsBox({
obj: $(btn),
str: "赞+1",
callback: function() {

}
});

$.ajax({
url:'/weixin/zan_number',
type:'post',
data:{
v_id:v_id
},success:function(data){
var zan_number = '#zan_number'+v_id;
alert(zan_number)
alert(data+"范德萨范德萨发生的的")
$(zan_number).html(data);
}
});

}

if(data==1){
alert('你已经赞过这篇文章')
}
}
});





}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android连续点赞特效可以通过自定义View来实现。下面是一个简单的示例代码: ```java public class LikeView extends View { private static final int DEFAULT_TEXT_SIZE = 30; private static final int DEFAULT_TEXT_COLOR = Color.RED; private static final int DEFAULT_ANIMATION_DURATION = 1000; private String mText; private int mTextSize; private int mTextColor; private int mAnimationDuration; private Paint mPaint; private ValueAnimator mAnimator; public LikeView(Context context) { this(context, null); } public LikeView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); init(attrs); } private void init(AttributeSet attrs) { // 从xml属性中获取自定义属性值 TypedArray typedArray = getContext().obtainStyledAttributes(attrs, R.styleable.LikeView); mText = typedArray.getString(R.styleable.LikeView_likeText); mTextSize = typedArray.getDimensionPixelSize(R.styleable.LikeView_likeTextSize, DEFAULT_TEXT_SIZE); mTextColor = typedArray.getColor(R.styleable.LikeView_likeTextColor, DEFAULT_TEXT_COLOR); mAnimationDuration = typedArray.getInt(R.styleable.LikeView_likeAnimationDuration, DEFAULT_ANIMATION_DURATION); typedArray.recycle(); // 初始化画笔 mPaint = new Paint(); mPaint.setTextSize(mTextSize); mPaint.setColor(mTextColor); // 初始化动画 mAnimator = ValueAnimator.ofFloat(0, 1); mAnimator.setDuration(mAnimationDuration); mAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { invalidate(); } }); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (mText != null) { // 根据动画进度绘制文本 float progress = (float) mAnimator.getAnimatedValue(); int alpha = (int) (255 * (1 - progress)); mPaint.setAlpha(alpha); canvas.drawText(mText, 0, mTextSize, mPaint); } } public void startAnimation() { if (!mAnimator.isRunning()) { mAnimator.start(); } } public void setText(String text) { mText = text; invalidate(); } } ``` 使用方法: 1. 在xml布局文件中添LikeView: ```xml <com.example.LikeView android:id="@+id/likeView" android:layout_width="wrap_content" android:layout_height="wrap_content" app:likeText="Like" app:likeTextSize="30sp" app:likeTextColor="#FF0000" app:likeAnimationDuration="1000" /> ``` 2. 在代码中获取LikeView实例,并调用startAnimation方法开始动画: ```java LikeView likeView = findViewById(R.id.likeView); likeView.startAnimation(); ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值