如何实现在范围内随机位置显示随机图片,然后缩小直到一定大小后不再改变
2条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
要实现在HTML页面上随机位置显示随机图片,并且在加载后图片会逐渐缩小至特定尺寸后停止,可以采用以下步骤:
-
准备图片资源:确保你有多个图片文件,将它们放置在你的项目目录中。
-
编写HTML结构:创建一个
<div>
元素用于包含图片,这个<div>
将被用来控制图片的位置和缩放效果。 -
使用CSS设置样式:定义
<div>
和<img>
的样式,包括初始位置、尺寸和过渡动画。 -
编写JavaScript逻辑:利用JavaScript来处理图片的选择、定位以及动画效果。
步骤详解及代码实现
1. HTML结构
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Random Image Display</title> <link rel="stylesheet" href="styles.css"> </head> <body> <div id="imageContainer"> <img id="randomImage" src="" alt="Random Image"> </div> <script src="script.js"></script> </body> </html>
2. CSS样式
/* styles.css */ #imageContainer { position: relative; width: 100%; height: 100vh; } #randomImage { position: absolute; transition: transform 2s ease-in-out; }
3. JavaScript逻辑
// script.js document.addEventListener('DOMContentLoaded', function() { const imageContainer = document.getElementById('imageContainer'); const randomImage = document.getElementById('randomImage'); // 图片数组 const images = ['image1.jpg', 'image2.jpg', 'image3.jpg']; // 随机选择图片 const randomImageSrc = images[Math.floor(Math.random() * images.length)]; randomImage.src = randomImageSrc; // 随机位置 const maxLeft = window.innerWidth - randomImage.width; const maxTop = window.innerHeight - randomImage.height; const leftPos = Math.floor(Math.random() * maxLeft); const topPos = Math.floor(Math.random() * maxTop); randomImage.style.left = leftPos + 'px'; randomImage.style.top = topPos + 'px'; // 缩小图片到指定大小 const targetSize = 100; // 目标宽度和高度 setTimeout(() => { randomImage.style.transform = `scale(${targetSize / randomImage.width})`; }, 2000); // 2秒后执行 });
解释:
- HTML:创建了包含图片的
<div>
。 - CSS:设置了
<div>
为相对定位,图片为绝对定位并添加了过渡动画。 - JavaScript:
- 监听文档加载完成事件。
- 随机选择图片源并应用到
<img>
标签。 - 计算随机位置并应用到图片。
- 使用
setTimeout
函数在2秒后缩小图片到目标尺寸。
这样,当页面加载时,将在随机位置显示一张随机图片,并在2秒后平滑地缩小至指定大小。
解决评论 打赏 举报 编辑记录无用 1-
悬赏问题
- ¥66 换电脑后应用程序报错
- ¥50 array数据同步问题
- ¥15 pic16F877a单片机的外部触发中断程序仿真失效
- ¥15 Matlab插值拟合差分微分规划图论
- ¥15 keil5 target not created
- ¥15 C/C++数据与算法请教
- ¥15 怎么找志同道合的伙伴
- ¥20 如何让程序ab.eXe自已删除干净硬盘里的本文件自己的ab.eXe文件
- ¥50 爬虫预算充足,跪巨佬
- ¥15 滑块验证码拖动问题悬赏