35

विंडोज फोन पर, आईई उपयोगकर्ता किनारे से आ रहे हैं, तो स्क्रीन पर स्वाइप करके पीछे और आगे जा सकते हैं। यह ओएस स्तर की कार्यक्षमता मेरे वेबपृष्ठ के यूएक्स में बाधा डाल रही है।स्वाइप (पीछे और आगे) पर वेब पेज नेविगेशन को अक्षम करें

क्या कोई जेएस या सीएसएस है जो इसे अक्षम कर सकता है? कुछ हैक भी करेंगे।

WindowsPhone की वेबसाइट से स्नैपशॉट: http://www.windowsphone.com/en-in/how-to/wp8/basics/gestures-swipe-pan-and-stretch

कृपया ध्यान दें कि मैं अभी भी touchaction क्षैतिज स्क्रॉल के लिए सक्षम की जरूरत है: enter image description here

यहाँ संदर्भ पृष्ठ का लिंक है।

+1

क्या आपने '-ms-scroll-chaining के साथ झुकाव करने की कोशिश की है: none;' CSS param? – SzybkiSasza

+1

क्या आप यह देख रहे हैं? http://stackoverflow.com/a/13709150/1540570 –

+0

क्या यह सही है, कि कोई सही उत्तर नहीं है? – drunkcamel

उत्तर

0

स्वाइप ईवेंट की डिफ़ॉल्ट कार्रवाई को रोकने के बारे में कैसे। कहीं न कहीं अपने document.ready में जोड़ने (ध्यान दें मैं इस उदाहरण में document.ready को शामिल किया है, केवल समारोह जोड़े जाने की जरूरत है):

$(document).ready(function(){ $(window).on('touchmove',function(e){e.preventDefault();}); });

इस मामले में मेरा मानना ​​है कि घटना 'touchmove कहा जाता है 'आपको टचस्टार्ट/टचचेन्ड के डिफ़ॉल्ट व्यवहार को अनदेखा करने के लिए इसे विस्तारित करने की आवश्यकता हो सकती है लेकिन मुझे 100% निश्चित नहीं है।

+2

हालांकि, स्क्रॉलिंग को भी अक्षम करता है। –

+1

आप अंतिम स्पर्श स्थिति को स्टोर कर सकते हैं और यह निर्धारित कर सकते हैं कि ऑफ़सेट अधिक लंबवत या अधिक क्षैतिज है, कहें कि आपके पास बिंदु (1,1) था; यदि अगला स्पर्श चाल (3,2) था तो आप जान लेंगे कि उपयोगकर्ता ऊर्ध्वाधर दिशा में क्षैतिज दिशा में अधिक स्थानांतरित हो गया है, इस मामले में आप 'preventDefault()' को कॉल करेंगे, और अन्यथा इसे अनुमति दें। यहां एक समान [पोस्ट] है (http://stackoverflow.com/questions/13278087/determine-vertical-direction-of-a-touchmove) – clovola

0

यह उन मैक उपयोगकर्ताओं के लिए भी एक समस्या है जिन्होंने पीछे की ओर नेविगेट करने के लिए स्वाइप-बाएं कॉन्फ़िगर किया है। आप इस सेटिंग को अक्षम नहीं कर सकते हैं, लेकिन आप उपयोगकर्ता को यह पुष्टि करने के लिए संकेत दे सकते हैं कि वे https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload पर नेविगेट करना चाहते हैं।

2

कॉपी और इस जावास्क्रिप्ट पेस्ट:, कॉपी और पेस्ट

var xPos = null; 
var yPos = null; 
window.addEventListener("touchmove", function (event) { 
    var touch = event.originalEvent.touches[ 0 ]; 
    oldX = xPos; 
    oldY = yPos; 
    xPos = touch.pageX; 
    yPos = touch.pageY; 
    if (oldX == null && oldY == null) { 
     return false; 
    } 
    else { 
     if (Math.abs(oldX-xPos) > Math.abs(oldY-yPos)) { 
      event.preventDefault(); 
      return false; 
     } 
    } 
}); 

यदि आप चाहते हैं यह न्यूनतम किया गया इस:

var xPos=null;var yPos=null;window.addEventListener("touchmove",function(event){var touch=event.originalEvent.touches[0];oldX=xPos;oldY=yPos;xPos=touch.pageX;yPos=touch.pageY;if(oldX==null && oldY==null){return false;}else{if(Math.abs(oldX-xPos)>Math.abs(oldY-yPos)){event.preventDefault();return false;}}});

+0

स्क्रॉल को भी अक्षम करता है –

+0

यह उपाय यदि आप ऊर्ध्वाधर दिशा से अधिक क्षैतिज दिशा में स्वाइप करते हैं दिशा, इसलिए जब तक आप क्रुक्ड स्क्रॉल नहीं करते हैं तब तक इसे स्क्रॉल अक्षम नहीं करना चाहिए! –

-2
*{ 
    -webkit-touch-callout: none; 
} 

परिणाम पूरी तरह से किसी भी स्पर्श इवेंट निष्क्रिय करने के लिए है

0

देखें डेविड हिल द्वारा 10।

var elem = document.getElementById("container"); //area we don't want touch drag 

var defaultPrevent=function(e){e.preventDefault();} 
elem.addEventListener("touchstart", defaultPrevent); 
elem.addEventListener("touchmove" , defaultPrevent); 

मुझे लगता है कि यह वस्तुओं को बनाने के लिए भी एक अच्छा तरीका है।

संबंधित मुद्दे