初步怀疑你的删除事件绑定有问题:新加入的DOM元素未绑定到事件。这种情况应该使用事件委派来做,你用 jQuery 吗?假设你的购物车列表的 HTML 结构如下:
<ul id="cartList"><li>
购物车商品1
<button>删除</button>
</li>
<li>
购物车商品2
<button>删除</button>
</li>
……
</ul>
则删除购物车商品的代码为(用了 jQuery):
$('#cartList').on('click', 'button', function() { // 委派 button 的点击事件$(this).parent().remove() // 移除购物车里当前商品
})
利用js获取鼠标指针位置,根据位置计算偏转角度,通过设定css中transform的perspective/rotateX/rotateY使banner呈现3d偏转的效果。
首先,写一个div
并给他一些基本的样式
接下来引入vue
并生成一个实例
在data中定义x轴和y轴的偏转角度
在computed计算属性中定义生成具体css语句的函数
在methods中书写鼠标在banner中的移动事件对应的函数
定义鼠标离开banner事件对应的函数(也就是将data中角度值归零)
接下来,为banner绑定相应的事件和样式
此时,发现效果已经基本实现,为了让鼠标离开时banner恢复原状的过程更加平缓,要给banner加入transition
大功告成了, 预览 。
不过我发现,锤子官方商城的效果中,banner内的文字和背景偏转角度有一定差异,感觉像不在一个平面上,我猜测应该是利用了不同的perspective,有机会我再测试一下。