javascript怎么实现新建文件夹
导读:收集整理的这篇文章主要介绍了javascript怎么实现新建文件夹,觉得挺不错的,现在分享给大家,也给大家做个参考。javascript实现新建文件夹的方法:首先创建一个HTML示例文件;然后创建一个新建文件夹的按钮;最后使用js以及DOM...
收集整理的这篇文章主要介绍了javascript怎么实现新建文件夹,觉得挺不错的,现在分享给大家,也给大家做个参考。javascript实现新建文件夹的方法:首先创建一个HTML示例文件;然后创建一个新建文件夹的按钮;最后使用js以及DOM方法实现新建文件夹的功能即可。
本文操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。
JS实现新建文件夹功能
JS 小demo之新建文件夹。
主要知识点:DOM方法的综合运用
!DOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
tITle>
Document/title>
style type="text/css">
body {
margin: 0;
}
header {
border-bottom: 2px solid #000;
height: 40px;
line-height: 40px;
text-align: center;
}
.file {
margin: 20px;
float: left;
position: relative;
width: 100px;
height: 110px;
border-radius: 5px;
border: 1px solid rgba(0, 0, 0, 0);
background: url(img/file.png) no-repeat center 25px;
cursor: pointer;
}
.file input {
position: absolute;
left: 3px;
top: 3px;
display: none;
}
.fileName {
position: absolute;
left: 5px;
bottom: 10px;
width: 90px;
font: 12px/20px Arial,"宋体";
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.fileShow {
border: 1px solid #000;
background-color: #F1f1f1;
}
.fileShow input {
display: block;
}
.info {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 50px;
font: 30px/50px "宋体";
text-align: center;
transform: translateY(-50px);
background: #ccc;
}
/style>
!--contenteditable 使内容可以编辑-->
script type="text/javascript">
window.onload = function(){
VAR creat = document.querySelector('.creat');
var del = document.querySelector('.del');
var wrap = document.querySelector('.wrap');
var info = document.querySelector('.info');
var timer = 0;
creat.onclick = function(){
/* 创建元素,并添加事件 */var file = document.createElement('p');
var fileName = getFileName();
file.classname = "file";
file.innerHTML = 'input type="checkbox" name="">
span class="fileName" contenteditable>
'+fileName+'/span>
';
var check = file.querySelector('input[type = "checkbox"]');
var fileName = file.querySelector('.fileName');
file.onmouseover = function(){
this.className = "file fileShow";
}
;
file.onmouseout= function(){
if(!check.checked){
this.className = "file";
}
}
;
fileName.onblur = function(){
if(this.innerHTML.trim() == ""){
info.innerHTML = "请输入文件夹名字";
info.style.transform = "translateY(0)";
this.focus();
clearTimeout(timer);
timer=setTimeout(function(){
info.style.transform = "translateY(-50px)";
}
,2000);
return;
}
var filenames = document.querySelectorAll('.fileName');
for(var i = 0;
i fileNames.length;
i++){
if(this != fileNames[i]&
&
this.innerHTML == fileNames[i].innerHTML){
info.innerHTML = "文件夹名字重名了,请重新输入";
info.style.transform = "translateY(0)";
this.focus();
clearTimeout(timer);
timer=setTimeout(function(){
info.style.transform = "translateY(-50px)";
}
,2000);
}
}
}
;
/*onkeydown 键盘按下 */fileName.onkeydown = function(){
if(this.innerHTML == "请输入名字"){
this.innerHTML = "";
}
}
wrap.appendChild(file);
}
;
del.onclick = function(){
/* 删除选中的元素 */var fileName = wrap.querySelectorAll('input:checked+.fileName');
var input = wrap.getelementsbytagname("input")/* query方法只获取一次,dom修改了如果不重新获取,它是不会和dom同步的而get方法会时时和dom同步,dom改了get获取到的数据也会自定修改 *///console.LOG(fileName,input);
for(var i = 0;
i fileName.length;
i++){
wrap.removeChild(fileName[i].parentNode);
}
console.log(fileName);
}
;
// 获取文件夹名字/* 创建文件夹名字并进行排序0 新建文件夹1 新建文件夹22 新建文件夹3第一种情况:正常排序*/function getFileName(){
var fileName = "新建文件夹";
var fileNameLast = "";
var fileNames = wrap.querySelectorAll('.fileName');
if(fileNames.length == 0){
//当前一个都还没有也就是创建第0个return fileName;
}
// 当中间可能删除了几个/*由于中间会删除再添加,所以顺序会被打乱把所有的名字存入数组,然后进行排序*/var names = [];
for(var i = 0;
i fileNames.length;
i++){
names.push(fileNames[i].innerHTML);
}
names = names.filter(function(val){
var startName = val.substr(0,5);
if(startName != "新建文件夹"){
return false;
/*筛选掉不是已新建文件夹命名的*/}
var lastName = val.substr(5);
if(isNaN(lastName)){
/*筛选掉不是已新建文件夹跟随的不是数字的*/return false;
}
return true;
}
);
names.sort(function(a,b){
return a.substr(5) - b.substr(5);
}
);
console.log(names);
for(var i = 0;
i names.length;
i++){
if(names[0] != fileName){
return fileName;
}
if(i>
0 &
&
names[i] != fileName+(i+1)){
return fileName+(i+1);
}
}
//当前顺序向后排列 name 就等于在当前的个数上+1fileNameLast = names.length + 1;
fileName += fileNameLast;
return fileName;
}
}
;
/script>
/head>
body>
p class="info">
/p>
header>
input type="button" value="新建文件夹" class="creat" />
input type="button" value="删除文件夹" class="del" />
/header>
p class="wrap">
!-- p class="file fileShow">
input type="checkbox" name="">
span class="fileName">
新建文件夹新建文件夹/span>
/p>
-->
/p>
/body>
/html>
推荐学习:《javascript高级教程》
以上就是javascript怎么实现新建文件夹的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: javascript怎么实现新建文件夹
本文地址: https://pptw.com/jishu/591765.html
