1. h5中的元素拖拽
在html5中,我们可以使用鼠标拖动页面中的某个元素,但是在实现拖拽元素,并且使用拖拽来改变元素布局的话,需要给页面中相应的元素设置一些属性:
1.1 实现元素能被拖拽
在需要拖拽的元素标签中设置属性:draggable,它只有两个值true和flase,img标签默认支持拖拽.
1.2 实现可以拖拽至某个盒子中
默认情况是无法将元素拖拽至其他地方,但是如果需要将元素拖拽至某个盒子中的话,需要给该盒子设置事件:
DOM.ondragover = function (event) {
event.preventDefault();
}
但是这只是完成了可以拖拽至这个盒子中,还没有完成将元素添加到盒子中.需要给盒子设置当元素放置于盒子中时的事件,在事件处理函数中书写元素添加至盒子中的代码.
DOM.ondrop = function(){}
2. h5中的全屏显示
我们在看视频的时候都会有全屏显示的按钮,当然在其他一些地方也可以将元素全屏显示.
而元素的全屏显示功能的基础代码就是:DOM.requesetFullscreen();但是这个方法还未正式启用,所有我们需要对不同浏览器做能力检测:
if (DOM.requestFullScreen) {
DOM.requestFullScreen();
}else if(DOM.webkitRequestFullScreen){
DOM.webkitRequestFullScreen();
}else if(DOM.mozRequestFullScreen){
DOM.mozRequestFullScreen();
}
这里的判断语句是为了检测浏览器中元素是否存在该方法,如果有就调用.
3. h5中自定义播放器
之前我们讲到过html5中有默认的播放器标签,但是在直接使用默认标签中的属性时并不能达到我们的要求,所有html5给出了许多方法和属性,方便我们对标签进行自定义设置.
3.1 play()
控制视频的播放,配合pause()使用.
3.2 pause()
控制视频的暂停,配合play()使用.
3.3 currentTime和duration
这两个是标签的属性,可以获取视频当前播放的时间和总时间,同样也可以来设置视频需要开始播放的时间.
可以使用这两个属性来自定义视频的播放进度,并通过拖拽进度条来改变播放进度.
使用这些html5提供的属性和方法,可以使我们页面播放器更加美观.
4. h5提供的定位
window.navigator.geolocation.getCurrentPosition(function (position) {})
调用这个方法的时候需要传入一个回调-函数,在回调函数中通过position.coords.longitude获取当前位置的经度,通过position.coords.latitude获取当前位置的纬度.
但是只是通过这个方法获取经纬度,并没有什么作用,我们需要配合网上的一些地图服务器来进行定位,如百度地图,谷歌地图等.这样就可以完成一个个人位置定位的功能.
我们可以餐厅百度地图中的设置来制作一个属于自己的定位地图.
5. 浏览器端保存数据
浏览器浏览页面的时候会将一些信息自动保存在内存中,当页面关闭后清除内存.
我们也可以手动将一些我们需要的数据保存至浏览器端.
5.1 一次性保存
窗口未关闭前,将数据保存下来,窗口关闭后清除数据:
window.sessionStorage
5.2 永久保存
当数据进行保存后,直到清除浏览器浏览记录或者代码清除:
window.localStorage
5.3 两种方式常用的方法
5.3.1 setItem(‘key‘,‘value‘);设置保存的数据,设置的格式是键值对,并且只能保存字符串.
5.3.2 getItem(‘key‘);获取对应键的值.
5.3.3 通常使用情景
我们可以先获取到用户输入的内容,将内容配合设置的键存储在用户的浏览器端,在下次访问时可以直接获取这些数据,无需用户重复输入.
5.3.4 拓展
虽然通过setItem()只能存储字符串,但是我们可以先将json数据转换为字符串存储在浏览器端,在需要使用时,再通过字符串转换为json对象来获取需要的数据.
对应的一组格式转换的方法:
JSON.stringify(obj);将json对象转换为字符串,返回的是内容为json对象的字符串.
JSON.parse(string);将内容为json对象的字符串,转换为json对象,返回的是一个json对象.
6. 获取上传的文件
6.1 获取需要上传的文件的信息
在获取上传文件之前,需要知道如何获取需要上传的文件的信息.
<input type="file" >标签拥有一个属性,可以获取用户选取的文件的信息.
dom.files;获取到的是由选取的文件信息组成的数组,可以通过dom.files[index];的方式来选择需要获取文件的信息.
然后需要创建文件读取对象,通过这个对象的方法来获取文件的信息.
var obj = new FileReader();//创建一个文件读取对象.
obj.readAsDataURL(file);//通过该对象调用读取文件的方法,传入一个通过dom.files[index];获取到的文件信息作为参数.
obj.onload = function (argument) {//文字加载完毕后调用}
file.type:获取文件的类型;
obj.result:获取文件的路径信息.
6.2 通过form表单获取上传的文件
6.2.1 form标签中需要设置的内容
在上传文件时表单元素必须是通过post的请求方式,服务器才能获取到上传的文件.
并且在form标签中需要设置enctype=‘multipart/form-data‘属性及属性值,为了让表单知道表单中有文件需要上传.
6.2.2 php文件中需要设置的内容
在点击提交按钮后,上传的文件会在php中保存在一个全局变量中,我们可以通过对应方式来获取到上传文件信息,如:$_GET,$_POST.
$_FILES[‘key‘];获取到的是由上传文件信息组成的一个关系型数组,key为上传文件标签的name属性值.
move_uploaded_file()将指定的上传文件移动到某个具体的位置,进行存储.
这个方法有两个参数:
参数1 移动的目标文件
参数2 希望保存的位置/希望保存的文件名
6.3 通过ajax获取上传的文件
6.3.1 ajax可以直接读取form表单中数据
在form表单没有执行提交的情况下,在通过ajax请求时,php中可以直接获取到form表单中的数据.但是需要在ajax.send()之前创建一个表单数据对象:new FormData(formDom),括号中传入一个表单元素.
然后直接在php中使用$_POST或者$_GET获取数据.
6.3.2 将选择的文件进行上传
1 html部分
在<input type="file" >中选择的文件,通过.append()的方法上传至php,.append()有两个参数:
第一个参数:自定义key名;
第二个参数:通过dom.files[index];获取选择的文件.
2 php部分
php设置的与通过form表单获取的过程一致.
3 .append()方法
还可以通过这个方法来给form表单设置自定义属性及属性值,并且在php中同正常属性一样来获取到设置的属性值.
6.3.3 上传文件的同时显示上传进度
ajax.upload.onprogress = function (event) {}
文件上传的同时出发事件,可以通过event.loaded获取到已上传文件的大小.以及event.total获取到上传文件的总大小,使用这两个属性来设置显示上传的进度.
html基础学习02
时间: 2024-10-24 20:59:05
html基础学习02的相关文章
T-SQL 基础学习 02
1 数据库设计 2 3 定义 4 5 数据库设计就是将数据库中的数据实体以及这些数据实体之间关系,进行规划和结构化的过程 6 7 在需求分析阶段,设计数据库的一般步骤 8 9 A. 收集相信 10 11 B. 标识实体 12 13 C. 标记每个实体需要存储的详细信息/属性 14 15 D. 标识实体之间的关系 16 17 在概要设计阶段和详细设计阶段数据库设计步骤: 18 19 1. 绘制E-R图 20 21 2. 将E-R图转化为数据库模型图 22 23 3. 应用三大范式规范化表设计 24
java基础学习02(简单的java程序)
简单的java程序 一.完成的目标 1. 理解java程序的基本组成 2. 如何对程序代码进行注释 3. java标识符的命名规则 4. 了解java中的关键字 5. 使用java定义变量或声明变量 二.一个简单的java程序 public class TestJava{ public static void main(String [] args){ //操作一个简单的范例,输出和乘方 int num = 10; //定义一个整型变量 num = 30; //修改变量 System.out.p
2、c语言基础学习02
=============================================================================将windows的可执行文件上传到linux,看能够执行吗?sftp> put a.exe 出现下面错误:没有权限:拒绝访问-bash: ./a.exe: Permission denied那我们提升下a.exe的权限试试chmod u+x a.exe 则出现下面错误:不能执行二进制文件:执行格式错误-bash: ./a.exe: cannot
ASP.Net MVC开发基础学习笔记(3):Razor视图引擎、控制器与路由机制学习
首页 头条 文章 频道 设计频道 Web前端 Python开发 Java技术 Android应用 iOS应用 资源 小组 相亲 频道 首页 头条 文章 小组 相亲 资源 设计 前端 Python Java 安卓 iOS 登录 注册 首页 最新文章 经典回顾 开发 Web前端 Python Android iOS Java C/C++ PHP .NET Ruby Go 设计 UI设计 网页设计 交互设计 用户体验 设计教程 设计职场 极客 IT技术
Docker 学习笔记【2】 Docker 基础操作实,Docker仓库、数据卷,网络基础学习
Docker 学习笔记[3] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,实操 网络基础 ---------高级网络配置和部分实战案例学习 ============================================================= Docker 学习笔记[1]Docker 相关概念,基本操作--------实操记录开始 ============================================================= 被
ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器与路由机制学习
一.天降神器“剃须刀” — Razor视图引擎 1.1 千呼万唤始出来的MVC3.0 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留下来的ASPX引擎或者第三方的NVelocity模板引擎. Razor在减少代码冗余.增强代码可读性和Visual Studio智能感知方面,都有着突出的优势.Razor一经推出就深受广大ASP.Net开发者的喜爱. 1.2 Razor的语法 (1)Razor文件类型:Razor支持两种文件类型,分
Java基础学习总结——Java对象的序列化和反序列化
一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中: 2) 在网络上传送对象的字节序列. 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存.比如最常见的是Web服务器中的Session对象,当有 10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些s
pyqt treeview基础学习
# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import * from PyQt4.Qt import * from PyQt4.QtCore import * import sys class Tree(QTreeView): def __init__(self,parnet=None,*args): super(Tree,self).__init__(parnet,*a
黑马程序员_毕向东_Java基础视频教程_Java基础学习知识点总结
黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日 day01 一.基础知识:软件开发 1.什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合. 2.常见的软件:系统软件:如:DOS,Windows,Linux等.应用软件:如:扫雷,迅雷,QQ等. 3.什么是开发?制作软件. 二.基础知识:人机交互方式 4.软件的出现实现了人与计算机之间的更好的交互. 5.交互方式:图形化界面:这种方式简单直观,使用者易于接受,容易上手操作.命令行方式: