Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何用touchend for iOS Safari替换mouseout事件?_Javascript_Ios_Touch_Mobile Safari_Dom Events - Fatal编程技术网

Javascript 如何用touchend for iOS Safari替换mouseout事件?

Javascript 如何用touchend for iOS Safari替换mouseout事件?,javascript,ios,touch,mobile-safari,dom-events,Javascript,Ios,Touch,Mobile Safari,Dom Events,从文档中可以看出,我应该能够向元素添加一个事件侦听器,以便触发touchend事件(我假设这是当用户第一次触摸元素时抬起手指时发生的事件) 但是,我没有通过此代码获得所需的行为: /* Easy Scroll v1.0 written by Alen Grakalic, provided by Css Globe (cssglobe.com) please visit http://cssglobe.com/post/1495/easy-scroll-accessib

从文档中可以看出,我应该能够向元素添加一个事件侦听器,以便触发touchend事件(我假设这是当用户第一次触摸元素时抬起手指时发生的事件)

但是,我没有通过此代码获得所需的行为:

/* 

    Easy Scroll v1.0
    written by Alen Grakalic, provided by Css Globe (cssglobe.com)
    please visit http://cssglobe.com/post/1495/easy-scroll-accessible-content-scroller

*/

this.easyscroll = function(){

    // id of the container element 
    var id = "myContent";

    // navigation buttons text
    //dave var nav = ["Scroll Up", "Scroll Down", "Reset"];
    var nav = ["Scroll Up", "Scroll Down"];

    //  id for each navigation button (OPTIONAL)
    //dave var navId = ["btnUp", "btnDown", "btnReset"];
     var navId = ["btnUp", "btnDown"];

    // movement speed
    var speed = 10;

    // desired height of the container element (in pixels)
    var height = 300;

    //
    // END CONFIG
    // do not edit below this line (unless you want to of course :) )
    //

    var obj = document.getElementById(id);

    obj.up = false;
    obj.down = false;
    obj.fast = false;

    var container = document.createElement("div");
    var parent = obj.parentNode;
    container.id="easyscroll";
    parent.insertBefore(container,obj);
    parent.removeChild(obj);    

    container.style.position = "relative";
    container.style.height = height + "px";
    container.style.overflow = "hidden";
    obj.style.position = "absolute";
    obj.style.top = "0";
    obj.style.left = "0";
    container.appendChild(obj);

    var btns = new Array();
    var ul = document.createElement("ul");
    ul.id="easyscrollnav";
    for (var i=0;i<nav.length;i++){
        var li = document.createElement("li");
        li.innerHTML = nav[i];
        li.id = navId[i];
        btns.push(li);
        ul.appendChild(li);
    }

    parent.insertBefore(ul,container);

    btns[0].onmouseover = function(){
        obj.up = true;
        this.className = "over";
    };
    btns[0].onmouseout = function(){
        obj.up = false;
        this.className = "";
    };      
    btns[1].onmouseover = function(){
        obj.down = true;
        this.className = "over";        
    };
    btns[1].onmouseout = function(){
        obj.down = false;
        this.className = "";
    };      
    btns[0].onmousedown = btns[1].onmousedown = function(){
        obj.fast = true;
    };  
    btns[0].onmouseup = btns[1].onmouseup = function(){
        obj.fast = false;
    };


    btns[0].addEventListener("touchend", function(){
        obj.up = false;
    }, false);
    btns[1].addEventListener("touchend", function(){
        obj.down = false;
    }, false);

    //btns[2].onmouseover = function(){         
    //  this.className = "over";
//  };  
    //btns[2].onmouseout = function(){      
        //this.className = "";
    //};        
    //btns[2].onclick = function(){         
    //  obj.style.top = "0px";
//  };      

    this.start = function(){                
        var newTop;
        var objHeight = obj.offsetHeight;
        var top = obj.offsetTop;
        var fast = (obj.fast) ? 2 : 1;
        if(obj.down){        
            newTop = ((objHeight+top) > height) ? top-(speed*fast) : top;   
            obj.style.top = newTop + "px";
        };  
        if(obj.up){      
            newTop = (top < 0) ? top+(speed*fast) : top;
            obj.style.top = newTop + "px";
        };
    };  
    obj.interval = setInterval("start()",50);       

};


//
// script initiates on page load. 
//

this.addEvent = function(obj,type,fn){
    if(obj.attachEvent){
        obj['e'+type+fn] = fn;
        obj[type+fn] = function(){obj['e'+type+fn](window.event );}
        obj.attachEvent('on'+type, obj[type+fn]);
    } else {
        obj.addEventListener(type,fn,false);
    };
};
addEvent(window,"load",easyscroll);
/*
轻松滚动1.0版
由Alen Grakalic编写,由Css Globe(cssglobe.com)提供
请访问http://cssglobe.com/post/1495/easy-scroll-accessible-content-scroller
*/
this.easyscroll=函数(){
//容器元素的id
var id=“myContent”;
//导航按钮文本
//dave var nav=[“向上滚动”、“向下滚动”、“重置”];
var nav=[“向上滚动”、“向下滚动”];
//每个导航按钮的id(可选)
//dave var navId=[“btnUp”、“btnDown”、“btnReset”];
变量navId=[“btnUp”,“btnDown”];
//移动速度
无功转速=10;
//容器元素的所需高度(以像素为单位)
var高度=300;
//
//结束配置
//请勿在此行下方进行编辑(当然,除非您希望:)
//
var obj=document.getElementById(id);
obj.up=false;
obj.down=false;
obj.fast=false;
var container=document.createElement(“div”);
var parent=obj.parentNode;
container.id=“easyscroll”;
parent.insertBefore(container,obj);
父母。远程儿童(obj);
container.style.position=“relative”;
container.style.height=高度+px;
container.style.overflow=“hidden”;
obj.style.position=“绝对”;
obj.style.top=“0”;
obj.style.left=“0”;
子容器(obj);
var btns=新数组();
var ul=document.createElement(“ul”);
ul.id=“easyscrollnav”;
对于(变量i=0;i高度)?顶部-(速度*快速):顶部;
obj.style.top=newTop+“px”;
};  
如果(对象向上){
newTop=(top<0)?top+(速度*快):top;
obj.style.top=newTop+“px”;
};
};  
obj.interval=setInterval(“start()”,50);
};
//
//脚本在页面加载时启动。
//
this.addEvent=功能(对象,类型,fn){
如果(对象附件){
obj['e'+类型+fn]=fn;
obj[type+fn]=function(){obj['e'+type+fn](window.event);}
对象附件('on'+类型,对象[type+fn]);
}否则{
obj.addEventListener(类型,fn,false);
};
};
addEvent(窗口,“加载”,easyscroll);
在iOS上的Safari中,我必须再次单击
btn[0]
btn[1]
,才能停止滚动。所需的行为是,用户在第一次触摸开始滚动后,只要取下手指,滚动就会停止。easyscroll库是为桌面浏览器而设计的,我也在尝试将其应用于iOS


如果不进行修改,就不可能停止触摸设备上的滚动。

我无法访问您提供的链接,您是否阅读了本页,您不能在触摸屏设备上使用鼠标输出,我意识到,只有mousedown和mouseupYes,这就是为什么我试图用设备的触摸事件替换它们,同时维护桌面浏览器功能