react 图片加内容数据填充后鼠标滚轮缩放 + 拖拽

7 篇文章 0 订阅

碰到一个需求,要求是底图用图片请添加图片描述
然后接口获取的数据要填充到里面,然后要实现拖拽和缩放
其中缩放有个要求要鼠标滚轮缩放

用了一个拖拽的第三方包

import Dragger from 'react-dragger-r'
	<div style={{overflow: 'hidden'}}>
		<Dragger>
			<div className='cader_box' style={{transform: `scale(${deltaY}, ${deltaY})`, transformOrigin: '0 0'}} onWheel={(e) => handleScroll(e)}>
				内容全部走定位
			</div>
        </Dragger>
      </div>

cader_box的样式里面是放了一张图

.cader_box {
  width: 960px;
  background-image: url('/diantu.png');
  background-repeat: no-repeat;
  background-position: center 0px;
  background-size: 100%;
  height: 720px;
  color: #FFF;
  font-size: 10px;
  position: relative;
  font-weight: 500;
  }

handleScroll方法

const handleScroll = (e) => {
    let num = e.nativeEvent.deltaY	//	滚轮滚动数值分正负
    if (Math.abs(num) >= 100) {	//	防止数值太大把图片给倒转之类的bug
      let num = parseInt(Math.abs(num).toString().substr(0, 2))
    }
    if (num <= 1) {	//	缩小处理
      if (deltaY <= 0.5) {	//	防止缩小到0,就没了,什么都看不到做的处理
        return
      }
      num = Math.abs(num)
      num = num / 100
      dispatch ({	//	这个是dva的数据更新方式,用hooks直接更新deltaY这个变量也一样的
        type:'system/updateState',
        payload:{
          deltaY: deltaY - num,
        },
      })
    } else {	//	放大时候做的处理
      num = num / 100	//	这里都除了100,是为了防止缩小放大时候一下子跨度太大
      dispatch ({
        type:'system/updateState',
        payload:{
          deltaY: deltaY + num,
        },
      })
    }

由于第一次做这种需求,开始时候没有头绪找了很多资料,其实很简单

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值