当前位置: 首页 > 知识库问答 >
问题:

如何使用jquery和scale(css)放大/缩小每个div中的每个图像?

狄宗清
2023-03-14

我试图在网站www.nhadatsonnghia.com的一篇文章中为图像创建一个放大/缩小功能。当一切正常工作时,出现了一个错误,即jquery只对第一个标记中的第一个图像起作用,并且后续每个标记中的图像无法放大/缩小。运行后,只有第一个图像具有style=“transform:scale(1);”类。

你可以看到它在这里工作

那么我应该如何修正放大/缩小每个div中的每个图像呢?如果你能建议我如何解决这个问题,我将不胜感激!

谢谢!

这是密码

jQuery

$(function() {
    $('.post-header .desc-image-list .full .natural-thumbnail #img').data('scale', '1');
    $('#nav input').on('click', function() {
        var scale  = parseInt($('#img').data('scale')*10,10),
            nScale = $(this).index()===0 ? scale+1 : scale-1;
            nScale = parseFloat(parseInt(nScale,10)/10);
        $('#img').data('scale', nScale).css('transform', 'scale('+nScale+')');
    });
});

HTML

<div class="post-header">
    <div class="desc-image-list">
        <div class="full">
            <div class="natural-thumbnail">
                <img id="img" src="image1.img">  // After running only the first image has class style="transform: scale (1);"
                <div id="nav">
                    <input type="button" value="Zoom in">
                    <input type="button" value="Zoom out">
                </div>
            </div>
            <div class="natural-thumbnail" style="height: 600px;">
                <img id="img" src="image2.img">
                <div id="nav">
                    <input type="button" value="Zoom in">
                    <input type="button" value="Zoom out">
                </div>
            </div>
            <div class="natural-thumbnail" style="height: 0;">
                <img id="img" src="image3.img">
                <div id="nav">
                    <input type="button" value="Zoom in">
                    <input type="button" value="Zoom out">
                </div>
            </div>
        </div>
    </div>
</div>

CSS

#nav {position: sticky; bottom: 20px; left: 50%; margin-left: -50px;}
#nav input {padding: 5px; font-size: 15px; cursor: pointer;}

共有1个答案

阎昌勋
2023-03-14

除了@freedomn-m答案。

您可以使用img标记作为css选择器。Natural-Thumbnail img您不需要任何类。更新下面的js和将工作良好。

$(function() {
    $('.post-header .desc-image-list .full .natural-thumbnail img').data('scale', '1');
    $('#nav input').on('click', function() {
        var scale  = parseInt($('.natural-thumbnail img').data('scale')*10,10),
            nScale = $(this).index()===0 ? scale+1 : scale-1;
            nScale = parseFloat(parseInt(nScale,10)/10);
        $('#img').data('scale', nScale).css('transform', 'scale('+nScale+')');
    });
});
 类似资料:
  • 然而,我研究了API和公共库以及github的细节,但我找不到任何方法来: 检索所有公共存储库/映像(即使有数千个,我仍然需要一个开始列表来迭代) 查找图像的所有层 查找层的大小(因此不是图像,而是单个层的大小)。 谁能帮我找到检索这些信息的方法吗?

  • 我有一个我想给他2个或更多的背景图像。我用两个图像为类设置了一个样式: 我的问题是设置不同的背景大小为每个图像URL。我如何控制每个图像的许多背景图像在一个DIV设置大小,边框,颜色...? 编辑:我想控制每个图像的大小在DIV里面,例如第一个图像的背景应该是20px20px,第二个图像应该是40px45px等等。

  • 问题内容: 我想将所有图像都放在CSS中(我知道的唯一方法是将它们作为背景图像放置)。 但是此解决方案中的问题是您永远不能让div占用图像的大小。 所以我的问题是:在CSS中拥有等效功能的最佳方法是什么 ? 问题答案: Jaap的回答: 和在CSS中: 这已经在Chrome,firefox和Safari上进行了测试。(我在Mac上,所以如果有人在IE上有结果,请告诉我添加它)

  • 问题内容: 我希望能够放大HTML 5画布中鼠标下方的点,例如Google Maps上的。我该如何实现? 问题答案: 终于解决了: 关键是计算轴位置,以便缩放点(鼠标指针)在缩放后保持在同一位置。 最初,鼠标与角之间有一段距离,我们希望鼠标下方的点在缩放后保持在同一位置,但这是远离角的地方。因此,我们需要移动(角的坐标)以解决此问题。 然后,其余代码需要应用缩放并转换到绘制上下文,以便其原点与画布

  • 维特。x是在JVM上构建反应式应用程序的工具包。 我想将vertx用于基于JVM的自动可伸缩RESTful后端API。 到目前为止,我从留档中发现,默认情况下,它需要机器中的内核数量,假设您有N个内核,并为每个内核创建N个线程,每个线程是一个事件总线,每个线程包含vertx实例。问题是,Vertx如何控制实例数量?基于负载压力? 关于控制在给定线程中运行的垂直线的数量,我仍然不明白。请帮我弄清楚这

  • 问题描述 (Problem Description) 如何使用Java缩放图像。 解决方案 (Solution) 以下是使用Java缩放图像的程序。 import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.core.Size; import org.opencv.imgcodecs.Imgcodecs;