如何在悬停在图像上时放大,但让边框保持原位?

aza*_*ela 1 css border zoom hover image-zoom

我是CSS和HTML的新手,我想创建一个在悬停时快速放大的图像.但是盒子半径也会放大.我知道我的div课程出了问题,但我无法弄明白究竟是什么.

所以我的意思是我想要这样的效果:http: //designshack.net/tutorialexamples/imagehovers/zoomandpan.html (金发女郎一个)

这是相关代码:

 #circle {
    border: 4px solid;
height:200px;
width:200px;
    border-color: #000;
    border-radius: 100px;
    }



.bolimg{
background: url('http://i60.tinypic.com/wb82e0.jpg') no-repeat; 
height:200px;
width:200px;
-webkit-border-radius: 100px;
    -webkit-transition: 2s ease-out;
     -moz-transition: 2s ease-out;
     -o-transition: 2s ease-out;
     -ms-transition: 2s ease-out;
     transition: 2s ease-out;
}


.bolimg:hover {
    opacity:1;
     background-image: url('http://i59.tinypic.com/k0szuv.jpg'); 
     -webkit-transition: 2.5s ease-out;
     -moz-transition: 2.5s ease-out;
     -o-transition: 2.5s ease-out;
     -ms-transition: 2.5s ease-out;
     transition: 2.5s ease-out;
      -webkit-transform:scale(1.25); /* Safari and Chrome */
    -moz-transform:scale(1.25); /* Firefox */
    -ms-transform:scale(1.25); /* IE 9 */
    -o-transform:scale(1.25); /* Opera */
     transform:scale(1.25);


}
Run Code Online (Sandbox Code Playgroud)

这就是身体

<div id="circle" class="bolimg"> 
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

请原谅我的英语非常糟糕,如果这是一个愚蠢的问题,我很抱歉.提前致谢.

Ric*_*ock 5

将背景图像div放在容器中:

<div class="container">
  <div class="bolimg"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

将尺寸和边框移动到容器,并给它overflow: hidden:

.container {
  width: 200px;
  height: 200px;
  border: 4px solid black;
  border-radius: 100px;
  overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

bolimg课堂上使用这些样式:

.bolimg {
  background: url('http://i60.tinypic.com/wb82e0.jpg') no-repeat;
  background-size: cover;
  width: 100%;
  height: 100%;
  transition: 2s ease-out;
}
Run Code Online (Sandbox Code Playgroud)

并在悬停时使用这些样式:

.bolimg:hover {
  background-image: url('http://i59.tinypic.com/k0szuv.jpg'); 
  height: 125%;
  width: 125%;
}
Run Code Online (Sandbox Code Playgroud)

动画高度和宽度而不是缩放可以解决Chrome和边框的问题.

完整代码:

.container {
  width: 200px;
  height: 200px;
  overflow: hidden;
  border: 4px solid black;
  border-radius: 100px;
}

.bolimg {
  background: url('http://i60.tinypic.com/wb82e0.jpg') no-repeat;
  background-size: cover;
  width: 100%;
  height: 100%;
  -webkit-transition: 2s ease-out;
  -moz-transition: 2s ease-out;
  -o-transition: 2s ease-out;
  -ms-transition: 2s ease-out;
  transition: 2s ease-out;
}

.bolimg:hover {
  background-image: url('http://i59.tinypic.com/k0szuv.jpg'); 
  height: 125%;
  width: 125%;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="bolimg"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 我已经编程 35 年了,我仍然每天都在学习新东西。:) (3认同)
  • @lyhong,您可以将负 margin-left 和负 margin-top 设置为高度和宽度增加的一半。在这种情况下,将这些属性添加到`.bolimg:hover`: margin-left: -12.5%; 保证金最高:-12.5%;见 https://jsfiddle.net/ordp6x7j/ (2认同)