동영상 드래그앤드롭 시 질문있습니다.

0 투표
480 조회
과제 중에 어려움이 있어서 조언을 구하려고 합니다.

정지되어 있고 컨트롤바가 있는 동영상을 드래그하여 빨간 사각형 내부영역에 드롭하면

동영상이 자동재생되며 컨트롤바가 사라져야 하는데요,

 

document.getElementById("video1").autoplay = "autoplay";  이런식으로 요소 속성 변경하기도 해보고

자식노드 삭제 추가 이런 것도 해봤는데

아무리 해봐도 방법을 모르겠습니다ㅠㅠ

조언 또는 도움 부탁드려요ㅠㅠ

<!DOCTYPE HTML>
< html>
< head>    
 <style>        
  #video {            
   width: 500px;            
   height: 250px;                
   border: 1px solid red;        
  }    
 </style>    

 

 <script>        
  function allowDrop(e) {            
   e.preventDefault();
  }
      
   function handleDragStart(e) {            
   e.dataTransfer.effectAllowed = 'move';            
   e.dataTransfer.setData("Text", e.target.id);       
  }        

 

  function handleDrop(e) {            
   e.preventDefault();            
   
   var src = e.dataTransfer.getData("Text");            
   e.target.appendChild(document.getElementById(src));
   
   var parent = document.getElementById("video");
   var child = document.getElementById("p");
   parent.removeChild(child);            
  }
 </script>
< /head>

 

<body>    
 <div id="video"   ondrop="handleDrop(event)" ondragover="allowDrop(event)">
  <p id="p">동영상을 드랙&드랍해봅니다</p>
 </div>    
 
 <br>    
 
 <video id="video1" src="video1.mp4" draggable="true"   ondragstart="handleDragStart(event)"  width="500" height="250" controls="controls">    
 <video id="video2" src="video2.mp4" draggable="true"   ondragstart="handleDragStart(event)"  width="500" height="250" controls="controls">
< /body>
< /html>
요청 : 2016년 5월 25일 웹프로그래밍 분류 내 작성자 dog7920 (120 포인트)
다시 보임 처리 시간 2016년 5월 27일 작성자 qsadmin

1 개의 답변

0 투표

drag 시작시 호출되는 handleDragStart 핸들러에서 videoPlayer라는 전역변수를 만들어 드래그가 시작된 video 객체를 대입해둡니다.

드래그가 완료되면 호출되는 handleDrop 핸들러에서 끝쪽에 전역변수로 대입해둔 비디오 객체를 play() 메소드 호출과 controls 속성을 제거해 컨트롤러를 보이지 않게 합니다. 여기서 중요한 것은 완전하게 드롭이 된 상태에서 재생을 시도하도록 합니다.

아래의 수정된 코드를 참고하시길 바랍니다.

https://jsfiddle.net/Cydemy/b2cuk8h5/

답변: 2016년 5월 26일 작성자 qsadmin (2,100 포인트)