Firefox上的JQuery.position()和.offset()错误 我有一个滚动div,通过jQuery确定中间的元素。我尝试过使用position()和offset()参数,在这两种情况下,Firefox都没有得到正确的答案,而Chrome和Safari却得到了正确的答案

Firefox上的JQuery.position()和.offset()错误 我有一个滚动div,通过jQuery确定中间的元素。我尝试过使用position()和offset()参数,在这两种情况下,Firefox都没有得到正确的答案,而Chrome和Safari却得到了正确的答案,jquery,firefox,position,offset,Jquery,Firefox,Position,Offset,位置().top或offset().top确定中间元素相对于容器的位置。然而firefox是通过滚动容器来确定它的,因此在滚动过程中总是给出第三个元素,而不是中间的元素 这里有两个小提琴,一个使用.position(),另一个使用.offset() 偏移量() 位置()-- 有人知道为什么会发生这种情况或者如何解决吗?如果查看实际的js文件,根据浏览器的不同,滚动行为的处理方式会有所不同。对于Firefox,它操作的是滚动元素的-moz变换,而不是滚动元素内部的位置 演示: jQuery fun

位置().top或offset().top确定中间元素相对于容器的位置。然而firefox是通过滚动容器来确定它的,因此在滚动过程中总是给出第三个元素,而不是中间的元素

这里有两个小提琴,一个使用.position(),另一个使用.offset()

偏移量() 位置()--


有人知道为什么会发生这种情况或者如何解决吗?

如果查看实际的js文件,根据浏览器的不同,滚动行为的处理方式会有所不同。对于Firefox,它操作的是滚动元素的
-moz变换
,而不是滚动元素内部的位置

演示:

jQuery

function test() {

    var $ul = $('#leftwheel');

    $('#bkodate').val('');

    $ul.find('li').each(function(n) {

        var $this = $(this);

        var $mozTransform = $(".slotinner").css("-moz-transform");
        var mozfix = !($mozTransform === null) ? parseInt($mozTransform.substring($mozTransform.lastIndexOf(',') + 1, $mozTransform.length - 3)) : 0;

        if ($this.position().top + $this.height() + mozfix > 100 && $this.position().top + mozfix < $ul.height()) {

            var result = $('#leftwheel li:eq(' + parseInt(n - 2) + ')').html();
            $('#bkodate').val(result);
        }
    });
}
var leftwheel = new iScroll('leftwheel', {
    snap: 'li',
    momentum: true,
    hScrollbar: false,
    vScrollbar: false,
    onScrollEnd: function() {
        test();
    }
});
功能测试(){
var$ul=$(“#左轮”);
$('bkodate').val('');
$ul.find('li')。每个函数(n){
var$this=$(this);
var$mozTransform=$(“.slotiner”).css(“-mozTransform”);
var mozfix=!($mozTransform===null)?parseInt($mozTransform.substring($mozTransform.lastIndexOf(','))+1,$mozTransform.length-3)):0;
如果($this.position().top+$this.height()+mozzix>100&&$this.position().top+mozzix<$ul.height()){
var result=$('#leftwheel li:eq('+parseInt(n-2)+')).html();
$('#bkodate').val(结果);
}
});
}
var leftwheel=新iScroll('leftwheel'{
抓拍:"李",,
动量:是的,
hScrollbar:错,
vScrollbar:false,
onScrollEnd:function(){
test();
}
});

可能与我写的问题重复。答案与问题无关,然后被忽略,好像得到了回答