javascript - 在滚动条上缩放 div 内容

标签 javascript jquery html css resize

我想让 div 内容可调整大小,但 div 本身保持相同大小。这应该在用户滚动时发生。我有这个功能:

var zoomable = document.getElementById('zoomable'),
    zX = 1;
window.addEventListener('wheel', function (e) {
    var dir;
    if (!e.ctrlKey) {
        return;
    }
    dir = (e.deltaY > 0) ? 0.1 : -0.1;
    zX += dir;
    zoomable.style.transform = 'scale(' + zX + ')';
    e.preventDefault();
    return;
});

这只适用于 div 本身。在这个 div 中,我有多个带有 .foo 类的可拖动小表,我想在不更改父级大小的情况下调整它们的大小。我也试过这个:

var zoomable = document.getElementsByClassName('foo'),
    zX = 1;
window.addEventListener('wheel', function (e) {
    var dir;
    if (!e.ctrlKey) {
        return;
    }
    dir = (e.deltaY > 0) ? 0.1 : -0.1;
    zX += dir;
    zoomable.each(function(){ 
        $(this).style.transform = 'scale(' + zX + ')'; 
    })
    e.preventDefault();
    return;
});

但是也不行。有没有办法调整内容而不是 div 的大小?

编辑:这是jsfiddle:https://jsfiddle.net/vaxobasilidze/ba2n9a61/ 这不完全是我的元素(因为它太复杂了),但想法是一样的。我想让 #zoomable div 保持相同的大小,并且它的内容(在本例中是段落)可以调整大小。

最佳答案

我已经调整了你的 fiddle 来工作。我想这就是你想要的。您需要定位您的内容,使它像您的描述一样工作。

var content = document.getElementById('zoomable').getElementsByTagName('p');
var zX = 1;
window.addEventListener('wheel', function (e) {
    var dir;
    if (!e.ctrlKey) {
        return;
    }
    dir = (e.deltaY > 0) ? 0.1 : -0.1;
    zX += dir;
    for (var i = 0; i<content.length; i++) {
         content[i].style.transform = 'scale(' + zX + ')';
        }

    e.preventDefault();
    return;
});

https://jsfiddle.net/Karadjordje1389/z254o87v/

关于javascript - 在滚动条上缩放 div 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47506962/

相关文章:

javascript - 使用另一个属性代替输入值来更新总计

javascript - 如何从控制台访问已知的 Ember 组件

javascript - JS : Check string if it is failing for some rules

jquery - asp.net mvc 3 中的远程验证不起作用

JQuery:绑定(bind)点击hrefs

javascript 如何在任何事件上加载脚本或数据(如谷歌)而不使用ajax

在鼠标悬停时停止文本滚动并在鼠标移出时开始文本滚动的javascript代码

javascript - 为什么 IE 将制表符解释为 8 个空格,而 Notepad++ 将其解释为 4 个空格

javascript - JQuery - 创建后淡出元素

html - 当我将鼠标悬停在导航栏中时,如何填充文本背后的背景? [HTML/CSS]