在javascript中单击按钮时显示和不显示图像

在javascript中单击按钮时显示和不显示图像,javascript,html,jquery,css,django,Javascript,Html,Jquery,Css,Django,因此,我有一个文件按钮,让用户选择一个视频上传,另一个按钮,上传视频,但当一个视频被选中,预览必须出现在上传之前。问题是,即使没有选择视频,视频应该在哪里也有很大的空间,目标是如果没有单击视频按钮,视频应该显示:没有,但如果单击,视频也会显示。这就像facebook的视频或图像预览 const realFileBtn=document.getElementById(“id_视频”); const customBtn=document.getElementById(“custom-b”); cu

因此,我有一个文件按钮,让用户选择一个视频上传,另一个按钮,上传视频,但当一个视频被选中,预览必须出现在上传之前。问题是,即使没有选择视频,视频应该在哪里也有很大的空间,目标是如果没有单击视频按钮,视频应该显示:没有,但如果单击,视频也会显示。这就像facebook的视频或图像预览

const realFileBtn=document.getElementById(“id_视频”);
const customBtn=document.getElementById(“custom-b”);
customBtn.addEventListener(“单击”,函数(){
realFileBtn.click();
});
$(文档).on(“更改”、.file\u multi\u video”,函数(evt){
var$source=$(“#这里是视频”);
$source[0].src=URL.createObjectURL(this.files[0]);
$source.parent()[0].load();
});
输入{
边界:无;
顺序:0;
字体系列:无衬线;
填充物:5px;
边界半径:7.5px;
宽度:100%;
高度:35px;
显示器:flex;
}
#定制b{
边界:无;
字体系列:无衬线;
填充物:5px;
顺序:1;
边界半径:7.5px;
宽度:15%;
显示器:flex;
证明内容:中心;
}
.预览图像{
宽度:100%;
身高:100%;
显示器:flex;
顺序:0;
填充顶部:8px;
垫底:8px;
自对准:居中;
}
.上传.提交按钮{
边界:无;
字体系列:无衬线;
填充物:5px;
顺序:2;
显示器:flex;
边界半径:7.5px;
宽度:100%;
边缘顶部:16px;
证明内容:中心;
}

视频

保存
只需对代码进行最少的修改,就可以使用jQuery的“隐藏”/“显示”功能

为此,您需要开始以不可见状态加载元素,就像这些函数使用“display:none”样式所做的那样。然后,您可以根据是否选择了文件来调用正确的函数

正如你在下面看到的

const realFileBtn=document.getElementById(“id_视频”);
const customBtn=document.getElementById(“custom-b”);
customBtn.addEventListener(“单击”,函数(){
realFileBtn.click();
});
$(文档).on(“更改”、.file\u multi\u video”,函数(evt){
var$source=$(“#这里是视频”);
var$source_parent=$source.parent();
//确保已选择一个文件
if(this.files[0]!==未定义){
$source[0].src=URL.createObjectURL(this.files[0]);
$source_parent[0]。加载();
$source_parent.show();
}否则{
$source_parent.hide();
}
});
输入{
边界:无;
顺序:0;
字体系列:无衬线;
填充物:5px;
边界半径:7.5px;
宽度:100%;
高度:35px;
显示器:flex;
}
#定制b{
边界:无;
字体系列:无衬线;
填充物:5px;
顺序:1;
边界半径:7.5px;
宽度:15%;
显示器:flex;
证明内容:中心;
}
.预览图像{
宽度:100%;
身高:100%;
显示器:flex;
顺序:0;
填充顶部:8px;
垫底:8px;
自对准:居中;
}
.上传.提交按钮{
边界:无;
字体系列:无衬线;
填充物:5px;
顺序:2;
显示器:flex;
边界半径:7.5px;
宽度:100%;
边缘顶部:16px;
证明内容:中心;
}

视频

保存
只需对代码进行最少的修改,就可以使用jQuery的“隐藏”/“显示”功能

为此,您需要开始以不可见状态加载元素,就像这些函数使用“display:none”样式所做的那样。然后,您可以根据是否选择了文件来调用正确的函数

正如你在下面看到的

const realFileBtn=document.getElementById(“id_视频”);
const customBtn=document.getElementById(“custom-b”);
customBtn.addEventListener(“单击”,函数(){
realFileBtn.click();
});
$(文档).on(“更改”、.file\u multi\u video”,函数(evt){
var$source=$(“#这里是视频”);
var$source_parent=$source.parent();
//确保已选择一个文件
if(this.files[0]!==未定义){
$source[0].src=URL.createObjectURL(this.files[0]);
$source_parent[0]。加载();
$source_parent.show();
}否则{
$source_parent.hide();
}
});
输入{
边界:无;
顺序:0;
字体系列:无衬线;
填充物:5px;
边界半径:7.5px;
宽度:100%;
高度:35px;
显示器:flex;
}
#定制b{
边界:无;
字体系列:无衬线;
填充物:5px;
顺序:1;
边界半径:7.5px;
宽度:15%;
显示器:flex;
证明内容:中心;
}
.预览图像{
宽度:100%;
身高:100%;
显示器:flex;
顺序:0;
填充顶部:8px;
垫底:8px;
自对准:居中;
}
.上传.提交按钮{
边界:无;
字体系列:无衬线;
填充物:5px;
顺序:2;
显示器:flex;
边界半径:7.5px;
宽度:100%;
边缘顶部:16px;
证明内容:中心;
}

视频
保存