CoolFace
Apppublic

soiz1/map-editor

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
marker.html149 linesDownload Raw Back to root
1 2<!DOCTYPE html>3<html lang="ja">4<head>5    <meta charset="UTF-8">6    <meta name="viewport" content="width=device-width, initial-scale=1.0">7    <title>画像ダウンロード</title>8    <style>9        body {10            font-family: Arial, sans-serif;11            background-color: #f4f4f9;12            margin: 0;13            padding: 0;14            display: flex;15            flex-wrap: wrap;16            justify-content: center;17            gap: 20px;18            padding: 20px;19        }20 21        .image-box {22            border: 2px solid #ddd;23            border-radius: 10px;24            padding: 15px;25            background-color: #fff;26            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);27            text-align: center;28            max-width: 300px;29            transition: transform 0.2s ease, box-shadow 0.2s ease;30        }31 32        .image-box:hover {33            transform: translateY(-5px);34            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);35        }36 37        .image-box img {38            height: 100px;39            width: auto; 40            border-radius: 5px;41            object-fit: cover;42        }43 44        .download-button, .copy-button {45            margin-top: 10px;46            display: inline-block;47            padding: 12px 25px;48            background-color: #4CAF50;49            color: white;50            text-decoration: none;51            border-radius: 25px;52            font-size: 16px;53            transition: background-color 0.3s ease, transform 0.2s ease;54        }55        .copy-button{56            background-color: #4287f5 !important;57            cursor: pointer;58        }59 60        .download-button:hover, .copy-button:hover {61            background-color: #45a049;62            transform: translateY(-2px);63 64        }65 66        #loading {67            position: fixed;68            top: 0;69            left: 0;70            width: 100%;71            height: 100%;72            background-color: rgba(255, 255, 255, 0.8);73            display: flex;74            justify-content: center;75            align-items: center;76            font-size: 24px;77            color: #333;78            z-index: 1000;79            transition: opacity 1s ease, visibility 1s ease; /* フェードアウトのためのスタイル */80        }81 82        #loading.hidden {83            opacity: 0;84            visibility: hidden;85        }86    </style>87</head>88<body>89 90<!-- ローディング表示 -->91<div id="loading">Loading...</div>92 93<script>94let number = 60;  // 画像の数95let imagesLoaded = 0;  // 読み込まれた画像の数96 97for (let i = 1; i <= number; i++) {98    let imageBox = document.createElement('div');99    imageBox.className = 'image-box';100 101    let img = document.createElement('img');102    img.src = location.origin + "/marker/" + i + ".png";103    img.alt = "画像";104 105    img.onload = function() {106        imagesLoaded++;107        if (imagesLoaded === number) {108            setTimeout(function() {109                document.getElementById('loading').classList.add('hidden');110            }, 500);111        }112    };113 114    // ダウンロードリンクを作成(ループ内に配置)115    let downloadLink = document.createElement('a');116    downloadLink.href = img.src;  // 画像のURLを直接指定117    downloadLink.download = 'marker_' + i + '.png';118    downloadLink.className = 'download-button';119    downloadLink.textContent = 'ダウンロード';120 121    // コピーリンクボタンを作成(ループ内に配置)122    let copyButton = document.createElement('button');123    copyButton.className = 'copy-button';124    copyButton.textContent = 'URLをコピー';125    126    copyButton.onclick = function() {127        navigator.clipboard.writeText(img.src).then(function() {128            alert('URLがコピーされました: \n' + img.src);129        }).catch(function(err) {130            alert('コピーに失敗しました: ' + err);131        });132    };133 134    // 各要素を `imageBox` に追加135    imageBox.appendChild(img);136    imageBox.appendChild(document.createElement('br'));137    imageBox.appendChild(downloadLink);138    imageBox.appendChild(document.createElement('br'));139    imageBox.appendChild(copyButton);140 141    // `body` に `imageBox` を追加142    document.body.appendChild(imageBox);143}144</script>145 146 147</body>148</html>149