移动端可拖拽悬浮窗+点击事件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!--设置viewport-->
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=0"/>
</head>
<style>
.div{
width: 100px;
height: 50px;
position:fixed;
background-color: red;
border-radius:25px;
}
</style>
<body>
<div class="div" id="div"></div>
</body>
<script>

window.onload=function(){
var flag = 0; //标记是拖曳还是点击
var oDiv = document.getElementById(‘div‘);
var disX,moveX,L,T,starX,starY,starXEnd,starYEnd;
oDiv.addEventListener(‘touchstart‘,function(e){
flag = 0;
e.preventDefault();//阻止触摸时页面的滚动,缩放
disX = e.touches[0].clientX - this.offsetLeft;
disY = e.touches[0].clientY - this.offsetTop;
//手指按下时的坐标
starX = e.touches[0].clientX;
starY = e.touches[0].clientY;
//console.log(disX);
});
oDiv.addEventListener(‘touchmove‘,function(e){
flag = 1;
L = e.touches[0].clientX - disX ;
T = e.touches[0].clientY - disY ;
//移动时 当前位置与起始位置之间的差值
starXEnd = e.touches[0].clientX - starX;
starYEnd = e.touches[0].clientY - starY;
//console.log(L);
if(L<0){//限制拖拽的X范围,不能拖出屏幕
L = 0;
}else if(L > document.documentElement.clientWidth - this.offsetWidth){
L=document.documentElement.clientWidth - this.offsetWidth;
}
if(T<0){//限制拖拽的Y范围,不能拖出屏幕
T=0;
}else if(T>document.documentElement.clientHeight - this.offsetHeight){
T = document.documentElement.clientHeight - this.offsetHeight;
}
moveX = L + ‘px‘;
moveY = T + ‘px‘;
//console.log(moveX);
this.style.left = moveX;
this.style.top = moveY;
});
window.addEventListener(‘touchend‘,function(e){
//alert(parseInt(moveX))
//判断滑动方向
if(flag === 0) {//点击
window.location.href=‘http://www.baidu.com‘;
}
});

}
</script>
</html>

时间: 2024-12-15 05:42:13

移动端可拖拽悬浮窗+点击事件的相关文章

可拖拽悬浮窗、对话框悬浮窗的简单实现

   本文讲解的是Android的悬浮窗机制,这个悬浮窗在很多第三方ROM会被屏蔽,像是小米,锤子上都无法显示.小米倒是可以通过开关开启,但在锤子上根本连开的机会都没有,真是无奈啊…… 虽然悬浮窗在实际中比较难以推广,但学习方面还是没问题的啦. 一.常规悬浮窗 思路: 1.建立一个服务,并且在里面生成一个WindowManager对象,通过它来加载一个视图作为悬浮窗. 2.设置WindowManager的参数Params 3.设置一个容器来找到悬浮窗的父控件,并绑定到windowManager中

移动端关于拖拽事件

探究一下移动端的拖拽!因为html5出来了一个drag么!然后就兴致勃勃的去试了试,结果发现drag在pc端使用好使,但是在移动端不好用,然后在网上查了一下,有关于各个浏览器对drag的支持状况,在此附上链接一枚(想具体了解可以看看): http://caniuse.com/#search=Drag 没办法就就开始想别的办法,结果发现好多人用touch事件,所以便试了试,效果还算不错,自己写的就不上代码了,就把参考的一片文章附上供大家参考参考: -------------------------

移动端可拖拽效果

<!doctype html>移动端可拖拽效果 拖拽效果测试,PC浏览器访问,需打开控制台进入移动模式. 拖我 原文地址:https://www.cnblogs.com/webfby/p/11105370.html

Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮

前言 之前写过屏蔽系统导航栏功能的文章,具体可看Android6.0 源码修改之屏蔽导航栏虚拟按键(Home和RecentAPP)/动态显示和隐藏NavigationBar 在某些特殊定制的版本中要求完全去掉导航栏,那么当用户点进一些系统自带的应用界面如设置.联系人等,就没法退出了,虽然可以在actionBar中添加back按钮,但总不能每一个app都去添加吧.所以灵机一动我们就给系统添加一个全屏可拖拽的浮窗按钮,点击的时候处理返回键的逻辑.它大概长这样(审美可能丑了点,你们可以自由发挥) 图1

移动端的拖拽这个demo实现的功能

SQL数据库适合那些需求确定和对数据完整性要去严格的项目.NoSQL数据库适用于那些对速度和可扩展性比较看重的那些不相关的,不确定和不断发展的需求. 总所周知,网页的加载速度跟图片是有很大的关系的,因为在不影响图片质量的情况下,减小图片的大小显得尤为重要. 这个demo实现的功能是:可以拖拽的元素(在这里是图片)位于列表中,这些元素可以被拖到指定区域,到达指定区域(控制台)后,元素被插入控制台后,原来的拖动元素返回原位置,新的元素依然可以在控制台中拖动,也能拖出控制台. 由于网页支付基于JS-S

拖拽碰撞最后一个问题了,就是拖拽之后,点击会变回去,不知道为何

<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>可拖拽的照片墙</title> <style type="text/css"> html body { margin:0; } #wrap { list-style:none; padding:0; margin:30p

移动端 slide拖拽

<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,height=device-height,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <style type=&q

QQ面板拖拽(慕课网DOM事件探秘)(下)

2.鼠标事件坐标获取 function fnDown(event) { var event = event || window.event; var oDrag = document.getElementById("loginPanel"); //光标按下时光标和面板之间的距离: var disX = event.clientX - oDrag.offsetLeft; var disY = event.clientY - oDrag.offsetTop; //移动 document.o

jqueryui 拖拽结束 触发了 单击事件 解决办法

答案来自 链接地址 var dragging = false; $("#dragdiv").draggable({ axis: "x", revert: true, start: function(event, ui) { dragging = true; }, stop: function(event, ui) { // Update Code here } }); $("#dragdiv").click(function(mouseEvent