最近在撸一个电商网站,有一个需求是要像淘宝商品详情页那样,鼠标放在主图上,显示图片放大镜效果,找了一下貌似没有什么合适的vue插件,因而本身撸了一个,分享一下。小白第一次分享,各位大神莫见笑。html
A picture magnifier component for Vue.js 2.x
基于vue2.x的电商图片放大镜插件vue
# 安装 install
npm install vue-piczoom --save
复制代码
# 使用 use
--script
import PicZoom from 'vue-piczoom'
export default {
name: 'App',
components: {
PicZoom
}
}
--html
<pic-zoom url="static/imac2.jpg" :scale="3"></pic-zoom>
复制代码
props | describe | default |
---|---|---|
url | 图片地址 | string required |
big-url | 大图地址 | string null |
scale | 图片放大倍数 | number 2.5 |
scroll | 放大时页面是否可滚动 | boolean fasle |
组件默认是100%的高宽,因此建议将组件包含在一个有固定高宽的容器内。如:git
<div class="pic-box"> <!--pic-box:width:500px;height:500px-->
<pic-zoom url="static/imac2.jpg" :scale="3"></pic-zoom>
</div>
复制代码
在线示例github
Github算法
1.0.4版本:(2018-01-22)
1.更换算法,解决父级元素为position:relative时定位错误;
2.优化边缘检测,解决放大选区移动至边缘时,放大移动失效;
3.优化移动算法,移动选区更流畅;npm