【vue3】拉动分割线切换左右两张图片

需求:两张图片重叠,中间有一条线作为分界线,拉动线可以分别显示左右图片

实现案例:

实现思路:

  1. 图2不动;
  2. 图1给一个div父元素,图1相对于父元素绝对定位,父元素相对组件盒子绝对定位,在分界线移动过程中,此父元素的 left 值与图1的 left 值设置成相反。

实现步骤:

  1. 获取到组件盒子宽度 imgBoxWidth;
  2. 点击分界线(黑色实线)时获取到此时分界线距浏览器左侧的距离 startX(mousedown 的时候,保存下来当前鼠标相对于浏览器视口的 x 坐标);
  3. 获取分界线距组件盒子左侧的距离 divideLineLeft;
  4. 获取分界线移动的距离 moveLeft(mousemove 的时候,得到新的 x 坐标,与原始 x 坐标相减,得到位移量);
  5. 计算比例,let L = (divideLineLeft + moveLeft) / imgBoxWidth * 100
  6. 图1父元素的 left 值为  L%,图1的 left 值为 -L%,分界线的 left 值为 L%。

示例图:

完整代码:



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部