这是简单写的一个demo。原理就是:在图片上面设置一个单独的元素,用来表示对号。通过点击来控制它的显示隐藏。
首先写一个css类,例如.ok
,负责钩号的位置
然后再给所有的am-gallery-item
类添加点击事件
当点击该类的时候给该元素添加.ok
类
如果你想知道哪些元素被选中,只需要获取所有拥有.ok
类的元素即可
照片上方覆盖一层选中层,效果自定义,默认隐藏;
照片选中与否,绑定到一个布尔值数组中;
照片点击后,数组对应的对象取反操作并绑定到覆盖层上;
一点粗浅的思路,不知道能否帮到答主,也许有现成组件,不需要重复造轮子。
你要的打勾操作,可以仅用html+css实现。
结构可以用:<label><inputcheckbox><div>
checkbox隐藏,用来标记是否选中;
后面的div做打勾图,用:checked和兄弟选择器'+'判断是否显示;
label修饰checkbox,图片可以放到label的背景中,好处有
类似lazyload效果,像分页器后面的图用到才请求;
background-size:contain可以使图片完整显示;
<divstyle="background-image:...;width:..,height:.."><divclass="mask"></div></div>
做一个两层的结构,最外层的div背景图片设置为不同的背景图,里层放一个div,高度宽度100%,用来做遮罩效果,默认隐藏。当点击外层div时,通过js设置里层的div显示,就出现了类似的效果。