移动端多指操作一 ios篇

简介: 笔记

说在前面

移动端常用的事件上篇文章已讲,这篇文章讲点花的,多指操作(ios篇

ios 多指操作

第一步 清除默认事件

 // 清除默认事件 否则会选取元素
 document.addEventListener("touchstart",(e)=>{
     var e = e || window.event;
         e.preventDefault();
 })

gesturestart 事件

 var con = document.getElementById("con");
 // 手指触摸屏幕 屏幕上有两个或者两个以上的手指
 con.addEventListener("gesturestart",(e)=>{
      con.innerHTML = "两个手指";
  })

gesturechange 事件

 //手指触碰元素,屏幕上有两个或两个以上的手指,位置在发生移动
 con.addEventListener('gesturechange', function(e){
      con.innerHTML = "移动";
  });

gestureend 事件

 //手指离开事件
 con.addEventListener('gestureend', function(){
      con.innerHTML = "手指离开";
 });

多指操作应用实例

封装一个cssTransform做一些花式操作


function cssTransform(element, attr, val){
//下面分为取值和赋值阶段,如果val不存在说明是取值的,如果val存在,说明是赋值阶段
//取值阶段
  if(!element.transform){
    element.transform = {};
  } 
  if(typeof val === "undefined"){ 
//取值阶段,又要分为,该值已经有了,和初始化该值阶段
    if(typeof element.transform[attr] === "undefined"){
      switch(attr){
        case "scale":
        case "scaleX":
        case "scaleY":
        case "scaleZ":
          element.transform[attr] = 100;
          break;
        default:
          element.transform[attr] = 0;  
      }
    } 
//取值完毕,返回该值
    return element.transform[attr];
  } else {
//下面为赋值阶段
    element.transform[attr] = val;
    var transformVal  = "";
//因为transform对象中可能不止一个属性,所以要对其进行遍历
    for(var s in element.transform){
      switch(s){
        case "scale":
        case "scaleX":
        case "scaleY":
        case "scaleZ":
          transformVal += " " + s + "("+(element.transform[s]/100)+")";
          break;
        case "rotate":
        case "rotateX":
        case "rotateY":
        case "rotateZ":
        case "skewX":
        case "skewY":
          transformVal += " " + s + "("+element.transform[s]+"deg)";
          break;
        default:
          transformVal += " " + s + "("+element.transform[s]+"px)";       
      }
    }
    element.style.WebkitTransform = element.style.transform = transformVal;
  }

多指操作实现旋转: 初始值+差值


var con= document.getElementById('con');
var start = 0;
oBox.addEventListener('gesturestart', function(e){
  start = cssTransform(con, 'rotate');
}, false);
oBox.addEventListener('gesturechange', function(e){
  var disR = e.rotation;
  cssTransform(con, 'rotate', start + disR);
}, false);


多指操作实现缩放: 初始值+差值


var start = 0;
// 消除缩放时的残影
cssTransform(con, 'translateZ', 0);
con.addEventListener('gesturestart', function(e){
  start = cssTransform(con, 'scale');
}, false);
con.addEventListener('gesturechange', function(e){
  var disS = e.scale;
  cssTransform(con, 'scale', start*disS);
}, false);



目录
相关文章
|
3月前
|
iOS开发
你知道IOS移动端到操作手势有哪些吗?
你知道IOS移动端到操作手势有哪些吗?
|
5月前
|
JavaScript 前端开发 PHP
用swift开发ios移动端app应用初体验
直接跟着 apple 官方的 SwiftUI 教程跑的,写惯了 javascript 奔放的代码,很多语法理解起来还是有点费劲
58 1
|
8月前
|
移动开发 自然语言处理 JavaScript
移动端H5使用window.open跳转,IOS不生效解决
移动端H5使用window.open跳转,IOS不生效解决
566 2
|
9月前
|
Android开发 iOS开发 Windows
无影产品动态|iOS & Android客户端6.0.0版本发布,提升触控灵敏度,操作体验更丝滑
无影ios & Android客户端6.0.0版本发布!移动端触控体验更舒适,用户操作更便捷,一起来看看!
678 0
无影产品动态|iOS & Android客户端6.0.0版本发布,提升触控灵敏度,操作体验更丝滑
|
Android开发 iOS开发
移动端富文本编辑器iOS、Android
移动端富文本编辑器iOS、Android
159 0
|
监控 测试技术 开发工具
移动端 iOS 年终工作总结-纯干货请自备酒水(下)
移动端 iOS 年终工作总结-纯干货请自备酒水(下)
234 0
移动端 iOS 年终工作总结-纯干货请自备酒水(下)
|
iOS开发
你知道IOS移动端到操作手势有哪些吗?
大家好,我是阿萨。随着移动端设置应用越来越多。大家在移动端设备上的操作手势有哪些呢?今天阿萨给大家梳理下IOS移动端操作的标准手势。快来看下,看完拿自己公司APP练一下手。
189 0
|
Web App开发 iOS开发
iOS开发 - 网页拉起app后并执行某些操作
iOS开发 - 网页拉起app后并执行某些操作
171 0
iOS开发 - 网页拉起app后并执行某些操作
|
JavaScript Android开发 iOS开发
兼容安卓和ios的手机端浏览器返回和物理返回的监听处理操作实战(推荐)
兼容安卓和ios的手机端浏览器返回和物理返回的监听处理操作实战(推荐)
266 0
兼容安卓和ios的手机端浏览器返回和物理返回的监听处理操作实战(推荐)
|
Web App开发 移动开发 前端开发
HTML5 移动端页面适配 iOS 系统刘海屏
HTML5 移动端页面适配 iOS 系统刘海屏
1069 0
HTML5 移动端页面适配 iOS 系统刘海屏