Eva*_*oll 32
我能够通过更简单的东西逃脱.
XHTML:
<div id="uploadify">
Upload Pictures
<div id="uploadify" type="button" />
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
#uploadify object {
position:absolute;
left:0; right:0;
width:100%
}
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
$("#uploadify>div").uploadify({
'hideButton' : true
, 'wmode' : 'transparent'
, 'uploader' : '/static/uploadify/uploadify.swf'
, 'script' : '/static/uploadify.php'
, 'folder' : '/_uploads'
, 'multi' : true
})
// If you're using jQuery UI.
$("#uploadify").button();
Run Code Online (Sandbox Code Playgroud)
可能有点容易,现在我们有hideButton: true,不确定@Herb是否知道它.
更新我在2010年7月写了这个答案.现在是2013年3月.HTML5支持多个文件上传.根本不要使用uploadify; 我不.
Her*_*ill 21
我已经能够为此提出一个有效的解决方案.这是基本的大纲:
buttonImg: " "wmode:"transparent"button或a标签flash对象将屏蔽其下方的按钮以防鼠标等事件; 所以要获得悬停效果,你需要采取一些额外的步骤:
.hover()包装器div上的事件,并将样式应用于按钮把它们放在一起:
HTML
<div class="UploadifyButtonWrapper">
<a>Upload Files</a>
<div class="UploadifyObjectWrapper">
<input type="file" id="Uploadify" name="Uploadify" />
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
div.UploadifyButtonWrapper{
position:relative;
}
/* fake button */
div.UploadifyButtonWrapper a {
position:absolute; /* relative to UploadifyButtonWrapper */
top:0;
left:0;
z-index:0;
display:block;
float:left;
border:1px solid gray;
padding:10px;
background:silver;
color:black;
}
/* pass hover effects to button */
div.UploadifyButtonWrapper a.Hover {
background:orange;
color:white;
}
/* position flash button above css button */
div.UploadifyObjectWrapper {
position:relative;
z-index:10;
}
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
$("input.Uploadify", self).uploadify({
...
buttonImg: " ",
wmode: "transparent",
...
});
var $buttonWrapper = $(".UploadifyButtonWrapper", self);
var $objectWrapper = $(".UploadifyObjectWrapper", self);
var $object = $("object", self);
var $fakeButton = $("a", self);
var width = $fakeButton.outerWidth();
var height = $fakeButton.outerHeight();
$object.attr("width", width).attr("height", height);
$buttonWrapper.css("width", width + "px").css("height", height + "px")
$objectWrapper.hover(function() {
$("a", this).addClass("Hover");
}, function() {
$("a", this).removeClass("Hover");
});
Run Code Online (Sandbox Code Playgroud)
为什么不像这样在它周围放一个Wrapper:
<div class = "uploadWrapper"><input id="file_upload" name="file_upload" type="file" /></div>
Run Code Online (Sandbox Code Playgroud)
样式就像这样:
.uploadWrapper object {background-color: red;}
.uploadWrapper object:hover {background-color: blue;}
Run Code Online (Sandbox Code Playgroud)
并使用以下脚本:
<script type="text/javascript">
$(document).ready(function() {
$('#file_upload').uploadify({
'hideButton': true,
'wmode' : 'transparent',
'uploader' : '/uploadify/uploadify.swf',
'script' : '/uploadify/uploadify.php',
'cancelImg' : '/uploadify/cancel.png',
'folder' : '/uploads',
'auto' : true
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
适合我;)...当然你可以使用背景图像而不是颜色.