【问题标题】:Zoom On Hover Image Gallery Overlapping放大悬停图像库重叠
【发布时间】:2021-04-07 19:06:49
【问题描述】:

我正在尝试为我的电子商务网站创建一个图片库。

一旦您将鼠标悬停在图像上并在移动设备上单击,我就会尝试在缩放中进行编码。我已经在一定程度上实现了这一点,但我似乎无法阻止图像从彼此的顶部和底部重叠。

这是一个示例 https://w3bits.com/labs/css-image-hover-zoom/ 我正在尝试让列中的所有图像进行缩放,并使其与网页上显示的基本示例中的一样。

我尝试过应用 Over-Flow:Hidden 在样式中的各种组合。

有人可以帮忙吗?

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
* {
  box-sizing: border-box;
}

body {
  margin: 0;
}

.header {
}

.row {
  display: -ms-flexbox; /* IE 10 */
  display: flex;
  -ms-flex-wrap: wrap; /* IE 10 */
  flex-wrap: wrap;
  padding: 0 4px;
  overflow: hidden;
}


/* Create two equal columns that sits next to each other */
.column {
  height:100%;
  -ms-flex: 50%; /* IE 10 */
  flex: 50%;
  padding: 0 4px;
  overflow: hidden;
}

.column img {
  margin-top: 8px;
  vertical-align: middle;
  transition: transform .5s ease;
}


.column img:hover {
  transform: scale(1.5);
}


</style>
</head>
<body>

<!-- Photo Grid -->
<div class="row"> 
  <div class="column">
    <img src="https://www.gettyimages.com/gi-resources/images/500px/983703508.jpg" style="width:100%">
    <img src="https://www.gettyimages.com/gi-resources/images/500px/983703508.jpg" style="width:100%">
    <img src="" style="width:100%">
    <img src="/w3images/paris.jpg" style="width:100%">
    <img src="/w3images/nature.jpg" style="width:100%">
    <img src="/w3images/mist.jpg" style="width:100%">
    <img src="/w3images/paris.jpg" style="width:100%">
  </div>
  <div class="column">
    <img src="https://www.gettyimages.com/gi-resources/images/500px/983703508.jpg" style="width:70%">
    <img src="https://www.gettyimages.com/gi-resources/images/500px/983703508.jpg" style="width:70%">
    <img src="/w3images/wedding.jpg" style="width:100%">
    <img src="/w3images/mountainskies.jpg" style="width:100%">
    <img src="/w3images/rocks.jpg" style="width:100%">
    <img src="/w3images/underwater.jpg" style="width:100%">
  </div>  


</div>

<script>
// Get the elements with class="column"
var elements = document.getElementsByClassName("column");

// Declare a loop variable
var i;


// Two images side by side
function two() {
  for (i = 0; i < elements.length; i++) {
    elements[i].style.msFlex = "50%";  // IE10
    elements[i].style.flex = "50%";
  }
}


</script>

</body>
</html>

【问题讨论】:

  • overflow: hidden 在父元素上防止其子元素超出 边界。这意味着您当前仅防止图像与其父列重叠。尝试将每个图像放入自己的div,并在 div 上应用overflow: hidden :)

标签: html css jpeg


【解决方案1】:

复制并粘贴我的评论作为答案:

父元素上的

overflow: hidden 可防止其子元素超出 边界。这意味着您当前仅防止图像与其父列重叠。尝试将每个图像放入自己的div,并在 div 上应用overflow: hidden :)

下面是更改后的示例。我还将imgmargin-top替换为.img-parentmargin-top,否则图像也会扩大到顶部间隙。

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
* {
  box-sizing: border-box;
}

body {
  margin: 0;
}

.header {
}

.row {
  display: -ms-flexbox; /* IE 10 */
  display: flex;
  -ms-flex-wrap: wrap; /* IE 10 */
  flex-wrap: wrap;
  padding: 0 4px;
  overflow: hidden;
}


/* Create two equal columns that sits next to each other */
.column {
  height:100%;
  -ms-flex: 50%; /* IE 10 */
  flex: 50%;
  padding: 0 4px;
  overflow: hidden;
}

.column img {
  /*margin-top: 8px;*/
  vertical-align: middle;
  transition: transform .5s ease;
}


.column img:hover {
  transform: scale(1.5);
}

.img-parent {overflow: hidden; margin-top: 8px}


</style>
</head>
<body>

<!-- Photo Grid -->
<div class="row"> 
  <div class="column">
    <div class="img-parent">
      <img src="https://www.gettyimages.com/gi-resources/images/500px/983703508.jpg" style="width:100%">
    </div>
    <div class="img-parent">
      <img src="https://www.gettyimages.com/gi-resources/images/500px/983703508.jpg" style="width:100%">
    </div>        <div class="img-parent">
      <img src="https://www.gettyimages.com/gi-resources/images/500px/983703508.jpg" style="width:100%">
    </div>
  </div>
  <div class="column">
    <div class="img-parent">
      <img src="https://www.gettyimages.com/gi-resources/images/500px/983703508.jpg" style="width:100%">
    </div>        <div class="img-parent">
      <img src="https://www.gettyimages.com/gi-resources/images/500px/983703508.jpg" style="width:100%">
    </div>        <div class="img-parent">
      <img src="https://www.gettyimages.com/gi-resources/images/500px/983703508.jpg" style="width:100%">
    </div>
  </div>  


</div>

<script>
// Get the elements with class="column"
var elements = document.getElementsByClassName("column");

// Declare a loop variable
var i;


// Two images side by side
function two() {
  for (i = 0; i < elements.length; i++) {
    elements[i].style.msFlex = "50%";  // IE10
    elements[i].style.flex = "50%";
  }
}


</script>

</body>
</html>

【讨论】:

  • 非常感谢丹。我也是新手,怎么报恩?
  • 如果有帮助,请单击绿色复选标记以接受答案,我能要求的只是将来将其转发给其他人;)
  • 谢谢你,我一定会这样做的:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-18
相关资源
最近更新 更多