我有一个使用CSS的简单图像库,当用户将鼠标悬停在缩略图上时,它会被转换、缩放和旋转。
下面是一个使用JS Fiddle的例子:Example
.container { overflow:auto;height:800px; }
.container img { transition: all 1s; box-shadow: -3px 1px 5px rgba(0,0,0,.5); }
div.container table { margin-top: 85px; }
div.container table th { text-align:center; }
div.container table td:first-child { text-align:center; }
div.container table td:first-child + td { text-align:center; }
div.container table tr:first-child + tr { text-align:center; }
div.container table tr:first-child + tr td { padding:10px; }
div.container table td img { width:40%; }
div.container img:hover { transform: scale(3.0) rotate(-10deg) }
<div class="container">
<table border="0">
<tr>
<th width="20%">Image Width</th>
<th width="20%">Image Height</th>
<th width="20%">Location</th>
<th width="20%">Internal Notes</th>
<th width="20%">External Notes</th>
</tr>
<tr>
<td>10.5"</td>
<td>12.75"</td>
<td>Left Hip</td>
<td>Heat Transfer - 49/51</td>
<td>Fine details in artwork will diminish.</td>
</tr>
<tr>
<td></td>
<td colspan="2"><img src="https://i.postimg.cc/Tw4H40yY/thumbnail-27d67c5eb4-221900-blackhemtag-flat-221900.jpg"></td>
<td colspan="2"><img src="https://i.postimg.cc/VLRHyz0V/thumbnail-32136cc21e-221900-blackhemtag-thumb-221900.jpg"></td>
</tr>
</table>
</div>
当用户将鼠标悬停在图像上时,图像不会发生变换,我想将其更改为当用户单击图像时,图像会发生变换。但是,我不相信CSS有跟踪点击事件的方法。
我试图找出最简单的方法来改变从图像悬停到图像点击。其他一切都应该保持不变。我尝试做的唯一更改是在用户单击缩略图时发生图像转换,而不是在用户将鼠标悬停在图像上时发生图像转换。有什么建议可以实现这一目标吗?
3条答案
按热度按时间piv4azn71#
最简单的方法是将CSS***hover***替换为***active***,但是一旦图像扩展,就没有办法再次缩小到正常状态...
除非你在它的主CSS中添加了紧缩。
另外,JS来拯救你,你可以很容易地直接在你的HTML元素上添加这样的功能。
所以最终的结果会是这样的...
这两种方法都很好,所以选择你喜欢的方法。CSS看起来最简单。
ldioqlga2#
但是,我不相信CSS有跟踪点击事件的方法。
事实上,CSS * do * 有such a method。它并不完美,但在这种情况下,它可能对你有用。
首先,将每个
<img>
Package 在一个<label>
中,并在它之前放置一个<input type="checkbox">
:然后,将
:hover
规则更改为:请记住隐藏这些复选框:
一旦复选框通过相应的
<label>
成为:checked
,则位于其旁边的<img>
将被转换。试试看:
fbcarpbf3#
您可以在特定类上设置
transform
,而不是:hover
伪类。然后,您可以将单击事件侦听器附加到容器,该容器在单击图像时添加该类。
您可以使用
.classList.toggle
而不是.add
在单击已转换的图像时删除转换。