3

我在我的页面上选择下拉菜单

<select id="select1" size="1" style="background-color:#FFFFD7">
<option>Choose a Position</option>
<option value="1">Job!</option>
<option value="2">Job!</option>
<option value="3">Job!</option>
<option value="4">Job!</option>
<option value="5">Job!</option>
<option value="6">Job!</option>
<option value="7">Job!</option>
<option value="8">Job!</option>
<option value="9">Job!</option>
</select>    

我有一个我试图一起破解的 jquery 脚本。

    <script type="text/javascript">
    jQuery(document).ready(function() {
        jQuery("#select1").change(function(){
            var jump = jQuery("#select1").val();
            var new_position = jQuery('#job'+jump).offset();
            window.scrollTo(new_position.left,new_position.top);
            return false;
        });​
    }
    </script>

目标是一旦有人选择了工作,它就会选择一个值,它会转到页面下方的锚链接

<a href="job1"></a> 

希望没有刷新。任何帮助,将不胜感激!

4

3 回答 3

1

您可以animate像这样使用以动画方式滚动到选定的元素:

<script type="text/javascript">
jQuery(document).ready(function() {
    jQuery("#select1").change(function(){
        var jump = jQuery("#select1").val();
        var new_position = jQuery('#job'+jump).offset();
        $('body, html').animate({scrollTop, jQuery('#job'+jump).offset().top})
        return false;
    });​
}
</script>
于 2012-06-21T21:51:39.867 回答
1

采用:

window.location.hash="someAnchor";

跳到锚点<a id="someAnchor" />

于 2012-06-21T21:52:16.760 回答
1

这个简单的对我有用:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>  
<script type="text/javascript">
    function scrollTo(target){
        var targetPosition = $(target).offset().top;
        $('html,body').animate({ scrollTop: targetPosition}, 'slow');
    }
</script>

现在您可以使用 onChange 事件来执行该函数:

<select name="dropdpown" size="1" onChange="scrollTo(this.value)">
    <option value="#link">text</option>
</select>

如果您提供这样的正确链接,一切正常

<div id="link"> ...

我花了一段时间,因为我不习惯 javascript,但终于找到了一个简单易用的解决方案。

问候mz

于 2012-08-13T15:38:50.183 回答