Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 触发多个按键以刺激键盘快捷键jquery_Javascript_Jquery_Keypress - Fatal编程技术网

Javascript 触发多个按键以刺激键盘快捷键jquery

Javascript 触发多个按键以刺激键盘快捷键jquery,javascript,jquery,keypress,Javascript,Jquery,Keypress,我想通过jQuery根据键盘快捷键创建页面缩放。主要是,当用户单击页面上的某个元素时,我想用+和Ctrl键对触发Ctrl。我试过这个问题中的代码片段,但它不起作用-它不能缩放页面 $("#zoom").click(function() { var e = $.Event("keydown"); e.which = 61; // # key code for + e.ctrlKey = true; $(document).trigger(e); }); 你可以

我想通过jQuery根据键盘快捷键创建页面缩放。主要是,当用户单击页面上的某个元素时,我想用
+
Ctrl
键对触发
Ctrl
。我试过这个问题中的代码片段,但它不起作用-它不能缩放页面

$("#zoom").click(function() {

    var e = $.Event("keydown");
    e.which = 61; // # key code for +
    e.ctrlKey = true;
    $(document).trigger(e);

});

你可以用这个图书馆。有很多例子


根据我的研究,您的事件触发器似乎工作正常

Javascript:

jQuery(function($) {
    var currentZoom = 1,
        minZoom = 0,
        maxZoom = 2,
        changeZoom = function(increase) {
            var newZoom = currentZoom;

            if (increase && currentZoom < maxZoom) {
                newZoom++;
                $('.text-zoom-' + currentZoom)
                    .addClass('.text-zoom-' + newZoom)
                    .removeClass('.text-zoom-' + currentZoom);
            } else if (currentZoom > minZoom) {
                newZoom--;
                $('.text-zoom-' + currentZoom)
                    .addClass('.text-zoom-' + newZoom)
                    .removeClass('.text-zoom-' + currentZoom);
            }

            currentZoom = newZoom;
        };

    $('.zoomIn').click(function(e) {
        changeZoom(true);
    });

    $('.zoomOut').click(function(e) {
        changeZoom(false);
    });
});
jQuery(函数($){
var currentZoom=1,
最小缩放=0,
maxZoom=2,
changeZoom=功能(增加){
var newZoom=currentZoom;
如果(增加和当前缩放<最大缩放){
newZoom++;
$('.text zoom-'+currentZoom)
.addClass('.text zoom-'+newZoom)
.removeClass('.text zoom-'+currentZoom);
}else if(当前缩放>最小缩放){
新缩放--;
$('.text zoom-'+currentZoom)
.addClass('.text zoom-'+newZoom)
.removeClass('.text zoom-'+currentZoom);
}
currentZoom=newZoom;
};
$('.zoomIn')。单击(函数(e){
更改缩放(真);
});
$('.zoomOut')。单击(函数(e){
更改缩放(假);
});
});

当然,对于图像、导航和页面上的所有其他元素,您也必须这样做。如果你真的想这样做,你可以比这个小片段更聪明地处理CSS,但是记住,可能和想象中的应该不一样…

他正试图做相反的事情。@Kelvin Mackay它看起来不错,但实际上并不像点击ctrl+=那样放大。至少在这方面。你能想象如果一个随机的、不受信任的网站会扰乱你的显示设置,会有多混乱吗?是的,它可以工作,我的意思是没有错误或smth,但它不能按我的意愿缩放页面achieve@Davo正如我所说,控制浏览器的本机缩放是不可能的。如果希望使用CSS和Javascript,可以实现自己的缩放功能。
    .text-zoom-0{
        font-size: .75em;
    }
    .text-zoom-1{
        font-size: 1em;
    }
    .text-zoom-2{
        font-size: 1.25em;
    }
jQuery(function($) {
    var currentZoom = 1,
        minZoom = 0,
        maxZoom = 2,
        changeZoom = function(increase) {
            var newZoom = currentZoom;

            if (increase && currentZoom < maxZoom) {
                newZoom++;
                $('.text-zoom-' + currentZoom)
                    .addClass('.text-zoom-' + newZoom)
                    .removeClass('.text-zoom-' + currentZoom);
            } else if (currentZoom > minZoom) {
                newZoom--;
                $('.text-zoom-' + currentZoom)
                    .addClass('.text-zoom-' + newZoom)
                    .removeClass('.text-zoom-' + currentZoom);
            }

            currentZoom = newZoom;
        };

    $('.zoomIn').click(function(e) {
        changeZoom(true);
    });

    $('.zoomOut').click(function(e) {
        changeZoom(false);
    });
});