CSS3实现鼠标移动到图片上图片变大(缓慢变大,有过渡效果,放大的过程是有动画过渡的,这个过渡的时间可以自定义)

CSS3的transform:scale()可以实现按比例放大或者缩小功能。

CSS3的transition允许CSS的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS的属性值。

效果如下图所示:

1、当未鼠标未放到图片上的效果:


2、当鼠标放到图片上后(放大的过程是有动画过渡的,这个过渡的时间可以自定义):


代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			div{
				width: 300px;
				height: 300px;
				border: #000 solid 1px;
				margin: 50px auto;
				overflow: hidden;
			}
			div img{
				cursor: pointer;
				transition: all 0.6s;
			}
			div img:hover{
				transform: scale(1.4);
			}
		</style>
	</head>
	<body>
		<div>
			<img src="img/focus.png" />
		</div>
	</body>
</html>

其中:

transition: all 0.6s;表示所有的属性变化在0.6s的时间段内完成。

transform: scale(1.4);表示在鼠标放到图片上的时候图片按比例放大1.4倍。


代码下载地址:http://download.csdn.net/detail/u014175572/9535023

  • 97
    点赞
  • 153
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
好的,这是一个使用CSS3伪元素和动画实现图片放大效果。首先,我们需要一个包含图片的HTML元素,以及一个圆形区域来实现放大效果。HTML代码如下: ```html <div class="image-container"> <img src="your-image-url" alt="your-image-alt"> <div class="zoom-area"></div> </div> ``` 接下来,我们需要使用CSS样式来定位和样式化元素。其中,`.image-container` 用于定位图片放大镜区域,`.zoom-area` 用于创建圆形区域和实现放大动画CSS代码如下: ```css .image-container { position: relative; overflow: hidden; width: 300px; /* 图片容器宽度 */ height: 200px; /* 图片容器高度 */ } .image-container img { display: block; width: 100%; height: auto; } .zoom-area { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100px; /* 放大镜区域宽度 */ height: 100px; /* 放大镜区域高度 */ border-radius: 50%; /* 圆形边框 */ border: 2px solid #fff; /* 圆形边框样式 */ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); /* 阴影效果 */ opacity: 0; /* 初始状态透明 */ transition: opacity 0.3s ease-in-out; /* 过渡动画 */ pointer-events: none; /* 禁止鼠标事件触发 */ } .image-container:hover .zoom-area { opacity: 1; /* 鼠标移入后显示 */ } ``` 接下来,我们需要使用CSS伪元素来实现放大效果。这里使用 `::before` 伪元素作为放大的内容,使用 `transform: scale()` 属性来实现放大和定位。CSS代码如下: ```css .image-container:hover .zoom-area::before { content: ""; position: absolute; top: 0; left: 0; width: 600px; /* 放大后的宽度 */ height: 400px; /* 放大后的高度 */ background-image: url(your-image-url); /* 放大后的图片 */ background-size: cover; background-position: center; transform: scale(3); /* 放大倍数 */ transform-origin: 50% 50%; /* 放大中心点 */ } ``` 最后,我们需要使用JavaScript来实现放大镜区域的跟随效果。这里使用 `mousemove` 事件来监听鼠标移动,并使用 `transform: translate()` 属性来实现跟随。JavaScript代码如下: ```js const container = document.querySelector(".image-container"); const zoomArea = document.querySelector(".zoom-area"); container.addEventListener("mousemove", function(e) { const x = e.clientX - this.offsetLeft; const y = e.clientY - this.offsetTop; const dx = x / this.offsetWidth * 100; const dy = y / this.offsetHeight * 100; zoomArea.style.transform = `translate(-50%, -50%) translate(${dx}%, ${dy}%)`; }); ``` 这样,我们就完成了一个使用CSS3伪元素和动画实现图片放大效果

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值