JavaScript图片动态移动及文字浮现

先说我们这个小动画想要达到的效果:

  1. 月亮最开始藏在海中,只露出一点点。
  2. 随着时间,开始慢慢上升,直到一个高度停止。
  3. 当月亮停止上升,出现一首诗。

效果一:

我们先设置一个div,设置你想要的图为背景,以让其他图片可以很方便的覆盖在上面。这个div中包含三个div:

  • 第一个div:包含背景图中的海的图片。
  • 第二个div:包含月亮图片。
  • 第三个div:作为文字容器。

既然要被海遮盖住,那么要使两张图片处于不同层,使用z-index属性以达到效果。使月亮的z-index属性小于海面的z-index便可以使两张图片处于不同层。

效果图:

 

效果二:

我们按照如下步骤打到效果:

  1. 获取图片所在div对象
  2. 设置div 左上角坐标 ,起始点的坐标
  3. 设置图片的行进速度
  4. 设置图片的最大浮动高度
  5. 判断图片是否达到醉倒高度。如果达到,调整速度为0。如果未达到,设置坐标值为 起始坐标+速度
  6. 延迟调用该图片移动函数,每隔50毫秒调用一次

效果三:

在函数中设置一个变量H为0,当图片达到最大浮动高度的话,该变量置为1.当下一次调用图片移动函数时,获取文字框所在div对象,使其中出现文字。

以下为所有代码:

<!DOCTYPE html>
<html>
	<head>
		<title></title>
		<style>
			.moon{
				position: absolute;
  				left: 550px;
  				top: 305px;
				height:100px;
				width:100px;
				z-index:1;
			}
			.bottom{
				position:absolute;
				top:310px;
				z-index:99;
			}
			img{
 				position:absolute; 
 				filter:alpha(opacity=100);/* IE */
 				-moz-opacity:1;/* Moz + FF */
 				opacity: 1;/* 支持CSS3的浏览器(FF 1.5也支持)*/
			}
			#poem{
				position:absolute;
				top:135px;
				left:700px;
				z-index:1;
				font-size:20px;
				font-weight:bold;
			}
		</style>
	</head>
	<body>
		<div style="background:url('images/sea.png');width:1005px;height:585px;no-repeat">
			<div class="bottom">
				<img src="images/bottom.png"/>
			</div>
			<div class="moon" id="moon">
				<img src="images/moon.png" style="100px;width:100px;" onclick="move()"/>
			</div>
			<div id="poem"> </div>
		</div> 
	</body>
	<script language="JavaScript" type="text/javascript">
 		//获取图片所在的div对象
 		var img=document.getElementById("moon");
 		//设置div起始坐标
 		var x=550,y=305;
 		//设置图片的行进速度
 		var xSpeed=0,ySpeed=-1;
 		//设置图片的最大浮动的高度
 		var h=105;
		var H=0;
 		function floatimg(){
  		//比较图片是否到达指定高度 
  		if(y<h||y<0){ ySpeed= 0;H=1; }
  		if(H==1){
                        //获取文字框所在的div对象
			var tt=document.getElementById("poem");
                        //改变文字框中内容
			tt.innerHTML="海上明月枕边人.";
		}
  		//设置坐标值 起始坐标+速度
  		x+=xSpeed;
  		y+=ySpeed;
 		img.style.top=y+"px";
 		img.style.left=x+"px";
 		//延迟调用函数floatimg(),每个50毫秒调用一次
 		setTimeout("floatimg()",50);
		 }
 		floatimg();
	</script>
</html>

 

最终效果图:

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用JavaScript图片移动,您可以使用以下步骤: 1. 首先,在HTML文件中创建一个<img>元素来显示您想要移动图片,并为其指定一个唯一的id,例如: ```html <img id="myImage" src="path/to/image.jpg" /> ``` 2. 然后,在JavaScript文件中,获取该元素的引用并存储在变量中,例如: ```javascript var image = document.getElementById("myImage"); ``` 3. 接下来,您可以使用CSS样式来设置图片的位置、大小和其他属性,例如: ```css #myImage { position: absolute; left: 0; top: 0; width: 100px; height: 100px; } ``` 4. 然后,您可以使用JavaScript来更改图片的位置。例如,如果您想将图像向右移动50像素,您可以使用以下代码: ```javascript image.style.left = "50px"; ``` 5. 如果您想将图像向下移动50像素,您可以使用以下代码: ```javascript image.style.top = "50px"; ``` 6. 如果您想要在一定的时间内使图像平滑地移动,您可以使用JavaScript的动画函数,例如setInterval()或requestAnimationFrame(),并在每个时间间隔内更新图片的位置。 请注意,在移动图片时,您还需要考虑图片的父容器的位置和大小,以确保图片不会超出其容器的范围。 ### 回答2: JavaScript可以通过改变图片的位置属性来实现图片移动。首先需要获取要移动图片的DOM元素,可以通过id或class来获取。然后使用JavaScript的DOM操作方法来改变图片的位置属性,常用的有style.left和style.top属性。通过改变这两个属性的值,可以控制图片在页面中的位置。 具体的实现步骤如下: 1. 首先,在HTML中创建一个图片元素,并设置它的id或class,例如: ```html <img id="myImage" src="image.png"> ``` 2. 在JavaScript中获取该图片的DOM元素: ```javascript var image = document.getElementById("myImage"); ``` 3. 定义一个函数来实现图片移动,例如向右移动5个像素: ```javascript function moveImage() { var currentPosition = parseInt(image.style.left) || 0; image.style.left = currentPosition + 5 + "px"; } ``` 4. 调用该函数来触发图片移动,可以通过定时器或事件的方式来触发: ```javascript setInterval(moveImage, 1000); // 每1秒向右移动一次 ``` 上述代码将使得图片每1秒向右移动5个像素,通过不断改变图片的位置属性实现移动效果。根据具体需求,可以修改移动的方向和距离,以及触发移动的方式。 ### 回答3: JavaScript是一种用于网页开发的脚本语言,可以通过操作HTML元素和CSS样式来实现各种交互效果。在JavaScript中,可以使用一些技术来使图片移动。 首先,可以使用DOM操作来获取图片元素,在HTML中给图片元素添加一个id属性,例如: ```html <img src="image.jpg" id="myImage"> ``` 然后在JavaScript中使用getElementById方法获取该图片元素: ```javascript var image = document.getElementById("myImage"); ``` 接下来,可以通过设置元素的样式来实现移动效果。通过修改元素的left和top属性来改变其位置。例如,将图片向右移动100像素: ```javascript image.style.left = "100px"; ``` 可以使用CSS3的transition属性来为图片添加过渡效果,使其平滑移动。例如,添加一个过渡时间为1秒的效果: ```javascript image.style.transition = "all 1s"; ``` 最后,可以使用JavaScript中的事件监听器来触发移动效果。例如,给按钮添加一个点击事件来触发图片向右移动: ```javascript var button = document.getElementById("myButton"); button.addEventListener("click", function() { image.style.left = "100px"; }); ``` 注意,以上代码只实现了图片向右移动的效果,你可以根据需要修改代码来实现其他方向的移动效果,或者组合使用多个移动操作来实现更复杂的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值