=波波日志 > JavaScript/Ajax > 自定义上传控件样式=
自定义上传控件样式
有些时候我们不需要默认的上传控件input=file的样式,而是现实自定义的样式和文字,而不是单一的“浏览...”样式,我们可以使用浮动层来实现。
原理:将上传控件input=file设置为透明的,然后添加2个控件。
1)一个在上传控件input=file的“浏览...”按钮下面,因为上传控件input=file是透明的,所以看到的是这个自己定义的控件,不过注意大小和位置要和上传控件input=file的“浏览...”一致。
2)一个放置在上传控件input=file控件的输入区域,遮盖住输入区域,防止点击输入部分显示光标。要不即使透明点击输入部分还是会显示光标。
大概的效果代码如下
原理:将上传控件input=file设置为透明的,然后添加2个控件。
1)一个在上传控件input=file的“浏览...”按钮下面,因为上传控件input=file是透明的,所以看到的是这个自己定义的控件,不过注意大小和位置要和上传控件input=file的“浏览...”一致。
2)一个放置在上传控件input=file控件的输入区域,遮盖住输入区域,防止点击输入部分显示光标。要不即使透明点击输入部分还是会显示光标。
大概的效果代码如下
+展开
-HTML
<iframe name="upload_target" id="upload_target" style="display:none"></iframe>
<form action="upload.php" method="post" enctype="multipart/form-data" target="upload_target" name="docFrm">
<div style="position:relative;width:225px;"> <!--下面3个控件的位置不要更改,但是另外2个控件如何遮盖住file控件,如果在你的浏览器上有差异,自己调下style属性-->
<input type="button" value="选择文件" style="position:absolute;right:0px;" /><!--显示给用户看的,注意按钮大小要和file的浏览基本一致,要不点击其他这个按钮的其他区域可能无法弹出选择文件窗口-->
<input name="myfile" type="file" onchange="postFrm(this)" style="position:relative;opacity:0;filter:alpha(opacity=0)" /><!--透明file控件-->
<div style="position:absolute;height:25px;width:150px;background:#fff;top:0px;left:0px;"></div><!--这个遮盖住file控件前面的输入框,要不即使透明了点击输入部分会显示光标-->
</div>
</form>
<script type="text/javascript">
function postFrm(fl){
document.docFrm.submit();//提交由file控件的表单
//重新设置file控件容器的innerHTML清空file控件的vlaue属性
fl.parentNode.innerHTML=fl.parentNode.innerHTML;
}
</script>
<form action="upload.php" method="post" enctype="multipart/form-data" target="upload_target" name="docFrm">
<div style="position:relative;width:225px;"> <!--下面3个控件的位置不要更改,但是另外2个控件如何遮盖住file控件,如果在你的浏览器上有差异,自己调下style属性-->
<input type="button" value="选择文件" style="position:absolute;right:0px;" /><!--显示给用户看的,注意按钮大小要和file的浏览基本一致,要不点击其他这个按钮的其他区域可能无法弹出选择文件窗口-->
<input name="myfile" type="file" onchange="postFrm(this)" style="position:relative;opacity:0;filter:alpha(opacity=0)" /><!--透明file控件-->
<div style="position:absolute;height:25px;width:150px;background:#fff;top:0px;left:0px;"></div><!--这个遮盖住file控件前面的输入框,要不即使透明了点击输入部分会显示光标-->
</div>
</form>
<script type="text/javascript">
function postFrm(fl){
document.docFrm.submit();//提交由file控件的表单
//重新设置file控件容器的innerHTML清空file控件的vlaue属性
fl.parentNode.innerHTML=fl.parentNode.innerHTML;
}
</script>
类别:JavaScript/Ajax 作者:波波 日期:2010-08-17 【评论:0】
上一篇:jquery autocomplete 使用说明文档
下一篇:uncaught exception: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIDOMHTMLFormElement.submit]" nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)" location: "JS frame :: :: anonymous :: line 11" data: no]
下一篇:uncaught exception: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIDOMHTMLFormElement.submit]" nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)" location: "JS frame :: :: anonymous :: line 11" data: no]
暂时没有评论!
发表留言
百度赞助
同类热门博文
- ·AJAX跨域问题解决办..
- ·ajax问题总结
- ·jQuery dataType指定..
- ·ajax+asp.net+mssql..
- ·ajax无刷新上传文件..
- ·ajax对象abort方法
- ·JavaScript代码,变..
- ·fckeditor编辑器在F..
博格Tag
- flash/flex/fcs/AIR(752)
- Asp.Net/C#/WCF(598)
- 操作系统及应用软件(376)
- JavaScript/Ajax(330)
- SQL及数据库(134)
- 黑客技术(115)
- Asp/VBScript(111)
- HTML/WML/CSS兼容/XML(102)
- PHP/apache/Perl(96)
- 网站排名及优化(96)
- 其他(75)
- showbo日志(66)
- lucene.net/分词技术(33)
- 计算机网络(26)
- 机械重工(26)
- C#设计模式(25)
- Google Maps开发(17)
- 日语学习(15)
- Canvas/VML/SVG(13)
- linux(11)
- 游戏开发(8)
- 正则表达式(5)
- Jsp/Java(4)
最新博文
- ·javascript实现html..
- ·Javascript风格要素..
- ·Javascript风格要素
- ·动态加载JavaScript
- ·JavaScript陷阱
- ·ajax技巧
- ·IE对CSS样式表的限制..
- ·什么是Javascript匿..
随机博文
