HTML5知识点1

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>demo5</title>
<!--链接美化CSS-->  <!--a 链接未被访问  a:visited 链接滑被访问  a:hover 划过链接   text-decoration underline 有线 none 没线-->
<style type="text/css">
    a{
        color: red;  
        text-decoration: none;
        border-bottom: 5px potted red;
    }
    a:visited{
        color: blue;  
        text-decoration: underline;
    }
    a:hover{
        color: yellow;  
        text-decoration: none;
        padding-bottom: 15px;
        background: url(MySource/images/Card/Plants/BoomWallNut.png) bottom repeat-x;
    }

    </style>

</head>
    <body>
    <!--图像对齐-->
    <img width="1024" align="left" src="MySource/dog.jpg"> <!--居中在img标签中不起作用-->
    <!--与文本对齐方式,控制与文本距离,添加边框-->
        
    <img style="vertical-align: middle"  src="MySource/dog.jpg" hspace="30" vspace="30" border="2" > <h4>你好</h4><p></p> <!--|text-top|text-bottom-->
    <!--水平线 -->
    <hr align="center" width="1024" size="10">
        
        <!--链接 文本,邮箱,链接美化-->
    <a href="demo4.html">demo4.html</a>
    <a href="mailto:1984852655@qq.com?subject=联系我;body=告诉我">告诉我</a>
        
        
        <!--链接 同一页面 -->
    <a href="#概述">概述</a>
    <h1><a id="概述">概述</a></h1>
        <!-- 链接美化  <body link="teal" alink="red" vlink="blue">-->
        <!-- 热点区域链接-->
        <img src="MySource/images/Card/Plants/BoomWallNut.png" usemap="#Map">
        <map name="Map">
          <area shape="rect" coords="16,266,108,349" href="demo4.html">
        </map>
        <!-- 表单属性,input,textarea,select-->
            <form action="demo4.html"
              method="post"   
              name="some"
                  id="some1"
              enctype="text/plain"
              target="_blank"
              novalidate
              >
        <!--表单域,可以用来将表单分组-->
        <fieldset>
        <!--出现在表单域左上角-->
        <legend>测试</legend>
        <input type="text" value="niaho" size="20" maxlength="20" name="y">
        <input type="password" value="niaho" size="20" maxlength="20" name="x"><br>
        <input type="checkbox"  name="z" checked="checked">我爱你啊
        <input type="checkbox"  name="z" checked="checked">我不爱你<p></p>
        <input type="radio" name="onechoice" value="2" checked="checked">王源
        <input type="radio" name="onechoice"  value="1">王俊凯         <!--通过name区分是不是一组-->
        <input type="radio" name="onechoice" value="3">千禧<br>
        </fieldset>
                
        <input type="hidden" name="somehidden" value="some">   <!--隐藏数据,页面跳转keyong-->
        <input type="submit" value="提交">
        <input type="image" alt="确定" src="Plants/Cabbagepult.png"> <!--image样式的表单,数据提交到服务器-->
        <input type="reset" value="复位"><br><br>
        <input type="button" value="运行" onclick="calculate()"><br><br>
        <!-- multiple同时选择多个文件上传  accept规定上传文件类型-->
        <input type="file" name="uploadfile" id="uploadffile" 
               multiple accept="image/jpeg"/><br><br>  <!--挑选文件上传。必须在form中说明编码方式-->
        <!--文本域 -->
        <textarea name="some" rows="10" cols="50" value="say">请文明用语</textarea><br><br>
        <!-- 下列表单-->
        谁最好看:
        <select name="谁最好看">
            <optgroup label="Team1">
                <option>王文萱</option>
                <option>王文萱</option>
                <option>王文萱</option>
            </optgroup>
            <optgroup label="Team2">
                <option>王文萱</option>
                <option>王文萱</option>
                <option>王文萱</option>
            </optgroup>
        </select><br><br>
        
        </form>
        <!-- url-->
        <input type="url" name="WebURL" id="webu1" value="http://www.naidu.com"><br><br>
        <!-- email-->
        <input type="email" name="WebE" id="webe" value="1984852655@qq.com"><br><br>
        <!-- range,滑动条-->
        <input type="range" name="volume" id="volume" min="0" max="100" step="0.2"><br><br>
        <!-- 输出????还没有弄懂-->
        <output name="x"></output><br><br>
        <!-- number,输入数字-->
        <input type="number" name="volum" id="volum" min="0" max="100" step="0.2"><br><br>
        <!-- tel-->
        <input type="tel" name="WebT" id="webt" value="18242027035" invalid="invalidHandler()"><br><br>
        <!-- search-->
        <input type="search" name="WebS" id="webs" value="王文萱"><br><br>
        <!-- color-->
        <input type="color" name="WebC" id="webc" ><br><br>
        <!-- date,month,week,time,datetime,datetime-local-->
        <input type="date" name="WebD" id="webd"><br><br>
        <!-- 新增表单特性 form formaction formmethod formenctype formnovalidate formtarget
              placeholder,antufocus,autocomplete,list,datelist,keygen,output-->
        <!--formaction formmethod formenctype formnovalidate formtarget分别可以覆盖表单的属性-->
        <!-- placeholder提示信息,得到焦点是信息消失 autofocus自动获得焦点  autocomplete自动完成,历史记录在下拉菜单里  data选值列表  keygen实现非对称加密-->
        <datalist id="emaillist">
            <option value="1984852655@qq.com">1984852655@qq.com</option>
            <option value="1984852656@qq.com">1984852656@qq.com</option>
        </datalist>
        <!--keygen实现非对称加密-->
        <keygen name="security"/>
        <!--表单元素属性required不能为空   pattern是一个正则表达式,验证格式   novalidate不验证-->
        <input type="text" size="20" maxlength="20" form="some1" placeholder="请输入信息"
                autofocus autocomplete="on" list="emaillist" required pattern="[0-9]{6}"
               ><br><br>
        <script type="text/javascript">
            var vali=document.getElementById("some1").validity; //返回ValidityState对象
            var vailii=document.getElementById("some1").willValidity; //表示表单是否需要验证
            var vailiil=document.getElementById("some1").validationMessage; //获取错误提示信息
            //ValidityState对象属性
            //valueMissing   typeMismatch   patternMismatch  tooLong  rangeUnderflow
            //rangeOverflow  stepMismatch   customError 使用自己定义的验证错误信息  true 自定义
            //checkValiity验证函数
            
            function CheckForm(frm){
                if(frm.webd.checkValidity()){    //checkValiity验证函数
                    alert("点子邮件正确");
            }
            }
        
        </script>
        
        <script type="text/javascript">
            //setCustomValitity修改错误提示信息    }
             //invalid事件,有元素没有通过验证时触发
             //监听invalid事件,上面
        window.onload=function(){
            var register=document.getElementById("register");
            register.addEventListener("invalid",invalidHandler,true);
            document.getElementById("cage").setCustomValidity("年龄不符合规定");
        }
        function addError(err){
            document.getElementById("error".innerHTML)="*"+err+"<br/>";
        }
        function clearError(){
            document.getElementById("error").innerHTML="";
        }
        function invalidHandler(evt){
            var validity=evt.srcElement.validity;
            var src="";
            if(validity.customError){
                str=evt.srcElement.validationMessage;
            }else{
                
                if(validity.valueMissing){
                    str+="不能为空"
                }
            }
            addError(str);
            evt.stopPropagation();
            evt.preventDefault();
        }
    </script>
        <!-- Audio  Vidoo-->
        <!-- autoplay自动播放  controls显示控制条  loop循环播放  preload预加载,有autoplay时忽略,none不预加载,metadata只加载元数据,auto全部加载,默认auto.    poster(video特有)用图片替代video  width和height video特有-->
        <br><br><br><br>
        <audio src="MySource/horse.mp3">
        
        <!--不支持时代替-->
        您的浏览器不支持
        </audio>
        <video src="MySource/movie.mp4" preload="auto" >
            <!--也可以加source>
        <!--不支持时代替-->
        您的浏览器不支持
        </video>
        <h2><pre>
        接口属性:
        currentSrc得到url地址   videoWidth  videoHeight      currentTime    startTime
        duration   volume    muted是否静音    ended    played:获得TimesRanges对象,包括播放部分的开始结束时间    paused    error错误代码    seeking是否正在请求媒体数据    
        seekable,获取媒体资源已经请求的TimesRanges对象,包括已请求部分的开始结束时间
        networkState,获取媒体资源的加载状态  
        buffered,获取本地缓存的媒体数据的TimesRanges对象
        readyState:当前媒体播放的就绪状态
        playbackRate:获取/设置媒体的播放速率
        defaultPlaybackRate:获取/设置媒体默认的播放速率
        </pre></h2>
        <!-- 脚本检查浏览器是否支持-->
        <!--<script type="text/javascript">
            var supprt=!!document.getElementById("audio").canPlayType();
        </script>-->
        <!-- audio和video的接口方法-->
        <h2><pre>
        load()加载媒体文件
        play()播放媒体文件
        pause()暂停媒体文件
        canPlayType(type) 测试浏览器是否支持
        </pre></h2>
        <!-- video audio的接口事件-->
        <h2>
        <pre>
video audio的接口事件:
        play  
        playing  
        pause执行了pause()触发  
        timeupdate 播放位置被改变时触发  
        ended  
        waiting等待下一帧时
        ratechange 
        volumechange 
        canplay以当前播放速率,需要缓冲触发
        canplaythrough以当前播放速率,不需要缓冲触发
        durationchange
        loadstart  浏览器开始在网上寻找数据
        progress  浏览器正在获取媒体文件
        suspend 浏览器暂停获取,且文件获取并没有正常结束
        abort  中止获取媒体文件,但不是应为错误
        error  获取媒体过程中出错
        emptied  网络变为初始化状态
        stalled  浏览器尝试获取媒体数据时失败
        loadedmetadata 加载玩媒体元数据
        loadeddata  加载完当前位置的媒体播放数据
        seeking 浏览器正在请求数据
        seeked   浏览器停止请求数据
        </pre>
        </h2>
        <!-- 拖放API  draggable  a和img元素默认可拖-->
        <input type="checkbox" value="王源" draggable="true">王源
        <!-- 鼠标拖动事件-->
        <h2>
            <pre>
        鼠标拖动事件:
             dragstart   drag  dragenter  dragover  dragleave  drop  dragend
            </pre>
            
        </h2>
        <!-- DataTransfer对象,支持拖拽数据的存储-->
        <h2>
            <pre>
        DataTransfer对象,支持拖拽数据的存储:
          dropEffect设置或获取拖拽操作的类型和要显示的光标类型 none copy  copyLink move
          effectAllowed设置或获取数据传送操作可应用于该对象的源元素
          none copy copyLink copyMove link linkMore move all aninitialized
          types:获取dragStart时间出发时为元素存储数据的格式
          files:获取存储在DataTransfer中正在拖放的文件列表FileList
          clearData([sDataFormat]):Text,URL,File,HTML,Image.没有参数清除全部数据
          setData([sDataFormat],[data]):Text,URL
          getData([sDataFormat]):Text,URL
          setDataImage([imgElement],x,y)
          addElement([element])
            </pre>
            
        </h2>
        
        <!-- 拖动元素-->
        <div id="dragSource" draggable="true">拖这里<img src="MySource/images/interface/Almanac_PlantBack.jpg" height="72" width="75"></div>
        <div id="dropTarget"><br><br><br><br><br>
          <br></div>
        <script type="text/javascript">
            function DragStart(){
                var source=document.getElementById('dragSource');
                source.addEventListener('dragstart',function(e){
                    //e.target引起时间的对象。innerHTML对应的HTML代码
                    e.dataTransfer.setData('text/plain',e.target.innerHTML);
                    e.dataTransfer.effectAllowed='copy';
                },false);
            }
            window.addEventListener('load',DragStart,false);
            function DragOver(){
                var target=document.getElementById('dropTarget');
                target.addEventListener('dragover',function(e){
                    this.className='dragover';
                    e.preventDefault();
                },false);
            }
            window.addEventListener('load',DragOver,false)
            function Drop(){
                var source=document.getElementById('dropTarget');
                source.addEventListener('drop',function(e){
                    var data=e.dataTransfer.getData('text/plain');
                    this.innerHTML+=data;
                    e.dataTransfer.dropEffect="copy";
                    this.className="";
                },false);
            }
            window.addEventListener('load',Drop,false);
        </script>
        
        <!-- FileList对象中的每一个文件又是一个File对象-->
        <!-- Blob对象原始二进制数据 size  type  slice()文件切割,返回新的Blob对象
            File继承了Blob,也能用Blob方法,属性-->
        <form action="" method="post">
        <input type="file" name="uploadfile" id="files" 
               multiple accept="image/*"/>
        <input type="button" value="显示" onClick="showFiles()"/></form>
        <div id="msg"></div>
        <script>
        function showFiles(){
            var filelist=document.getElementById("files").files;
            var msg=document.getElementById("msg");
            for(var i=0;i<filelist.length;i++){
                msg.innerHTML+=filelist[i].name+"<br/>";
                msg.innerHTML+="文件长度"+filelist[i].size+"<br/>";
                msg.innerHTML+="文件类型"+filelist[i].type+"<br/>"+"<br/>";
            }
        }
        </script>
        <!-- FileReader接口,读取文件内容-->
        <!-- 判断是否支持-->
        <script type="text/javascript">
            if(typeof FileReader == "undefined"){
                alert("浏览器未实现FileReder接口")
            }else{
                var flie=new FileReader();
            }
        </script>
        <!-- 接口属性-->
        <h2><pre>
        readyState  文件状态 
        1.EMPTY没有读取   
        2.LOADUING正在读取   
        3.DONE读取完毕
        error  读取过程中的错误  
        1.NotFoundError  
        2.SecurityError安全错误
        3.NotReadableError无法读取
        4.EncodingError编码限制,通常是数据的URL表示的网址长度限制
        
        
        </pre>
        
        </h2>
        <!--接口方法 -->
        <h2><pre>
        1.readAsArrayBuffer(Blob);文件读取为数组缓冲区
        2.readAsBinaryString(Blob);读取为二进制字符串
        3.readAsText(blob,encoding) 默认UTF-8,读取为文本
        4.readAsDataURL(blob) 读取为DataURL字符串,好像是图像欸
        5.abort()中断读取
        </pre>
        
        </h2>
        <!-- 接口事件-->
        <h2><pre>
        
        1.loadstart开始
        2.progress正在读取
        3.load成功完成数据读取
        4.abort中断
        5.error错误
        6.loadend结束读取,可能成功可能失败
        </pre>
        
        </h2>
        <!-- 接口方法实例-->
        <form action="" method="post">
        <input type="file" multiple id="MyFiles"/>
        <input type="button" value="读取为二进制字符串" onclick="ReadAs('BinaryString')"/>
        <input type="button" value="读取为数组缓冲" onclick="ReadAs('ArrayBuffer')"/>
        <input type="button" value="读取为文本" onclick="ReadAs('Text')"/>
        <input type="button" value="读取为图像" onclick="ReadAs('DataURL')"/>
        <div id="message"></div>
        </form>
        <script type="text/javascript">
            function ReadAs(action){
                var blob=document.getElementById("MyFiles").files[0];
                
                if(blob){
                    
                    var reader=new FileReader();
                    switch(action.toLowerCase()){
                        case "binarystring":
                            reader.readAsBinaryString(blob);
                            break;
                        case "text":
                            reader.readAsText(blob);
                            break;
                        case "dataurl":
                            reader.readAsDataURL(blob);
                            break;
                        case "arraybuffer":
                            reader.readAsArrayBuffer(blob);
                            break;
            
               }
                }
                reader.onload=function(e){
                    var result=this.result;
                    if(/image\/\w+/.test(blob.type)&&action.toLowerCase()=="dataurl"){
                       document.getElementById("message").innerHTML="<img src'"+result+"'/>"
                     }else{
                       document.getElementById("message").innerHTML=result;
                       }
                }
            }
        </script>
        <!-- 接口事件实例-->
        <form action="" method="post">
            <input type="file" multiple id="My">
            <input type="button" value="读取文件" onclick="FileReaderEvent()">
            
            <div id="me"><br/><br/><br/><br/></div>
        </form>
        <script type="text/javascript">
              function FileReaderEvent(){
                var blob=document.getElementById("My").files[0];
                var message=document.getElementById("me");
                var reader=new FileReader();
                
                reader.onload=function(e){
                    message.innerHTML+="Event:load;<br/>";
                }
                reader.onloadstart=function(e){
                    message.innerHTML+="Event:loadstart;<br/>";
                }
                reader.onloadend=function(e){
                    message.innerHTML+="Event:loadend;<br/>";
                }
                reader.onerror=function(e){
                    message.innerHTML+="Event:error;<br/>";
                }
                reader.onabort=function(e){
                    message.innerHTML+="Event:loadabort;<br/>";
                }
                reader.onprogress=function(e){
                    message.innerHTML+="Event:progress;<br/>";
                }
                reader.onload=function(e){
                    message.innerHTML+="Event:load;<br/>";
                }
             
                   reader.readAsDataURL(blob);
            }
        </script>
        <!-- 例子:把图片拖进浏览器-->
        <div>
        把图片拖进下面的方框
        </div>
        <div id="droTarget"><br><br><br><br><br><br><br><br><br><br><br></div>
        <script type="text/javascript">
          var target;
            function dropHandle(e){
                var fileList=e.getDataTransfer.files;
                var fileType;
                for(var i=0;i<fileList.length;i++){
                    /*fileType=fileList[i].type;
                    if(fileType.indexOf('image')==-1){
                        alert('请拖拽图片');
                        return;
                    }*/
                    loadImg(fileList[i]);
                }
                
            }
            function loadImg(file){
                var reader=new FileReader();
                reader.onload=function(e){
                    var oImg=document.createElement('imbjkbg');
                    oImg.src=this.result;
                    target.appendChild(oImg);
                    
                }
                reader.readAsDataURL(file);
            }
            window.onload=function(){
                target=document.getElementById("droTarget");
                target.addEventListener('dragover',function(e){
                    e.preventDefault();
                },false);
                target.addEventListener('drag',dropHandle,false);
            }
        </script>
        
        
</body>
</html>

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值