javascript - 如何创建照片网格,您可以将它们悬停在其中,它们就会变成其他照片?

标签 javascript jquery html css hover

我正在尝试创建一个照片网格,您可以将鼠标悬停在它们上方,它们会变成其他图像。我尝试将图像作为背景图像放置在 CSS 上,但是当您将鼠标悬停时,另一张图片的大小似乎不完全相同(实际上是相同的大小)。

我还尝试使用两个图像方法(一个在另一个之上),它适用于页面上仅一个图像,但对于图像网格,它不起作用,因为 position:absolute .

我发现“有点”有效的唯一方法是将一个图像替换为另一个图像,但这样你就没有平滑的过渡(淡入另一张图像)。

Here is the access to code pen (seems to work better) :

代码:

CSS:

.pages-content {
  max-width: 400px
}

.left {
  padding-left: 5px;
}
.right {
  padding-right: 5px;
}
.bottom {
  padding-bottom: 10px;
}

img.a {
	position: absolute;
	left: 0;
	top: 0;
  z-index: 10;
  transition: opacity 1s ease-in-out;
}

img.a:hover {
  opacity: 0;
}
img.b {
	position: absolute;
	left: 0;
	top: 0;
}

HTML:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet"/>
<body>
  <section class="container pages-content">
    <div class="row">
	  <div class="col-md-12 bottom">
        <img src="https://d1mwzmktacfw26.cloudfront.net/wp-content/uploads/2016/04/23105511/Frontier-400x200.jpg" alt="" class="img-fluid"/>        
        <!-- trying to use hover to change images
	    <img src="https://d1mwzmktacfw26.cloudfront.net/wp-content/uploads/2016/04/23105511/Frontier-400x200.jpg" alt="" class="img-fluid a"/>
        <img src="http://www.tikbok.com/rahalat/wp-content/uploads/2011/08/1-400x200.jpg" alt="" class="img-fluid b"/> -->
	  </div>
	</div>
	<div class="row">
	  <div class="col-md-6 col-sm-12 right">
		<img src="http://cheb-room.ru/uploads/cheb/2016/11/w9RC4W-QqXw-200x200.jpg" alt="" class="img-fluid" />
	  </div>
	  <div class="col-md-6 col-sm-12 bottom left">
		<img src="http://cheb-room.ru/uploads/cheb/2016/11/w9RC4W-QqXw-200x200.jpg" alt="" class="img-fluid" />
	  </div>
    </div>

	<!-- Second block -->
	<div class="row">
	  <div class="col-md-6 col-sm-12 right ">
		<div class="row">
		  <div class="col-md-6 push-md-6 col-sm-12 bottom left">
            <img src="http://www.animated-gifs.eu/category_cartoons/avatars-100x100-cartoons-spongebob/0038.gif" alt="" class="img-fluid"/>
		  </div>
		  <div class="col-md-6 pull-md-6 col-sm-12 bottom right">
            <img src="http://www.animated-gifs.eu/category_cartoons/avatars-100x100-cartoons-spongebob/0038.gif" alt="" class="img-fluid"/>
		  </div>
		  <div class="col-md-12 bottom">
            <img src="http://donsmaps.com/clickphotos/dolnivi200x100.jpg" alt="" class="img-fluid" />
		  </div>
		  <div class="col-md-12 bottom">
            <img src="http://markcarson.com/images/SunBird-7-200x200.png" alt="" class="img-fluid" />
		  </div>
		</div>
	  </div><!--./col-md-6-->
	  <div class="col-md-6 bottom col-sm-12 left project-image">
		<img src="http://www.bravacasa.rs/wp-content/uploads/2014/03/Odlaganje-stvari-za-decu-slika-7-505x1025.jpg" width="200" class="img-fluid"/>
	  </div>
	 </div><!--./block 2-->
  </section>
</body>

最佳答案

我不确定这是否是您正在寻找的内容。

.row {
  display: flex;
  flex-direction: row;
}

.flex-item {
  min-width: 200px;
  min-height: 200px;
}

.hover-img {
  transition: background-image 1s ease-in-out;
  background-size: cover;
}

.img-1 {
  background-image: url(https://d1mwzmktacfw26.cloudfront.net/wp-content/uploads/2016/04/23105511/Frontier-400x200.jpg);
  width: 400px;
  /*
  height: 200px;*/
  flex-grow: 2;
}

.img-1:hover {
  background-image: url(http://www.tikbok.com/rahalat/wp-content/uploads/2011/08/1-400x200.jpg);
}

.img-2 {
  background-image: url(http://cheb-room.ru/uploads/cheb/2016/11/w9RC4W-QqXw-200x200.jpg);
  /* width: 200px;
  height: 200px;*/
  flex-grow: 1;
}

.img-2:hover {
  background-image: url(http://www.animated-gifs.eu/category_cartoons/avatars-100x100-cartoons-spongebob/0038.gif);
}

.img-3 {
  background-image: url(http://donsmaps.com/clickphotos/dolnivi200x100.jpg);
  /*width: 200px;
  height: 200px;*/
  flex-grow: 1;
}

.img-3:hover {
  background-image: url(http://markcarson.com/images/SunBird-7-200x200.png);
}

.img-4 {
  /*max-width:400px;*/
  flex-grow: 2;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet" />

<body>
  <section class="container pages-content">
    <div class="row">

      <div class="flex-item hover-img img-1"></div>
      <div class="flex-item  hover-img img-2"></div>
      <div class="flex-item  hover-img img-3"></div>
      <img src="http://www.bravacasa.rs/wp-content/uploads/2014/03/Odlaganje-stvari-za-decu-slika-7-505x1025.jpg" class="flex-item  img-4" />

    </div>
  </section>
</body>

关于javascript - 如何创建照片网格,您可以将它们悬停在其中,它们就会变成其他照片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42430622/

相关文章:

javascript - 如何使用 setTimeout 方法在 "x"秒后刷新 jTable?

javascript - TypeORM AfterSave() 在创建后触发,但在查询时返回 NULL

javascript - Jquery UI 对话框不会消失

javascript - 仅使用 css 放大 iframe 而无需重新加载 html 内容

javascript - Bootstrap 选项卡面板没有删除事件类,但只是有时

javascript - 无法使用 Testcafe 拦截来自页面的传出 AJAX 请求

javascript - 有什么方法可以在纯 javascript 中将元素作为函数获取?

php - 在 WooCommerce 中为 wp_dropdown_categories 下拉菜单启用 select2

javascript - Jquery .each 函数的奇怪问题

javascript - 如何在选中复选框时动态生成输入字段