发布网友 发布时间:2022-04-23 09:43
共6个回答
懂视网 时间:2022-04-28 16:50
在css3的学习中,我们会经常做一些小的动画效果,这感觉非常有趣,所以今天的这篇文章将给大家来介绍关于css3实现图片放大的一个效果,有兴趣的小伙伴可以看一下。我们都知道css3中增加了一个transform属性应用于元素的2D或3D转换,transform属性允许我们对元素进行旋转、缩放、移动或倾斜。所以对于css3实现图片放大是需要用到transform属性的,下面我们就来看看css3使用transform属性实现图片放大的效果。
第一种:css3实现当我们把鼠标放到图片上图片放大并且超出部分不隐藏的效果:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .enlarge{ width: 300px; height: 300px; border: 1px #ffffff solid; } .enlarge img{ width: 100%; height: 100%; cursor: pointer; transition: all 0.6s; -ms-transition: all 0.8s; } .enlarge img:hover{ transform: scale(1.2); -ms-transform: scale(1.2); } </style> </head> <body> <div class="enlarge"> <img src="images/tu.jpg" alt="图片"/> </div> </body> </html>
css3实现鼠标放上图片放大的效果前后对比如下:
第二种:css3实现当我们把鼠标放到图片上图片放大并且超出部分隐藏的效果:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .enlarge{ width: 300px; height: 300px; overflow: hidden; border: 1px #ffffff solid; } .enlarge img{ width: 100%; height: 100%; cursor: pointer; transition: all 0.6s; -ms-transition: all 0.8s; } .enlarge img:hover{ transform: scale(1.3); -ms-transform: scale(1.3); } </style> </head> <body> <div class="enlarge"> <img src="images/tu.jpg" alt="图片"/> </div> </body> </html>
css3实现鼠标放上图片放大的效果前后对比如下:
说明:对于上述的两种css3实现图片放大的情况,都用到了:hover伪类,表示了鼠标悬停时候的状态,这样当我们把鼠标放到图片上的时候就会让图片放大,当鼠标移除,图片就会恢复原有的大小。
热心网友 时间:2022-04-28 13:58
可以用js事件“onmouseover”和“onmouseout”来实现。
1、新建html文档,在body标签中添加图片标签,为这个标签设置“id”属性,然后设置图片的默认显示大小css属性:
2、添加“onmouseover”js事件,首先使用“document.getElementById”获取到图片标签,然后定义鼠标移动到图片上时发生的事件,这时图片将会放大:
3、添加“onmouseout”js事件,首先获取图片标签,然后定义鼠标移开图片时发生的事件,这时图片将会缩小:
热心网友 时间:2022-04-28 15:16
分别写一个onmouseover和onmouseout事件。然后在事件里面加一个function,分别写想要放大的尺寸和缩小或复原的尺寸。
具体代码实现如下:
<img id="img" onmouseover="bigger()" onmouseout="smaller()" src="你的图片路径" style="width:100px;height:100px;" />
<script type="text/javascript">
var img = document.getElementById('img');
function bigger(){
img.style.width = '400px';
img.style.height = '400px';
}
function smaller(){
img.style.width = '100px';
img.style.height = '100px';
}
</script>
扩展资料:
HTML 4.0 的新特性之一是有能力使 HTML 事件触发浏览器中的动作(action),比如当用户点击某个 HTML 元素时启动一段 JavaScript。下面是一个属性列表,这些属性可插入 HTML 标签来定义事件动作。
参考资料:
JavaScript官方API接口-GlobalEventHandlers.onmouseover
JavaScript官方API接口-GlobalEventHandlers.onmouseout
W3cSchool-JavaScript 事件参考手册
热心网友 时间:2022-04-28 16:51
首先是div布局:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="../common.js"></script>
</body>
</html>
2.添加CSS和JS样式:(1)添加CSS样式,就是写静态页面,这个图片怎么在页面上显示;(2)添加JS效果是鼠标经过小盒子, 显示遮罩和大盒子 ,鼠标离开后隐藏。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="../common.js"></script>
<style>
* {
margin: 0;
padding: 0;
}
.box {
width: 350px;
height: 350px;
margin: 100px;
border: 1px solid #ccc;
position: relative;
}
.big {
width: 400px;
height: 400px;
position: absolute;
top: 0;
left: 360px;
border: 1px solid #ccc;
overflow: hidden;
display: none;
}
.mask {
width: 175px;
height: 175px;
background: rgba(255, 255, 0, 0.4);
position: absolute;
top: 0;
left: 0;
cursor: move;
display: none;
}
.small {
position: relative;
}
.box img {
vertical-align: top;
}
#bigBox img {
position: absolute;
}
</style>
</head>
<body>
<div class="box" id="box">
<div id="smallBox" class="small">
<img src="images/001.jpg" width="350" alt="" />
<div id="mask" class="mask"></div>
</div>
<div id="bigBox" class="big">
<img src="images/0001.jpg" id="bigImg" width="800" alt="" />
</div>
</div>
<script>
var box = document.getElementById("box");
var smallBox = document.getElementById("smallBox");
var bigBox = document.getElementById("bigBox");
var bigImg = document.getElementById("bigImg");
var mask = document.getElementById("mask");
//1.鼠标经过小盒子 显示遮罩和大盒子 鼠标离开后隐藏
smallBox.onmouseover = function() {
mask.style.display = "block";
bigBox.style.display = "block";
};
smallBox.onmouseout = function() {
mask.style.display = "none";
bigBox.style.display = "none";
};
smallBox.onmousemove = function(event) {
var event = event || window.event;
var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
var targetX = pageX - box.offsetLeft;
var targetY = pageY - box.offsetTop;
var maskX = targetX - mask.offsetWidth / 2;
var maskY = targetY - mask.offsetHeight / 2;
if (maskX < 0) {
maskX = 0;
}
if (maskX > smallBox.offsetWidth - mask.offsetWidth) {
maskX = smallBox.offsetWidth - mask.offsetWidth;
}
if (maskY < 0) {
maskY = 0;
}
if (maskY > smallBox.offsetHeight - mask.offsetHeight) {
maskY = smallBox.offsetHeight - mask.offsetHeight;
}
mask.style.left = maskX + "px";
mask.style.top = maskY + "px";
var bigToMove = bigImg.offsetWidth - bigBox.offsetWidth;
var maskToMove = smallBox.offsetWidth - mask.offsetWidth;
var rate = bigToMove / maskToMove;
bigImg.style.left = -rate * maskX + "px";
bigImg.style.top = -rate * maskY + "px";
};
</script>
</body>
</html>
3.在开发工具里面的截图:
4.未添加CSS样式和JS效果浏览器的截图:
5.添加CSS和JS效果的浏览器的截图:
热心网友 时间:2022-04-28 18:42
很简单啊,先把图片用css缩小,再用js滑过的时候放大就好啦,图省事我就把js直接写在图片上了,你可以自己抽出来:热心网友 时间:2022-04-28 20:50
需要准备两张图,一张是小图,一张是指向的时候显示的大图。追答一张图不行,得有张大图才行,纯html,javascript又没法做到放大小图。其实这个也简单啊,你把图片找齐了,然后网上下个图片处理工具一次性生成每张图对应的小图不就行了。