js+css实现浏览器mp4视频转gif图片代码

代码语言:html

所属分类:多媒体

代码描述:js+css实现浏览器mp4视频转gif图片代码

代码标签: js css 浏览器 mp4 视频 gif 图片 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>GIForge - 视频转GIF工具</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
    <script>
        tailwind.config = {
            theme: {
                extend: {
                    colors: {
                        deep: '#06060e',
                        base: '#0c0c18',
                        card: '#14142a',
                        'card-h': '#1a1a36',
                        bdr: '#28284a',
                        'bdr-a': '#48488a',
                        accent: '#00e68a',
                        'accent-d': '#00b36b',
                        txt: '#e4e4f0',
                        'txt-d': '#7070a0',
                        danger: '#ff4466',
                        warn: '#ffaa22',
                    },
                    fontFamily: {
                        sans: ['"Noto Sans SC"', 'sans-serif'],
                        mono: ['"JetBrains Mono"', 'monospace'],
                    }
                }
            }
        }
    </script>
    <style>
        :root {
            --accent: #00e68a;
            --accent-glow: rgba(0,230,138,0.12);
        }
        * { box-sizing: border-box; }
        body { background: #06060e; color: #e4e4f0; font-family: 'Noto Sans SC', sans-serif; }
        ::-webkit-scrollbar { width: 6px; }
        ::-webkit-scrollbar-track { background: #0c0c18; }
        ::-webkit-scrollbar-thumb { background: #28284a; border-radius: 3px; }
        ::-webkit-scrollbar-thumb:hover { background: #48488a; }

        /* 背景网格动画 */
        .bg-grid {
            background-image:
                linear-gradient(rgba(0,230,138,0.03) 1px, transparent 1px),
                linear-gradient(90deg, rgba(0,230,138,0.03) 1px, transparent 1px);
            background-size: 60px 60px;
            animation: gridMove 20s linear infinite;
        }
        @keyframes gridMove {
            0% { background-position: 0 0; }
            100% { background-position: 60px 60px; }
        }

        /* 拖拽区域虚线流动 */
        .drop-zone {
            border: 2px dashed #28284a;
            transition: all 0.3s;
            position: relative;
        }
        .drop-zone::before {
            content: '';
            position: absolute;
            inset: -2px;
            border: 2px dashed transparent;
            border-radius: inherit;
            pointer-events: none;
        }
        .drop-zone.dragover {
            border-color: var(--accent);
            background: var(--accent-glow);
            box-shadow: 0 0 40px rgba(0,230,138,0.08);
        }
        .drop-zone:hover { border-color: #48488a; }

        /* 流光边框 */
        .glow-border {
            position: relative;
            overflow: hidden;
        }
        .glow-border::after {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: conic-gradient(from 0deg, transparent, var(--accent), transparent, transparent);
            animation: glowRotate 4s linear infinite;
            opacity: 0;
            transition: opacity 0.3s;
        }
        .glow-border:hover::after { opacity: 0.15; }
        @keyframes glowRotate { to { transform: rotate(360deg); } }

        /* 进度条 */
        .progress-bar {
            background: linear-gradient(90deg, #00e68a, #00b36b, #00e68a);
            background-size: 200% 100%;
            animation: progressShine 1.5s ease infinite;
        }
        @keyframes progressShine {
            0% { background-position: 200% 0; }
            100% { background-position: -200% 0; }
        }

        /* 输入框样式 */
        .param-input {
            background: #0c0c18;
            border: 1px solid #28284a;
            color: #e4e4f0;
            border-radius: 8px;
            padding: 8px 12px;
            font-size: 14px;
            transition: border-color 0.2s;
            width: 100%;
        }
        .param-input:focus {
            outline: none;
            border-color: var(--accent);
            box-shadow: 0 0 0 3px rgba(0,230,138,0.1);
        }

        /* range slider */
      .........完整代码请登录后点击上方下载按钮下载查看

网友评论0