
有些網站為了增加互動,會做把物品點了後東西飛到購物車的效果,這個只要善用網頁排版的概念就能夠做出來了,這邊來示範一下。
首先先用 html 排一個版,右上角是購物車,下面的商品列表會有增加到購物車的按鈕,另外會有一個空的區塊,是用來當點了加到購物車後把圖片放到裡面然後做動畫的地方。
接著點加到購物車後,要去計算空的區塊要移動的位置並替換掉裡面的圖片。
let itemList=$("#itemList").offset().left;
let cartPos=$("#cart").offset().left;
$(".btn").click(function(){
let item=$(this).closest(".item");
let img=item.find("img").attr("src");
let itemX=item.offset().left-itemList;
let itemY=item.offset().top;
$("#show")
.css({
left: itemX,
top: itemY,
width: 200,
opacity: 1
})
.find("img").attr("src", img)
});
接著計算要飛到的目標位置後,這邊我們使用 TweenMax 做中間的動畫。
TweenMax.to("#show", 0.8, {left:cartPos-itemList, top: 10, width: 20});
TweenMax.to("#show", .3, {
css:{
opacity: 0
}, delay:0.5})
這樣大致完成了,但因為動畫在播放的時候會想跑到終點,如果我們連點可能就會出問題,所以必須點了後就重置動畫。
TweenMax.killTweensOf('#show');
最後的結果在這邊: