jQuery图片灯箱和视频灯箱
在一些前端页面中经常需要文件上传,为了美观,我们经常做一个灯箱来显示我们选择的文件,
而不是简单的input标签。
html 代码:这个是多图片上传
<div class="layui-form-item">
<div for="0" class="layui-form-label">
<span class="x-red">*</span>添加装修图片
</div>
<input type="file" name="file0" class="file0" id="0" multiple="multiple" /><br><img src="${rc.contextPath}/include/backgroundmanager/images/up.png" id="img_0" style="width: 300px;height: 300px">
</div>
<div id="addDiv"><input type="button" value=" + 点击继续增加" id="addPicture" style="width: 200px;height: 30px;margin: 15px; " /></div>
<div id="addDivNode"> <!--这段代码是点击增加被克隆的div元素-->
<div class="layui-form-item">
<label for="dinfoadd" class="layui-form-label">
<span class="x-red">*</span>装修图片说明
</label>
<div class="layui-input-inline">
<input type="text" id="dinfoadd" name="dinfo" required=""
autocomplete="off" class="layui-input">
<input type="hidden" name="id" class="id" value="0">
<input type="hidden" name="version" class="version" value="0">
<input type="hidden" name="dpath" class="dpath" value="">
</div>
</div>
<div class="layui-form-item">
<div for="file0" class="layui-form-label">
<span class="x-red">*</span>添加装修图片
</div>
<input type="file" name="file0" class="file0" id="0" multiple="multiple" /><br><img src="${rc.contextPath}/include/backgroundmanager/images/up.png" id="img_0" style="width: 300px;height: 300px">
</div>
</div>
js代码:
//追加节点,增加图片信息,
var index=1000;
$(document).on('click','#addPicture',function(){
index+=1;
var strVar=$("#addDivNode").clone(true); //克隆元素,注意不是javascript的cloneNode()
strVar.attr("id","addDiv"+index); //改变克隆元素id,注意不是setAttribute()
var lable=strVar.find("#dinfoadd"); //根据id查找子元素
var file=strVar.find("#0");
var img=strVar.find("#img_0");
lable.attr("id","dinfoadd"+index); //改变克隆子元素节点一
file.attr("id",index); //改变克隆元素子节点二
img.attr("id","img_"+index); //改变克隆子元素节点三
$("#addDiv"+index).style="display: block";
$("#addDiv").before(strVar);
}); //######################################图片灯箱###################
$(".file0").change(function(){
var sid=$(this).attr('id');//获取id
// getObjectURL是自定义的函数,见下面
// this.files[0]代表的是选择的文件资源的第一个,因为上面写了 multiple="multiple" 就表示上传文件可能不止一个
// ,但是这里只读取第一个
var objUrl = getObjectURL(this.files[0]) ;
// 这句代码没什么作用,删掉也可以
// console.log("objUrl = "+objUrl) ;
if (objUrl) {
// 在这里修改图片的地址属性
$("#img_"+sid).attr("src", objUrl) ;
}
}) ;
//建立一個可存取到該file的url
function getObjectURL(file) {
var url = null ;
// 下面函数执行的效果是一样的,只是需要针对不同的浏览器执行不同的 js 函数而已
if (window.createObjectURL!=undefined) { // basic
url = window.createObjectURL(file) ;
} else if (window.URL!=undefined) { // mozilla(firefox)
url = window.URL.createObjectURL(file) ;
} else if (window.webkitURL!=undefined) { // webkit or chrome
url = window.webkitURL.createObjectURL(file) ;
}
return url ;
}
同样视频也可以:
html:
<div class="layui-form-item">
<div for="file" class="layui-form-label">
<span class="x-red">*</span>添加客户点评视频
</div>
<div class="aui-form-input">
<input type="file" name="videofile" id="videofile" multiple="multiple" /><br>
<video id="playvideo" width="320" height="240" src="" preload="auto" controls>
</video>
</div>
</div> js:
$("#videofile").change(function(){
// getObjectURL是自定义的函数,见下面
// this.files[0]代表的是选择的文件资源的第一个,因为上面写了 multiple="multiple" 就表示上传文件可能不止一个
// ,但是这里只读取第一个
var objUrl = getObjectURL(this.files[0]) ;
// 这句代码没什么作用,删掉也可以
// console.log("objUrl = "+objUrl) ;
if (objUrl) {
// 在这里修改图片的地址属性
$("#playvideo").attr("src", objUrl) ;
}
}) ;
//建立一個可存取到該file的url
function getObjectURL(file) {
var url = null ;
// 下面函数执行的效果是一样的,只是需要针对不同的浏览器执行不同的 js 函数而已
if (window.createObjectURL!=undefined) { // basic
url = window.createObjectURL(file) ;
} else if (window.URL!=undefined) { // mozilla(firefox)
url = window.URL.createObjectURL(file) ;
} else if (window.webkitURL!=undefined) { // webkit or chrome
url = window.webkitURL.createObjectURL(file) ;
}
return url ;
}
jQuery图片灯箱和视频灯箱的更多相关文章
- 推荐几款jquery图片切换插件
一.前言 毕业季到了,大家都在匆匆忙忙的记录大学里最美好的时光,照片中各种花式.各种姿势都涌现出来了.这么多的照片怎么展示出来给自己的好友看呢?有人选择做成视频,有人选择ps之后做成图片集,而我选择利 ...
- 20款jQuery 的音频和视频插件
分享 20 款jQuery的音频和视频插件 Blueimp Gallery: DEMO || DOWNLOAD Blueimp gallery 主要为移动设备而设计,同时也支持桌面浏览器.可定制视频和 ...
- 分享22款响应式的 jQuery 图片滑块插件
响应式(Responsive)设计的目标是要让产品界面能够响应用户的行为,根据不同终端设备自动调整尺寸,带给用户良好的使用体验.这篇文章收集了22款优秀的响应式 jQuery 幻灯片插件,它们能够帮助 ...
- 八款强大的jQuery图片滑块动画插件
jQuery是一款相当轻巧的JavaScript框架,目前几乎每一个WEB项目都在使用jQuery,因为jQuery插件实在太丰富,尤其是 一些图片滑块插件和jQuery焦点图插件,更是多如牛毛,很多 ...
- Jquery图片上传组件,支持多文件上传
Jquery图片上传组件,支持多文件上传http://www.jq22.com/jquery-info230jQuery File Upload 是一个Jquery图片上传组件,支持多文件上传.取消. ...
- 适应手机端的jQuery图片滑块动画DEMO演示
在线预览 下载地址 实例代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...
- 精心挑选10款优秀的 jQuery 图片左右滚动插件
在现代的网页设计中,图片和内容滑块是一种极为常见和重要的元素.你可以从头开始编写自己的滑动效果,但是这将浪费很多时间,因为网络上已经有众多的优秀的 jQuery 滑块插件.当然,如果要从大量的 jQu ...
- Cropper – 简单的 jQuery 图片裁剪插件
Cropper 是一个简单的 jQuery 图像裁剪插件.它支持选项,方法,事件,触摸(移动),缩放,旋转.输出的裁剪数据基于原始图像大小,这样你就可以用它们来直接裁剪图像. 如果你尝试裁剪跨域图像, ...
- 美女jquery图片播放器插件
相册在线查看http://keleyi.com/keleyi/phtml/image/6.htm 可全屏,可拖动,可自动播放的jquery图片展示插件 使用说明:1.引用css文件:<link ...
随机推荐
- Hdoj 1087.Super Jumping! Jumping! Jumping!
Problem Description Nowadays, a kind of chess game called "Super Jumping! Jumping! Jumping!&quo ...
- Hdoj 2109.Fighting for HDU 题解
Problem Description 在上一回,我们让你猜测海东集团用地的形状,你猜对了吗?不管结果如何,都没关系,下面我继续向大家讲解海东集团的发展情况: 在最初的两年里,HDU发展非常迅速,综合 ...
- Ubuntu相关配置
1.Ubuntu配置root密码 2.开机ssh连接--nat 编辑网络设置端口转发
- linux统计使用最多的10个命令
# cat /root/.bash_history | awk '{print $1}' | sort | uniq -c | sort -nr | head history 查看命令历史 ...
- rsync服务部署
构建rsync远程同步----------同步源----------------发起端-------------192.168.1.1 192.168.1.101.配置IP地址并保证互通2.确定备份源 ...
- 使用指针来实现变长数组(VLA)
实现代码: #include <cstdio> #include <cstdlib> void usePtoImplementVLA(int SIZE) { scanf(&qu ...
- ecplise 正则替换技巧
ctrl+f : ctrl+h: 例: 替换 (String)object1.getAttribute("X") (String)object2.getAttribute(&quo ...
- JAVA中循环删除list中元素
文章来源: https://www.cnblogs.com/pcheng/p/5336903.html JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常说的foreach循环) ...
- Macbook外接显示器模糊解决方法
解决方法(此方法经本人测试失败) 下载这个http://www.elias.cn/uploads/Mac/patch-edid.zip.如果链接失效可以使用https://gist.github.co ...
- snmpwalk
什么是snmpwalk?snmpwalk是一个SNMP小程序,它使用SNMP的GETNEXT请求查询指定OID(SNMP协议中的对象标识)入口的所有OID树信息,并显示给用户. snmpwalk的作用 ...