HTML5 프로그래밍 실습 3부 - 이미지 텍스트(txt) 드래그 앤 드롭 미리보기 구현 코드

黄舟
풀어 주다: 2017-03-30 13:33:28
원래의
1456명이 탐색했습니다.

이 글에 사용된 주요 지식

 HTML5File 및 FileReader인터페이스

소스 코드

<!DOCTYPE html><html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>HTML5文件拖拽预览Demo</title>
    <style type="text/css">
        h1{
            padding:0px;
            margin:0px;
        }
        p#show{
            border: 1px solid #ccc; 
            width: 400px; 
            height: 300px;
            display: -moz-box;
            display: -webkit-box;
            -moz-box-align: center;
            -webkit-box-align: center;
            -moz-box-pack: center;
            -webkit-box-pack: center;
            resize:both;
            overflow:auto;
        }
        p[id^=show]:hover{
            border: 1px solid #333; 
        }
        p#main{
            width:100%;
        }
        p#successLabel        {
            color:Red;
        }
        p#content        {
            display:none;
        }
    </style>
    <script type="text/javascript">
        function init() 
        {            var dest = document.getElementById("show");
            dest.addEventListener("dragover", function(ev) 
            {
                ev.stopPropagation();
                ev.preventDefault();
            }, false);
        
            dest.addEventListener("dragend", function(ev) 
            {
                ev.stopPropagation();
                ev.preventDefault();
            }, false);
        
            dest.addEventListener("drop", function (ev) {
                ev.stopPropagation();
                ev.preventDefault();        
                var file = ev.dataTransfer.files[0];                
                var reader = new FileReader();        
                if (file.type.substr(0, 5) == "image") {
                    reader.onload = function (event) {
                        dest.style.background = &#39;url(&#39; + event.target.result + &#39;) no-repeat center&#39;;
                        dest.innerHTML = "";
                    };
                    reader.readAsDataURL(file);
                }                else if (file.type.substr(0, 4) == "text") {
        
                    reader.readAsText(file);
                    reader.onload = function (f) {
                        dest.innerHTML = "<pre class="brush:php;toolbar:false">" + this.result + "
"; dest.style.background = "white"; } } else { dest.innerHTML = "暂不支持此类文件的预览"; dest.style.background = "white"; } }, false); } //设置页面属性,不执行默认处理(拒绝被拖放) document.ondragover = function(e){e.preventDefault();}; document.ondrop = function(e){e.preventDefault();} window.onload=init;

HTML5文件拖拽预览Demo

文件预览区,仅限图片和txt文件

로그인 후 복사

메인 코드 분석

스타일 부분은 다루지 않겠습니다. simple

Dragover, dragend 및 drop은 세 가지 드래그 관련 이벤트입니다.

Dragover는 드래그된 요소가 이 요소의 범위 내에서 이동하고 있음을 나타냅니다.

dragend는 드래그 앤 드롭 작업의 끝을 나타냅니다.

Drop은 다른 요소가 이 요소에 드래그 앤 드롭되었음을 나타냅니다.

코드에서 먼저 이러한 이벤트를 각각 듣고 취소합니다. 브라우저의 기본 동작을 사용하고 HTML5에서 File 및 FileReader를 사용하여 드래그한 파일을 읽을지 여부를 결정합니다.

파일이 이미지인 경우 FileReader의 readAsDataURL 메서드를 사용하여 이미지를 다음과 같이 읽습니다. DataURL 문자열 을 메모리에 저장하고 p.

에 표시합니다. 파일이 txt 텍스트인 경우 FileReader의 readAsText 메서드를 사용하여 파일을 텍스트로 읽습니다(기본값은 UTF입니다). -8 형식)을 메모리에 넣은 후 p in에 표시합니다.

위 내용은 HTML5 프로그래밍 실습 3부 - 이미지 텍스트(txt) 드래그 앤 드롭 미리보기 구현 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!