- 65
- 0
1.判断事件在距离顶端100px时改变背景色为blue
2.在chrome移动端模式中mousedown/up/move失效
<template>
<div id="box">
<p><strong>拖动状态:</strong><span></span></p>
<p><strong>距离顶端:</strong><span></span></p>
</div>
</template>
<script>
export default {
mounted(){
window.onload = function() {
var oBox = document.getElementById("box");
var aSpan = oBox.getElementsByTagName("span");
var disY = 0;
var bDrag = false;
var aPos = [{
y: oBox.offsetTop
}]
//鼠标按下, 激活拖拽
oBox.onmousedown = function(event) {
var event = event || window.event;
bDrag = true;
disY = event.clientY - oBox.offsetTop;
this.setCapture && this.setCapture();
return false
};
//拖拽开始
document.onmousemove = function(event) {
if(!bDrag) return;
var event = event || window.event;
var iT = event.clientY - disY;
var maxT = document.documentElement.clientHeight - oBox.offsetHeight;
iT = iT < 0 ? 0 : iT;
iT = iT > maxT ? maxT : iT;
oBox.style.marginTop = oBox.style.marginLeft = 0;
oBox.style.top = iT + "px";
aPos.push({
y: iT
})
status();
return false
};
//鼠标释放, 结束拖拽
document.onmouseup = window.onblur = oBox.onlosecapture = function() {
bDrag = false;
oBox.releaseCapture && oBox.releaseCapture();
status()
};
//监听状态函数
function status() {
aSpan[0].innerHTML = bDrag;
aSpan[1].innerHTML = oBox.offsetTop;
}
//初始调用
status()}
}
}
</script>
<style>
html,body{
overflow: hidden;
}
body,div,p{
margin: 0;
padding: 0;
}
body {
font: 12px/2 Arial;
}
p {
padding: 0 10px;
margin-top: 10px;
}
span {
padding-left: 5px;
}
#box {
position: absolute;
width: 150px;
height: 150px;
border: 2px solid #ccc;
top: 0%;
left: 0%;
}
</style> - 共 0 条
- 全部回答
-
最爱一颗咸蛋。 普通会员 1楼
移动端拉拽事件是移动端常见的一种操作,通常是通过JavaScript来实现的。
以下是一个简单的例子:
HTML部分:
```html
拖拽目标拖拽容器```
JavaScript部分:
```javascript var dragTarget = document.getElementById('drag-target'); var drag Constrainer = document.getElementById('drag-constrainer');
dragTarget.addEventListener('dragstart', function(e) { drag Constrainer.style.width = '100px'; drag Constrainer.style.height = '100px'; });
dragTarget.addEventListener('drag', function(e) { e.preventDefault(); drag Constrainer.style.width = e.target.offsetWidth; drag Constrainer.style.height = e.target.offsetHeight; });
dragTarget.addEventListener('dragend', function(e) { drag Constrainer.style.width = '0px'; drag Constrainer.style.height = '0px'; }); ```
在这个例子中,我们首先获取了拖拽目标和拖拽容器的元素,然后为它们添加了
dragstart,drag和dragend事件监听器。当用户开始拖拽目标时,我们阻止了默认的移动行为,然后设置了拖拽容器的宽度和高度。当用户停止拖拽时,我们恢复了默认的移动行为,然后设置了拖拽容器的宽度和高度。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
