使用Hammer做一个类似于苹果手机多的AssistiveTouch一样的东西,可以随意拖动
2017-07-13 22:59
597 查看
首先先到GitHub上面下载该插件
导入对应的js文件。注:hammer是基于jQuery的,必须引入jQuery/zepto
<script src="jquery.min.js"></script>
<script src="hammer.js"></script>
html文件结构如下
<div id="circleDiv">拖动</div>
对应的css文件
#circleDiv{
width: 3.6667rem;
height:3.6667rem;
line-height: 3.6667rem;
text-align: center;
background-color: #cc99cc;
border-radius: 50%;
position: fixed;
bottom: 3.6667rem;
left: 0;
}
想要更漂亮可以自己设计
相应的js文件如下
function panAction(){
var circleDiv = $("#circleDiv");
var circleLeft = circleDiv.css("left").replace("px",'')-0;
var circleBottom = circleDiv.css("bottom").replace("px",'')-0;
var circleSize = circleDiv.css("width").replace("px",'')-0;
var screenW = screen.availWidth;
var screenH = screen.availHeight;
var circle = document.getElementById("circleDiv");
var mc1 = new Hammer.Manager(circle);
var pan = new Hammer.Pan();//平移
mc1.add(pan);
mc1.on('panstart',function(e){
circleLeft = circleDiv.css("left").replace("px",'')-0;
circleBottom = circleDiv.css("bottom").replace("px",'')-0;
});
mc1.on('pan',function(e){
circleDiv.css({"left":circleLeft+ e.deltaX,"bottom":circleBottom- e.deltaY});
});
mc1.on('panend',function(e){
var circleY = circleDiv.offset().top
var circleX = circleDiv.offset().left;
circleX > (screenW-circleSize)/2 ? circleDiv.css('left',screenW-circleSize):circleDiv.css('left',0);
if (circleY >= screenH-circleSize){
circleDiv.css('bottom',0),
}
if(circleY < 0){
circleDiv.css('bottom',screenH-circleSize);
}
});
}
这样一个粉圆在你的屏幕就可以随意拖动了。以上做了边界处理,若不需要可自行修改
导入对应的js文件。注:hammer是基于jQuery的,必须引入jQuery/zepto
<script src="jquery.min.js"></script>
<script src="hammer.js"></script>
html文件结构如下
<div id="circleDiv">拖动</div>
对应的css文件
#circleDiv{
width: 3.6667rem;
height:3.6667rem;
line-height: 3.6667rem;
text-align: center;
background-color: #cc99cc;
border-radius: 50%;
position: fixed;
bottom: 3.6667rem;
left: 0;
}
想要更漂亮可以自己设计
相应的js文件如下
function panAction(){
var circleDiv = $("#circleDiv");
var circleLeft = circleDiv.css("left").replace("px",'')-0;
var circleBottom = circleDiv.css("bottom").replace("px",'')-0;
var circleSize = circleDiv.css("width").replace("px",'')-0;
var screenW = screen.availWidth;
var screenH = screen.availHeight;
var circle = document.getElementById("circleDiv");
var mc1 = new Hammer.Manager(circle);
var pan = new Hammer.Pan();//平移
mc1.add(pan);
mc1.on('panstart',function(e){
circleLeft = circleDiv.css("left").replace("px",'')-0;
circleBottom = circleDiv.css("bottom").replace("px",'')-0;
});
mc1.on('pan',function(e){
circleDiv.css({"left":circleLeft+ e.deltaX,"bottom":circleBottom- e.deltaY});
});
mc1.on('panend',function(e){
var circleY = circleDiv.offset().top
var circleX = circleDiv.offset().left;
circleX > (screenW-circleSize)/2 ? circleDiv.css('left',screenW-circleSize):circleDiv.css('left',0);
if (circleY >= screenH-circleSize){
circleDiv.css('bottom',0),
}
if(circleY < 0){
circleDiv.css('bottom',screenH-circleSize);
}
});
}
这样一个粉圆在你的屏幕就可以随意拖动了。以上做了边界处理,若不需要可自行修改
相关文章推荐
- 模仿苹果手机屏幕的虚拟键,可以在手机上随意拖动
- hammer使用: 代码:捏合、捏开、图片放大 的一个手机图片“放大缩小可拖动”的小效果
- 完美解决苹果iphone手机使用时间和待机时间一样或差不多的问题[图]
- 使用input type=file标签进行文件上传时,在安卓手机中的微信浏览器中不能调起相机,但是在苹果手机中的微信浏览器中可以调用相机。解决办法很简单, <input type="file" nam
- 编写一个通讯录,功能与以前的诺基亚手机一样,可以通过键盘进行箭头的移动,回车进入选项,用“W”键代表手机手机左键,“backspace”键代表返回上一级。能够实现基本的人性化的增删改查及文件的导入导出
- 数据库SQL中的分钟表示应该使用MI(非常重要的一个问题,以前一直认为和java中一样,用mm就可以表示);校对规则(查询时区分大小写)
- 使用iframe实现将四个页面合成一个页面,并可以随意切换
- 水晶报表使用CDO可以在内存中建立一个临时数据库,类似于VB的那个DataSet
- 使用Gradle生成一个App的不同版本,且可以同时安装在一个手机上
- 一个可以使用checkbox,radiobutton的Listview的源码
- 这几天我写了一个类库,可以提供office编程时使用Word, Excel,PowerPoint等的保存后事件DocumentAfterSave
- [转]一个号码可以让你取消手机的任何服务项目
- 昨天发现System.Diagnostics.Process 一样的可以打开一个网页的,直接的输入网页的地址就好了
- 怎样让WinForms下DataGrid可以像ASP.NET下的DataGrid一样使用自定义的模板列
- PsTools 的使用方法 psexec是一个远程执行工具,你可以像使用telnet一样使用它。
- 谈谈如何象VB IDE的Immediate一样不使用工程,可以单独执行代码片断
- 一个统计当前在线用户的解决方案,可以在聊天室、论坛、网站中使用
- MyPage从Page派生,MyPage总有一个Label控件。以便以后从MyPage派生的页都可以直接使用Label?给个代码例子看看?
- facade 提供一个接口,通过这个接口,可以使一个子系统更容易使用。
- 使用API实现的一个增加系统桌面,并且可以任意切换的小程序.