是否可以使用简单的CSS样式按钮替换Uploadify按钮(包含上/下/下状态的图形)?
答案 0 :(得分:32)
我能够通过更简单的方式逃脱。
XHTML:
<div id="uploadify">
Upload Pictures
<div id="uploadify" type="button" />
</div>
的CSS:
#uploadify object {
position:absolute;
left:0; right:0;
width:100%
}
的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();
可能有点容易,现在我们有hideButton: true
,不确定@Herb是否知道它。
更新我在2010年7月写了这个答案。现在是2013年3月.HTML5支持多个文件上传。根本不要使用uploadify;我没有。
答案 1 :(得分:21)
我已经能够为此提出一个有效的解决方案。这是基本概要:
buttonImg: " "
wmode:"transparent"
button
或a
标记flash对象将屏蔽其下方的按钮以防鼠标等事件;所以得到 悬停效果,你需要采取一些额外的步骤:
.hover()
事件并将样式应用于按钮全部放在一起:
HTML
<div class="UploadifyButtonWrapper">
<a>Upload Files</a>
<div class="UploadifyObjectWrapper">
<input type="file" id="Uploadify" name="Uploadify" />
</div>
</div>
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;
}
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");
});
答案 2 :(得分:7)
为什么不像这样只放一个Wrapper:
<div class = "uploadWrapper"><input id="file_upload" name="file_upload" type="file" /></div>
样式就像这样:
.uploadWrapper object {background-color: red;}
.uploadWrapper object:hover {background-color: blue;}
并使用以下脚本:
<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>
适合我;) ......当然,您可以使用背景图像而不是颜色。
答案 3 :(得分:4)
100%工作示例。在Firefox,Chrome,Opera和IE6中测试过!
HTML:
<div id="uploadify-wrapper"><div id="uploadify"></div></div>
<span id="btn">Select files to upload</span>
<div id="uploadify-queue"></div>
CSS:
#uploadify-wrapper {position:absolute; overflow:hidden}
JavaScript的:
$('#uploadify').uploadify({width:1000, height:1000, hideButton:true, wmode:'transparent', queueID:'uploadify-queue', ...);
$('#uploadify-wrapper').width($('#btn').outerWidth()).height($('#btn').outerHeight());
答案 4 :(得分:2)
阅读你的答案帮助我以这种方式解决这个问题
<input>
打包成<div class=upload-wrap>
<强> HTML:强>
<div class="upload-wrap">
<input id="file_upload" type="file" name="file_upload" />
</div>
<强> CSS:强>
.upload-wrap{
background:#ff0;
width:133px;
height:36px;
}
.upload-wrap:hover{
background:#f00;
}
<强> JS 强>
$('#file_upload').uploadify({
'uploader' : 'uploadify/uploadify.swf',
'script' : 'uploadify/uploadify.php',
'folder' : 'files/images',
'hideButton' : true,
'wmode' : 'transparent',
'buttonText' : 'Upload something'
'width' : 133,
'height' : 36
});
通过这种方式,您可以设置按钮的样式,并保持buttonText选项可用。我还必须使用.fla文件稍微弄清楚我的按钮的颜色和字体
答案 5 :(得分:2)
一种非常简单的方法是使用Flash打开文件
然后,您可以更改符号UploadBtn
的背景颜色保存并发布swf。
答案 6 :(得分:2)
CSS:
#uploadify {
background: #FF5500;
border-radius: 5px;
}
#uploadify:hover {
background: #B33C00;
}
#uploadify object {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 25px;
}
你可能想在这里微调高度,因为它确实很重要。此外,我从顶部和左侧对齐它,而不是从另一个示例左右对齐。我在那里留下了一些造型,作为如何设置按钮包装样式的示例。
HTML:
<div id="uploadify" style="position: relative;">
Upload Screenshots
<div id="uploadify_button" type="button"></div>
</div>
相对位置对于内部绝对定位按钮很重要。
JavaScript的:
$("#uploadify_button").uploadify({
'hideButton' : true,
'wmode' : 'transparent',
'uploader' : '/static/uploadify/uploadify.swf',
'script' : '/static/uploadify.php',
'folder' : '/_uploads',
'multi' : true,
'width' : '140',
'height' : '25'
});
宽度和高度非常重要,因为它们决定了按钮div中的实际可点击区域。我发现如果没有这些,它只能在某个区域内点击。
答案 7 :(得分:2)
萨拉姆。
for Uploadify Version 3.2.1:
您可以在此类中编辑样式表文件uploadify.css
:
在我的情况下,我评论它们的所有样式以删除按钮的背景和边框,默认按钮完全隐藏。