怎样隐藏uploadify上传控件的按钮,然后通过其它控件的事项来触发uploadify控件的文件浏览窗口并现实文件上传功能
2013-09-16 09:41
531 查看
案例地址 http://www.wfos.net
前几天项目要用到一个上传的功能,但却是很扯淡的事,需求是要隐藏uploadify控件生成的上传按钮,然后通过页面上的其它控件的事件来激发uploadify控件的文件浏览窗口并实现上传功能.在园子里面找了很久也去国外的网站搜索了一些居然没有找到实现的方法,后来看了一下uploadify.js和swfobject.js这二个文件试图找出些什么来但却是白费时间
沉思了一个晚上后,突然间想到一个绝好的方法于是乎半夜起来偿试一下,结果居然如我所料.接下先上一张图让大家先看一下是怎样的需求
,第一步主要的作用是用ul标签包裹着object标签,当然在这里不用ul标签也是可以,但是千万要记住一定要让这个包裹着object的标签可以浮动可以让js来动态控制其loaction的值即left和top的座标.
第二步是,设置uploadify控件的属性,这步也是非常重要,这步主要功能是将uploadify的buttonImg的属性值设置为一张1*1像素的透明gif图片这样就可以让这个上传控件实现所谓的“隐藏”功能
接下来就是最后一步,相信写到这里面有点功底的同学就知道第三步要怎么办了,没错就是用js来动态控制包裹着objecj标签的left和top的值,但是千万要记住一定要让这个元素的z-index在上层.这样你在单击控件时候其实你真正单击的还是原来的uploadify的控件而以,只是这个控件被透明化了
最后上一张图
从上图可以看出右键菜单第六项"文件上传"就是要实现的功能,从外表上看你可能会猜想他是一个li标签,其实不然,这个右键菜单是由ul和li组成的,在文件上传这一项其实是空白的,
大家之所以有看到文件上传这个功能其实是uploadify这个控件所定位在这里的.当右键菜单一打开,我就算出其left和top的值,然后在通过计算用JS来控件uploadify这个控件的left和top的值,那么每次我打开的时间这个uploadify控件便会跟随这个右键菜单的移动和移动实现的方法有三
第一步:在上传页面的最后面添加一个ul或div元素用于包裹file控件如下图
但是千万 要记住这个ul或div的元素的属性position的值一定要是:absolute;这样我就可以通过js来控制UL或DIV元素的所在位置,而且这个元素的z-index一定要比其它层 的数据要大这样当单击控件的时候uploadify才能捕获单击事件从而打开文件浏览窗口
完成第一步之后接下来就是要配置uploadify的属性在上一张图
从上张图片中画线的框框 这个buttonImg这个属性想必大家知道他是做什么的,没错就是设定uploadify控件的背景图片.在这里我们设置为一张1*1像素的并且是透明的gif图片,并且设置这个控件的大小 ,大家如果用开发人员工具查看时你会看到这个控件将会被绘制成一个透明的并且有长和宽的一个控件.
前面二步都非常重要是为第三步做铺垫的
第三步:用JS来动态控制uploadify控件的位置让其覆盖在你要想的控件的上面,当单击的时候其实你单击的是uploadif控件而非其它控件.
在这里我是这样实现的,当右键菜单被调用的时候我就计算其出现的left和top的值,然后在通过简单的计算将包裹file控件的ul或div元素的left和top的值设置好.这样就可以随心的欲了
相关文章推荐
- 怎样隐藏uploadify上传控件的按钮,然后通过其它控件的事项来触发uploadify控件的文件浏览窗口并现实文件上传功能
- file 标签上传文件,直接样式太难看!隐藏它,通过别的按钮触发它,又会有IE兼容问题。
- 在页面中,我们经常看到,一个button按钮,如果属标点击,就会触发一个窗口的显示,如果二次点击并可以隐藏,那么如何通过JAVA配合html来实现这一功能呢?
- 将html中的<input type="file" />(选择文件) 元素隐藏,并通过其它方式触发点击。file input 美化
- 解决第二次弹出上传窗口 上传控件的异常(无浏览按钮)
- jQuery改变file文件上传控件”浏览“按钮样式
- 解决模态弹出窗口与上传文件控件(uploadify)的冲突问题
- 在IE中必须点击input file 控件的浏览按钮才能提交上传,否则没有权限 。js文件报拒绝访问,解决办法是将input file控件定位到你要点击的地方 ,并且input file做成透明的
- input file 文件上传控件隐藏后用button触发它的click事件文件传不上去的解决方案
- HTML通过button触发input-file控件上传文件的问题
- 在C#.net中做页面上传的程序。用Dhtml的控件:(创建文件上载控件,该控件带有一个文本框和一个浏览按钮。)和类HtmlInputFile的两种方法
- 文件上传控件浏览按钮只读
- 文件上传控件Uploadify
- asp.net 通过HtmlInputFile控件上传文件的类
- 在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件
- html表单上传文件的"浏览"按钮
- 在PHP中通过POST方法实现文件上传功能
- jQuery上传文件控件Uploadify使用
- [原创]ExtAspNet新春贺岁版 - 文件上传控件、复选框列表控件、完善布局管理、表格的行扩展列、完整的100多个中文示例、30多处BUG修正与功能增强、《ExtAspNet秘密花园》系列文章
- asp.net 点击一个按钮弹出对话框选择文件然后选择文件完成之后就自动上传文件 input(file)