0

我想将此 javascript 代码更改为 jQuery 代码,但由于某种原因,当我使用 ID 正常定位它时,它不起作用。

Javascript代码:

scroll(xpos, ypos) { 
     document.getElementById('content_section').scrollTop=xpos;
}

jQuery代码(我写的):

scroll(xpos, ypos) { 
     $('#content_section').scrollTop(); 
}

我做错了什么?我需要它在 Internet Explorer 上工作。

对于我得到的一些答案,我尝试添加 scrollTop(xpos); 它仍然无法正常工作,请记住 IE 问题。

4

4 回答 4

0
  $('#content_section').scrollTop(xpos);

因为scrollTop()将参数作为滚动目标。

更多详情

.scrollTop()没有参数就像 getter 方法一样工作,这意味着

  $('#content_section').scrollTop(); // without argument

会给你当前的滚动位置#content_section

但是通过参数它充当一个setter方法,这意味着

  $('#content_section').scrollTop(xpos); // with argument

将设置为#content_section您通过参数传递的位置。

根据您的编辑

function scroll(xpos, ypos) { 
     // you need to set argument xpos
     $('#content_section').scrollTop(xpos); 
}

可能你可以试试

function scroll() {
   $('#content_section').scrollTo({left: xpos, top: ypox}, 400);
}
于 2012-06-04T16:13:41.237 回答
0

你有没有在 jQuery 方法中添加 xpos 的值:

$('#content_section').scrollTop(ypos);
于 2012-06-04T16:14:23.280 回答
0

我在 IE8 中测试了以下代码并且工作正常。请看一下。

<script type="text/javascript">
    function scroll(xpos, ypos) {
        $('#content_section').scrollTop(ypos);
    }
</script>

<form id="form1" runat="server">
    <input type="button" id="btn" value="scroll" onclick='scroll(0,0);' />
    <div id="content_section" style="overflow: auto; height: 60px; width: 60px;">
        a<br /> a<br /> a<br /> a<br /> a<br /> 
        a<br /> a<br /> a<br /> a<br /> a<br />  a<br />
    </div>
</form>
于 2012-06-04T16:14:39.490 回答
0
$('#content_section').scrollTop();

这只返回元素的位置。如果你想设置它只是使用。

 $('#content_section').scrollTop(xpos);

xpos 当然是到页面顶部的距离。

编辑:

function scroll(xpos, ypos) { 
     // you need to set argument xpos
     $('#content_section').scrollTop(ypos); 
}

$(document).ready(function(){
    scroll(0,150)
});

试试看它是否有效。请注意,元素必须是可滚动的,我不知道您在做什么,但当然如果整个页面小于窗口,则它不会滚动。

于 2012-06-04T16:15:19.950 回答