Files
konabot-web/src/routes/makequote/+page.svelte
passthem 7430080f01
All checks were successful
continuous-integration/drone/push Build is passing
补充主元素 ID
2025-11-07 01:18:05 +08:00

58 lines
1.8 KiB
Svelte
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<script lang="ts">
import type { ChangeEventHandler } from "svelte/elements"
let imagePreviewUrl: string | undefined = undefined
let quote: string = '挂科比不挂科南'
let author: string = '宿舍'
const handleFileChange: ChangeEventHandler<HTMLInputElement> = (event) => {
const files = (event.target!! as HTMLInputElement).files
if (files && files.length == 1) {
const file = files[0]
imagePreviewUrl = URL.createObjectURL(file)
} else {
imagePreviewUrl = undefined
}
}
</script>
<header>
<h1 class="text-2xl font-bold">Makequote</h1>
<p>一个生成奇奇怪怪的名人名言句子的服务</p>
<p>
<label for="image">选择文件:</label>
<input
type="file"
id="image"
name="image"
accept="image/*"
class="border cursor-pointer shadow"
required
on:change={handleFileChange}
/>
</p>
<p>
<label for="quote">名言:</label>
<input type="text" id="quote" name="quote" bind:value={quote} />
</p>
<p>
<label for="author">名人:</label>
<input type="text" id="author" name="author" bind:value={author} />
</p>
</header>
<div id="main" class="w-240 h-135 relative bg-green-400 m-20 shadow text-white" style="font-family: 'Noto Sans CJK SC';">
{#if imagePreviewUrl}
<div class="absolute left-0 top-0 h-full w-130 bg-center bg-cover grayscale" style:background-image={`url(${imagePreviewUrl})`}></div>
{/if}
<div class="absolute right-0 top-0 h-full w-180" style="background: linear-gradient(0.25turn, #00000000, #000000 38.89%)">
<div class="box-border ml-70 w-110 h-full flex justify-center items-center px-10">
<div class="w-full">
<h1 class="text-center text-4xl font-bold my-5 wrap-break-word">{quote}</h1>
<p class="text-right"> {author}</p>
</div>
</div>
</div>
</div>