120 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!DOCTYPE html>
 | 
						|
<html>
 | 
						|
<head>
 | 
						|
    <title>Cloud Upload Icon</title>
 | 
						|
    <style>
 | 
						|
        #box {
 | 
						|
            width: 20rem;
 | 
						|
            height: 5rem;
 | 
						|
            backdrop-filter: blur(5px);
 | 
						|
            background-color: rgb(252, 252, 252);
 | 
						|
            border-radius: 1em;
 | 
						|
            border: 1px solid rgb(241, 241, 241);
 | 
						|
            position: relative;
 | 
						|
            user-select: none;
 | 
						|
            cursor: pointer;
 | 
						|
            margin: 1rem 2rem;
 | 
						|
        }
 | 
						|
        #box:hover > #drop {
 | 
						|
            display: block;
 | 
						|
        }
 | 
						|
 | 
						|
        #cloud {
 | 
						|
            width: 82px;
 | 
						|
            height: 30px;
 | 
						|
            background: #e7f4fd;
 | 
						|
            background: -webkit-linear-gradient(top,#e7f4fd 5%,#ceedfd 100%);
 | 
						|
            border-radius: 25px;
 | 
						|
            position: relative;
 | 
						|
            margin: 33px auto 5px;
 | 
						|
        }
 | 
						|
        #cloud:before {
 | 
						|
            width: 45px;
 | 
						|
            height: 45px;
 | 
						|
            top: -22px;
 | 
						|
            right: 12px;
 | 
						|
            border-radius: 50px;
 | 
						|
        }
 | 
						|
        #cloud:after {
 | 
						|
            width: 25px;
 | 
						|
            height: 25px;
 | 
						|
            top: -12px;
 | 
						|
            left: 12px;
 | 
						|
            border-radius: 25px;
 | 
						|
        }
 | 
						|
        #cloud:before,
 | 
						|
        #cloud:after {
 | 
						|
            content: "";
 | 
						|
            background: #e7f4fd;
 | 
						|
            position: absolute;
 | 
						|
            z-index: -1;
 | 
						|
        }
 | 
						|
        #cloud span {
 | 
						|
            width: 87px;
 | 
						|
            position: absolute;
 | 
						|
            bottom: -2px;
 | 
						|
            background: #000;
 | 
						|
            z-index: -1;
 | 
						|
            box-shadow: 0 0 6px 2px rgba(0,0,0,0.1);
 | 
						|
            border-radius: 50%;
 | 
						|
        }
 | 
						|
 | 
						|
        #drop {
 | 
						|
            width: 100%;
 | 
						|
            color: #999;
 | 
						|
            line-height: 5rem;
 | 
						|
            text-align: center;
 | 
						|
            position: absolute;
 | 
						|
            top: 0;
 | 
						|
            display: none;
 | 
						|
        }
 | 
						|
    </style>
 | 
						|
    <script>
 | 
						|
        onload = () => {
 | 
						|
            const file = document.createElement('input')
 | 
						|
            file.type = 'file'
 | 
						|
            file.onchange = event => {
 | 
						|
                for (const i of file.files) {
 | 
						|
                    console.log('已获取文件:', i)
 | 
						|
                }
 | 
						|
                file.value = null
 | 
						|
            }
 | 
						|
 | 
						|
            box.onclick = () => file.click()
 | 
						|
 | 
						|
            let dragStats = 0
 | 
						|
            document.ondragover = e => {
 | 
						|
                e.preventDefault()
 | 
						|
                if(dragStats) return
 | 
						|
                drop.style.display = 'block'
 | 
						|
            }
 | 
						|
 | 
						|
            document.ondragleave = e => {
 | 
						|
                e.preventDefault()
 | 
						|
                if(dragStats) return
 | 
						|
                dragStats = setTimeout(() => {
 | 
						|
                    dragStats = 0
 | 
						|
                    drop.style.display = ''
 | 
						|
                }, 1000)
 | 
						|
            }
 | 
						|
 | 
						|
            document.ondrop = e => {
 | 
						|
                e.preventDefault()
 | 
						|
                dragStats = 0
 | 
						|
                drop.style.display = ''
 | 
						|
                const files = e.dataTransfer.files
 | 
						|
                for (const i of files) {
 | 
						|
                    console.log('已获取文件:', i)
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    </script>
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
    <div id="box">
 | 
						|
        <div id="cloud"><span></span></div>
 | 
						|
        <span id="drop">点击或拖拽音乐到此处共享您的音乐</span>
 | 
						|
    </div>
 | 
						|
</body>
 | 
						|
</html>
 |