2011-04-05 18 views
6

पर एचटीएमएल 5 आईओएस

यह वीडियो तत्व के शीर्ष पर स्पर्श करते समय यह हर जगह काम करता प्रतीत होता है, जहां आप स्क्रॉल करने जा रहे हैं जैसे पृष्ठ को खींचना शुरू कर सकते हैं। ऐसा लगता है जब मूल वीडियो नियंत्रण पर मजबूर होना पड़ता है। यदि आप नियंत्रण विशेषता शामिल नहीं करते हैं और वीडियो को इस तरह से लोड करते हैं कि इसे ऑनलाइन में खेला जा सकता है (जैसे कि आईपैड पर या UIWebView में allowInlineMediaPlayback सेट के साथ), स्क्रॉलिंग ठीक से रोका जाता है। तो ऐसा लगता है कि इस घटना को कैप्चर करने वाले मूल वीडियो नियंत्रण (बड़ा प्ले बटन) के साथ कुछ करना है।

<!DOCTYPE HTML> 
<html> 
<head> 
    <title>HTML5 Video Example</title> 
    <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no"> 
</head> 
<body style="background: blue;"> 
    <video src="http://cdn.kaltura.org/apis/html5lib/kplayer-examples/media/bbb_trailer_iphone.m4v" controls></video> 
    <script> 
     window.onload = function() { 
      document.ontouchmove = function(e) { 
       e.preventDefault(); 
      } 
     } 
    </script> 
</body> 
</html> 

समाधान की कोई भी विचार पूरी तरह से स्क्रॉल प्रतिबंधित करने के लिए व्यवहार, यहां तक ​​कि वीडियो पर:

यहाँ मैं क्या कर रहा हूँ की एक काल्पनिक उदाहरण है? मैंने वीडियो तत्व पर सीधे ontouchmove को संभालने का प्रयास किया है और यह काम नहीं करता है।

धन्यवाद!

+0

एक ही स्थिति का सामना करना पड़ा, क्या आपको कोई कामकाज मिला? –

उत्तर

0

प्रयास करें:

element.addEventListener('touchmove', function(event) {                                                    
     // Prevent scrolling on this element                                                        
     event.preventDefault();                                                           
    }, false); 
बस तत्व के लिए प्रश्न में

या:

window.addEventListener('touchmove', function(event) {                                                    
     // Prevent scrolling on this element                                                        
     event.preventDefault();                                                           
    }, false); 
पूरे खिड़की के लिए

+0

यह पूछे जाने वाले मामले के लिए काम नहीं करता है, वीडियो पर एक ही स्थिति का सामना करना पड़ता है स्पर्श स्पर्श चाल –

2

आप की तरह, मैं स्क्रॉलिंग को रोक नहीं सका, इसलिए एक वर्कअराउंड ने जेएस फ़ंक्शन को window.scrollTo(0, 1); को हर सेकेंड में आग लगाने के लिए जोड़ा, जिसका मतलब है कि उपयोगकर्ता वापस कूदने से पहले केवल एक निश्चित समय तक स्क्रॉल कर सकता है।

1

मेरे परीक्षण में, वीडियो के "नियंत्रण" विशेषता को कम करते समय आप ईवेंट को काम करने के लिए प्राप्त कर सकते हैं। शीर्ष में एक कस्टम div का प्रयोग करें कस्टम नियंत्रण

उदाहरण द्वारा प्रदान करने के लिए ....

<video src="http://192.168.1.53/videoTester/Cuatro.mp4" id="player" width="100%" height="100%" x-webkit-airplay="allow" ></video> 
0

मैं एक ही मुद्दे में चलाने के बाद इस बात के लिए एक अच्छा समाधान के साथ आया था।

//Function to trigger when every half second to check if user scrolled 
$(function() { 
    //select video player and the current time 
    var myPlayer = document.getElementById('VideoID'); 
    var whereYouAt = myPlayer.currentTime; 
    var current; 

    setInterval(function() { 
     current = myPlayer.currentTime; 

     if (current > (whereYouAt + 1)) { 
      myPlayer.currentTime = whereYouAt; //If current 1 whole second 
               //Set time to before scroll. 
     } 
     else { 
      whereYouAt = current; //otherwise set where to current. 
     } 
    }, 500); //500 = half a second. 
}); 

यह केवल और HTML5 वीडियो के लिए काम नहीं करेगा अगर यह मोबाइल वीडियो प्लेयर से चलाता है: मैं इसे निम्नलिखित कार्य करके काम करने के लिए मिला है। मुझे उम्मीद है कि यह मदद करता है और यदि आपके कोई प्रश्न हैं तो मुझे बताएं।