Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 - Fatal编程技术网

Javascript 使用Jquery确定页面上元素位置的方法

Javascript 使用Jquery确定页面上元素位置的方法,javascript,jquery,Javascript,Jquery,我正在使用offset()获取图像的当前位置。我将图像放置在绝对位置,以便它挂起第一个li作为指针。单击任何li时,我希望图像滑动到该li 我第一次点击li时,它会滑到页面的中心。但是,当我进行后续单击时,它会移动适当的距离,仅在页面的中心,因为它已经被错误地设置 我希望这是有道理的 这是我的HTML <ul id="llist"> <li class="t current"><a href="#"><span>solutions</

我正在使用
offset()
获取图像的当前位置。我将图像放置在绝对位置,以便它挂起第一个li作为指针。单击任何li时,我希望图像滑动到该li

我第一次点击li时,它会滑到页面的中心。但是,当我进行后续单击时,它会移动适当的距离,仅在页面的中心,因为它已经被错误地设置

我希望这是有道理的

这是我的HTML

<ul id="llist">
    <li class="t current"><a href="#"><span>solutions</span></a><img src="images/bg-tab-leader-arrow.png" width="24" height="53" title="pointer" class="pointer" /></li>
    <li class="m"><a href="#"><span>credit mangement solutions</span></a></li>
    <li class="b"><a href="#"><span>third party additions</span></a></li>
</ul>
CSS:


如果您想知道为什么我第一次点击时,它会位于页面中心,而不是将其滑动到相对位置,我们将不胜感激

这句话让我有点困惑:

var thisTop = $('#llist').offset().top;
…因为它获取的是
列表的
顶部
位置,而不是单击的
  • 如果我将其更改为:

    var thisTop = $(this).offset().top;
    
    ……看来效果不错

    示例:


    编辑:

    问题可能是您需要使用
    .position()
    而不是
    .offset()
    ,以便它使用容器中
  • 的相对位置

    编辑:


    另外,看起来您需要为容器提供
    相对
    定位
    llist

    啊,很抱歉,我把它改为测试不同的行了。我们在谈论jquery吗?@Andy,我猜您需要使用
    .position()
    而不是
    .offset()
    。我将更新我的答案,但我必须先中断几分钟才能进行测试。我将它改为位置,而不是偏移量和它的闭合点:)@Andy:使
    llist
    position:relative
    相对定位。
    var thisTop = $('#llist').offset().top;
    
    var thisTop = $(this).offset().top;