Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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
我的幻灯片锚定jQuery例程是正确使用JavaScript,还是有更好的方法?_Javascript_Jquery_Scroll - Fatal编程技术网

我的幻灯片锚定jQuery例程是正确使用JavaScript,还是有更好的方法?

我的幻灯片锚定jQuery例程是正确使用JavaScript,还是有更好的方法?,javascript,jquery,scroll,Javascript,Jquery,Scroll,我目前正在做一个单页设计的项目,它会在链接的各个部分之间上下滑动 目前,我已经写了如下内容: <ul> <li><a href="javascript:void(0)" onClick="goToByScroll('top')">home</a></li> <li><a href="javascript:void(0)" onClick="goToByScroll('artistsmaterials')

我目前正在做一个单页设计的项目,它会在
链接的各个部分之间上下滑动

目前,我已经写了如下内容:

<ul>
    <li><a href="javascript:void(0)" onClick="goToByScroll('top')">home</a></li>
    <li><a href="javascript:void(0)" onClick="goToByScroll('artistsmaterials')">artist's materials</a></li>
    <li><a href="javascript:void(0)" onClick="goToByScroll('pictureframing')">picture framing</a></li>
    <li><a href="javascript:void(0)" onClick="goToByScroll('gallery')">gallery</a></li>
    <li><a href="javascript:void(0)" onClick="goToByScroll('contactus')">contact us</a></li>  
</ul>

这样行吗?或者这应该以不同的方式完成吗?

更好的方法是不使用锚。在这种情况下,您可以简化标记和代码,如下所示:

<ul id="scrollMenu">
    <li rel="top">home</li>
    <li rel="artistsmaterials">artist's materials</li>
    <li rel="pictureframing">picture framing</li>
    <li rel="gallery">gallery</li>
    <li rel="contactus">contact us</li>  
</ul>

这会向
  • 元素添加一个单击处理程序,告诉它们使用其
    rel=“”
    属性来知道滚动到哪里。只需将CSS更改为指向
  • 元素而不是
    ,您就万事俱备了。

    更好的方法是不使用锚定。在这种情况下,您可以简化标记和代码,如下所示:

    <ul id="scrollMenu">
        <li rel="top">home</li>
        <li rel="artistsmaterials">artist's materials</li>
        <li rel="pictureframing">picture framing</li>
        <li rel="gallery">gallery</li>
        <li rel="contactus">contact us</li>  
    </ul>
    

    这会向
  • 元素添加一个单击处理程序,告诉它们使用其
    rel=“”
    属性来知道滚动到哪里。只需将CSS更改为指向
  • 元素而不是
    ,您就一切就绪。

    您不应该使用内联JavaScript,而是使用事件绑定。您不应该使用内联JavaScript,而是使用事件绑定。
    <ul id="scrollMenu">
        <li rel="top">home</li>
        <li rel="artistsmaterials">artist's materials</li>
        <li rel="pictureframing">picture framing</li>
        <li rel="gallery">gallery</li>
        <li rel="contactus">contact us</li>  
    </ul>
    
    $(function() {
      $("#scrollMenu li").click(function() {        
       $('html,body').animate({scrollTop: $("#"+$(this).attr("rel")).offset().top},'slow');
      });
    });