Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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 触发器';假人';鼠标滚轮事件_Javascript_Jquery_Mouseevent_Mousewheel_Scrollwheel - Fatal编程技术网

Javascript 触发器';假人';鼠标滚轮事件

Javascript 触发器';假人';鼠标滚轮事件,javascript,jquery,mouseevent,mousewheel,scrollwheel,Javascript,Jquery,Mouseevent,Mousewheel,Scrollwheel,是否有方法触发具有任意增量的滚轮事件。 就像jQuery对“单击”所做的那样: $('#selector').trigger('click'); 我需要这样的东西,只需要一个滚轮,比如: $('#selector').trigger('DOMMouseScroll',{delta: -650}); //or mousewheel for other browsers 我不能用css欺骗做任何像“伪造”这样的事情,我需要触发实际的本机(或尽可能接近的)事件 谢谢 试试看: .trigger(“

是否有方法触发具有任意增量的滚轮事件。 就像jQuery对“单击”所做的那样:

$('#selector').trigger('click');
我需要这样的东西,只需要一个滚轮,比如:

$('#selector').trigger('DOMMouseScroll',{delta: -650});
//or mousewheel for other browsers
我不能用css欺骗做任何像“伪造”这样的事情,我需要触发实际的本机(或尽可能接近的)事件

谢谢

试试看:

.trigger(“鼠标滚轮”{wheelDelta:100})

(完全未经测试。灵感来自)

实际上,这样做效果更好:

this.trigger("mousewheel", [0])

如果您写入了任何内容,这将调用滚动功能

$(window).scroll();
你试过这个吗?
“控制鼠标滚轮”的插件:)

您好,您可以通过添加事件侦听器来实现这一点。我已经搜索了相同的代码,得到了下面的代码片段,它正在工作。检查您是否有相同的要求



JavaScript中的鼠标滚轮示例
#卷轴{
宽度:250px;
高度:50px;
边框:2件纯黑;
背景颜色:浅黄色;
顶部:100px;
左:50px;`在这里输入代码`
位置:绝对位置;
}
window.onload=函数()
{
//为Mozilla添加事件侦听器
if(window.addEventListener)
document.addEventListener('DOMMouseScroll',moveObject,false);
//电影/歌剧等
document.onmouseheel=moveObject;
}
函数moveObject(事件)
{
var-delta=0;
如果(!event)event=window.event;
//使三角洲正常化
if(事件轮三角洲){
//音乐与歌剧
delta=event.wheel delta/60;
}else if(事件详细信息){
//W3C
delta=-event.detail/2;
}
var currPos=document.getElementById('scroll').offsetTop;
//计算对象的下一个位置
currPos=parseInt(currPos)-(增量*10);
//移动对象的位置
document.getElementById('scroll').style.top=currPos+“px”;
document.getElementById('scroll').innerHTML=event.wheelDelta+“:”+event.detail;
}
滚动鼠标滚轮可上下移动此DIV。
事件影响
------------------------------------------------------------
基于delta变量,您可以编写自己的自定义功能


在HTML5中,鼠标滚动事件正在被处理,您也可以用这种方式尝试。

我在制作自己的滚动时使用了这段代码

$('body').bind('mousewheel DOMMouseScroll', function(event) {
     var delta = Math.max(-1, Math.min(1, (event.originalEvent.wheelDelta || -event.originalEvent.detail))) * -1;
}

我添加了
*-1
以反转。您可以删除它。

您需要使用jQuery.Event 例如:

// Create a new jQuery.Event object with specified event properties.
var e = jQuery.Event( "DOMMouseScroll",{delta: -650} );

// trigger an artificial DOMMouseScroll event with delta -650
jQuery( "#selector" ).trigger( e );

查看此处的更多信息:

您可以使用jquery滚动事件,在回拨时您可以进行计算。请查找代码snipet是否有用

//创建虚拟段落
$(“p”).clone().appendTo(document.body);
$(“p”).clone().appendTo(document.body);
$(“p”).clone().appendTo(document.body);
$(“p”).clone().appendTo(document.body);
$(“p”).clone().appendTo(document.body);
$(“p”).clone().appendTo(document.body);
//虚拟段落到此结束
//每次鼠标滚轮滚动时,都会触发下面的scroll()回调
$(window).scroll(function(){//i reference to window,如果需要,可以标识一个div并提供div iD引用
控制台日志(“scolling…”);
//使用所需的增量u进行更新。
});

滚动演示
div{
颜色:蓝色;
}
p{
颜色:绿色;
}
跨度{
颜色:红色;
显示:无;
}
尝试滚动iframe。
段落-滚动发生了


您可以尝试在控制台中键入此命令,并查看其效果:

document.body.scrollTop = document.body.scrollTop + 200
其中200是任意数。 同样,您也可以使用scrollLeft尝试以下操作:

document.body.scrollLeft = document.body.scrollLeft + 200

您可以尝试使用这个概念和window setInterval()方法

另外

可以按如下方式获取图元的偏移量:

jQuery("#vote-to-add-section").offset()
这将为您提供如下结果:

{top: 9037.1875, left: 268}
您可以使用以下内容滚动到该元素:

document.body.scrollTop = jQuery("#vote-to-add-section").offset().top
或者

如果您只想在首次加载站点时将站点向下滚动到特定元素,则可以使用具有id的元素执行此操作:

将#idnamehere添加到正在搜索的url的末尾。页面上必须有具有该id名称的元素

例如,比较这些URL,以及在URL地址栏中输入它们时得到的结果:


最后带有“投票添加”部分的元素会自动向下滚动到id为“投票添加”部分的元素。

您是否检查了“尝试检查”这篇文章?我认为它符合您的需要。抱歉,但不幸的是,我需要触发事件,而不仅仅是查找页面的滚动“何处”。问题是,我需要在许多元素、文档和其他元素上触发它,因为有一些JS功能绑定到这些事件(scrollwheel)上,这些事件可以做其他事情,也可以滚动。我需要触发器在任何情况下都能工作,唯一的方法是在元素上触发本机事件。谢谢你,顺便说一下:)是的,滚动是基于位置的,我需要对scrollwheel事件的实际本机调用,因为有一些操作绑定到这些事件。无论如何,这可能会有所帮助,它使用的是原生js而不是jquery:对不起,没有用。我正在尝试找到另一种方法来处理操作系统级宏应用程序。无论如何,谢谢:)我相信这违反了“我不能用css欺骗做任何像‘伪造’这样的事情”。在文档中,它没有说它以跨浏览器的方式支持
delta
属性。实际上,它甚至没有提到它在事件对象中支持它。
jQuery("#vote-to-add-section").offset()
{top: 9037.1875, left: 268}
document.body.scrollTop = jQuery("#vote-to-add-section").offset().top