2012-06-26 16 views
7

ओएस एक्स पर सफारी में एक जादू ट्रैकपैड या मैकबुक ट्रैकपैड के साथ, क्रमशः दो अंगुलियों के प्रभावों के साथ दाएं या बाएं स्वाइप करें। क्या इसका पता लगाने का कोई तरीका है, जैसा कि पीछे/आगे क्लिक करने से अलग है, या कमांड + तीर आदि को मार रहा है?डेस्कटॉप सफारी के दो-उंगली वाले स्वाइप का पता लगाएं

कारण यह है कि स्वाइप में इसकी स्वयं की प्रकट-शैली स्वाइपिंग एनीमेशन है, और साइट पर कस्टम AJAX संक्रमण के साथ, यह वास्तव में अजीब लग रहा है जब आप एक के बाद एक प्राप्त करते हैं। यह तब होता है जब उदाहरण के लिए जिथब पर ब्राउज़िंग कोड।

अद्यतन 23/6/16: गिथब बिना किसी संक्रमण के पृष्ठ सामग्री को स्वैप करने के लिए वापस लौट आया, जो एक स्मार्ट चाल थी। मेरा वर्तमान अभ्यास बैक/फॉरवर्ड के लिए ऐसा करना है, भले ही साइट पर कुछ प्रकार की फैंसी संक्रमण का उपयोग किया जाए। यह ब्राउजर जो कुछ भी कर सकता है और साइट संक्रमण

+0

सुनिश्चित नहीं हैं कि मैं समझता हूँ कि आप "से कड़ी चोट इसे ही है है क्या मतलब पता चलता है शैली स्विंग एनीमेशन "। पॉपस्टेट पर गिटहब के छोटे एनिमेशन क्रोम और सफारी में मेरे समान दिखते हैं। –

+0

हां, लेकिन स्वाइप करने का प्रयास करें (एक आधुनिक ऐप्पल ट्रैकपैड के साथ) और आप देखेंगे कि मेरा क्या मतलब है ... – Greg

+1

ओह, भगवान। यह खराब है। मुझे इसे करने के लिए तीन अंगुली से स्वाइप करने के लिए दो अंगुली स्वाइप से वापस स्विच करना पड़ा। –

उत्तर

7

आप को देखने के लिए माउसव्हील घटना उपयोग कर सकते हैं ट्रैकपैड पर एक क्षैतिज स्क्रॉल अपने popstate घटना से पहले किया गया है:

// boolean that stores if a swipe has been performed. 
var bScrolled = false; 
// countdown in ms before resetting the boolean. 
var iTime = 1000; 
var oTimeout; 
window.addEventListener('mousewheel', function(e) { 
    if (e.wheelDeltaY === 0) { 
    // there is an horizontal scroll 
    if (!bScrolled) { 
    // no need to set bScrolled to true if it has been done within the iTime time. 
     bScrolled = true; 
     oTimeout = setTimeout(function(){ 
     bScrolled = false; 
     }, iTime); 
    } 
    } 
}); 

window.onpopstate = function() { 
    // clear the timeout to be sure we keep the correct value for bScrolled 
    clearTimeout(oTimeout); 
    // check if there has been a swipe prior to the change of history state 
    if (bScrolled) { 
    // check which browser & OS the user is using, then 
    // trigger your awesome custom transition. 
    } 
} 
-2

एक शब्द में, नहीं। स्वाइप ओएस एक्स के पीछे और सफारी ब्राउज़र के कोड में यूनिक्स कोड में लिखा गया है। ब्राउज़र तब इशारा पहचानता है और इसे पीछे/आगे बटन के रूप में व्याख्या करता है।

यह कहा गया है कि आप शायद कुछ कोड लिख सकते हैं जो एक निश्चित वेग के पृष्ठ पर स्क्रॉलिंग को पहचान लेगा जो आपके कोड को ट्रिगर करेगा, लेकिन आप हमेशा पूर्व-कोडित बैक/फॉरवर्ड बटन पहचान के साथ प्रतिस्पर्धा में रहेंगे ब्राउज़र का मेरे ज्ञान के लिए, आप एचटीएमएल (या किसी अन्य भाषा, उस मामले के लिए) के भीतर ब्राउज़र को संशोधित नहीं कर सकते हैं।

+0

उत्तर के लिए धन्यवाद - बस स्पष्ट होने के लिए, मुझे स्वाइप एनीमेशन को रोकने की आवश्यकता नहीं है (हालांकि यह अच्छा होगा!)। बस इसे पहचानने में सक्षम होने के कारण मैं अपने संक्रमण को होने से रोक सकता हूं। – Greg

+0

मुझे पता है। मैं जो कह रहा हूं वह है कि स्वाइप एनीमेशन ओएस एक्स में बनाया गया है, कार्यक्रम नहीं। इस प्रकार, कम से कम मेरे ज्ञान के लिए, आप इसे ब्राउज़र के भीतर से नहीं ढूंढ सकते हैं क्योंकि आपको वेबसाइट के भीतर से ग्राहक के ओएस तक पहुंचने की अनुमति नहीं है। –

+0

ठीक है, हाँ, मेरा स्वयं का परीक्षण उस पर वापस आ गया है - मैंने अलग-अलग मामलों के लिए ईवेंट ऑब्जेक्ट के बीच अंतर खोजने की कोशिश की, इसका कोई फायदा नहीं हुआ। – Greg

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