用HTML,css,js写一个一把弓箭射中爱心,不能使用图片,而且射中爱心后爱心会变成文字,月华丽越好
时间: 2024-11-16 14:27:47 浏览: 7
要用HTML、CSS和JavaScript创建这个交互式的元素,我们可以结合SVG图形和一些基本动画效果来实现。下面是一个简单的示例:
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<style>
.arrow {
position: absolute;
width: 50px; height: 10px;
background-color: #FFA500; /* 箭头颜色 */
border-radius: 10px 0 0 10px;
transition: transform 0.3s ease-out;
}
.heart {
position: absolute;
top: 75px; left: 50%; transform: translateX(-50%);
width: 100px; height: 100px;
border-radius: 50%;
background-color: #F44336; /* 爱心颜色 */
display: flex; justify-content: center; align-items: center;
font-size: 30px; color: white;
cursor: pointer;
user-select: none;
}
.hit-heart {
transform: scale(1.5);
animation: glow 1s infinite alternate;
}
@keyframes glow {
0% {opacity: 1;}
50% {opacity: 0.5;}
100% {opacity: 1;}
}
</style>
</head>
<body>
<div class="arrow" onclick="shootArrow(event)"></div>
<div class="heart" id="target">❤️</div>
<script>
function shootArrow(e) {
const target = document.getElementById('target');
if (!e.target.classList.contains('arrow')) {
target.classList.add('hit-heart');
setTimeout(() => {
target.textContent = '命中!';
target.style.animation = '';
}, 1000);
}
}
</script>
</body>
</html>
```
在这个例子中:
- `.arrow`元素代表弓箭,点击时触发`shootArrow`函数。
- `.heart`元素作为目标,点击后添加`.hit-heart`类并逐渐缩小,同时应用动画效果显示为闪烁,最后变为文字“命中!”。
请注意,此代码只是一个基础示例,实际的效果可能会更复杂,包括箭矢飞行路径、击中效果等。如果你想让体验更华丽,可以尝试使用CSS动画、SVG轨迹线以及响应式设计优化用户体验。
阅读全文