可拖动DIV层

定义好DIV后,只要把DIV的ID传进去就能实现拖动效果:

var oBox=document.getElementById("divID"); //拖动层
var disX = disY = 0;
var bDrag = false;
//激活拖动
oBox.onmousedown = function (event){
	var event = event || window.event;
	bDrag = true;
	disX = event.clientX - oBox.offsetLeft;
	disY = event.clientY - oBox.offsetTop;
	this.setCapture && this.setCapture();
	return false;
};
//拖动开始
document.onmousemove = function (event){
	if (!bDrag) return;
	var event = event || window.event;
	var iL = event.clientX - disX;
	var iT = event.clientY - disY;
	var minL = 0;
	var minT = 0;
	var maxL = window.screen.width;
	var maxT = window.screen.height;
	iL = iL < minL ? minL : iL;
	iL = iL > maxL ? maxL : iL;
	iT = iT < minT ? minT : iT;
	iT = iT > maxT ? maxT : iT;
	oBox.style.marginTop = oBox.style.marginLeft = 0;
	oBox.style.left = iL + "px";
	oBox.style.top = iT + "px";
	return false;
};
//结束拖动
document.onmouseup =oBox.onlosecapture = function (){
	bDrag = false;
	oBox.releaseCapture && oBox.releaseCapture();
};




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Uniapp中可以使用uni-popup组件实现弹出的功能,但是默认情况下是不能拖拽的。不过你可以借助第三方插件来实现可拖拽的弹出。 一个比较常用的插件是vue-draggable-resizable,在Uniapp中使用时需要先安装该插件: ``` npm install vue-draggable-resizable ``` 然后在需要使用可拖拽弹出的页面引入该组件: ```vue <template> <div> <draggable-resizable :isDraggable="true" :isResizable="false"> <div class="popup-content"> <!-- 弹出内容 --> </div> </draggable-resizable> </div> </template> <script> import DraggableResizable from "vue-draggable-resizable"; export default { components: { DraggableResizable, }, }; </script> <style> .popup-content { padding: 20px; background-color: #fff; border-radius: 10px; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5); } </style> ``` 这里设置`isDraggable`为`true`表示可拖拽,`isResizable`为`false`表示不可调整大小。 如果需要在拖拽时更新弹出的位置,可以使用`@drag`事件: ```vue <template> <div> <draggable-resizable :isDraggable="true" :isResizable="false" @drag="onDrag"> <div class="popup-content"> <!-- 弹出内容 --> </div> </draggable-resizable> </div> </template> <script> import DraggableResizable from "vue-draggable-resizable"; export default { components: { DraggableResizable, }, methods: { onDrag(e) { console.log(e.x, e.y); // 更新弹出位置的代码 }, }, }; </script> ``` 在`onDrag`方法中可以获取到拖拽时的坐标,然后再更新弹出的位置即可。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缘来一场梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值