Javascript 如何将这个滚动脚本转换为单个函数?

Javascript 如何将这个滚动脚本转换为单个函数?,javascript,jquery,Javascript,Jquery,所以我有一个脚本,当鼠标移到一些定义的锚标记上时,它允许div的内容平滑地滚动 我想知道,如果我每次在站点的不同部分使用该功能时,不必复制脚本并更改一些选定的元素和函数名,而是可以将整个内容放入一个函数中,然后将值传递给该函数 这里有一个指向JSFIDLE的链接,它将让您了解到目前为止JSFIDLE的基本工作原理。谢谢你的帮助 简单。您所要做的就是用一个函数包装它,并包括您想要作为参数的ID 我有权和你的一个舞蹈家合作: 看看你能不能让它和其他人一起工作 代码如下: function Scro

所以我有一个脚本,当鼠标移到一些定义的锚标记上时,它允许div的内容平滑地滚动

我想知道,如果我每次在站点的不同部分使用该功能时,不必复制脚本并更改一些选定的元素和函数名,而是可以将整个内容放入一个函数中,然后将值传递给该函数

这里有一个指向JSFIDLE的链接,它将让您了解到目前为止JSFIDLE的基本工作原理。谢谢你的帮助


简单。您所要做的就是用一个函数包装它,并包括您想要作为参数的ID

我有权和你的一个舞蹈家合作:

看看你能不能让它和其他人一起工作

代码如下:

function Scroller(scrollUp, scrollDown, feed){

    var step = 50;
    var scrolling = false;

    // Wire up events for the 'scrollUp' link:
    $(scrollUp).bind("click", function(event) {
        event.preventDefault();
        // Animates the scrollTop property by the specified
        // step.
        $(feed).animate({
            scrollTop: "-=" + step + "px"
        });
    }).bind("mouseover", function(event) {
        scrolling = true;
        scrollContent("up");
    }).bind("mouseout", function(event) {
        scrolling = false;
    });


    $(scrollDown).bind("click", function(event) {
        event.preventDefault();
        $(feed).animate({
            scrollTop: "+=" + step + "px"
        });
    }).bind("mouseover", function(event) {
        scrolling = true;
        scrollContent("down");
    }).bind("mouseout", function(event) {
        scrolling = false;
    });

    function scrollContent(direction) {
        var amount = (direction === "up" ? "-=1px" : "+=1px");
        $(feed).animate({
            scrollTop: amount
        }, 1, function() {
            if (scrolling) {
                scrollContent(direction);
            }
        });
    }

}

Scroller("#scrollUp", "#scrollDown", "#feed");

简单。您所要做的就是用一个函数包装它,并包括您想要作为参数的ID

我有权和你的一个舞蹈家合作:

看看你能不能让它和其他人一起工作

代码如下:

function Scroller(scrollUp, scrollDown, feed){

    var step = 50;
    var scrolling = false;

    // Wire up events for the 'scrollUp' link:
    $(scrollUp).bind("click", function(event) {
        event.preventDefault();
        // Animates the scrollTop property by the specified
        // step.
        $(feed).animate({
            scrollTop: "-=" + step + "px"
        });
    }).bind("mouseover", function(event) {
        scrolling = true;
        scrollContent("up");
    }).bind("mouseout", function(event) {
        scrolling = false;
    });


    $(scrollDown).bind("click", function(event) {
        event.preventDefault();
        $(feed).animate({
            scrollTop: "+=" + step + "px"
        });
    }).bind("mouseover", function(event) {
        scrolling = true;
        scrollContent("down");
    }).bind("mouseout", function(event) {
        scrolling = false;
    });

    function scrollContent(direction) {
        var amount = (direction === "up" ? "-=1px" : "+=1px");
        $(feed).animate({
            scrollTop: amount
        }, 1, function() {
            if (scrolling) {
                scrollContent(direction);
            }
        });
    }

}

Scroller("#scrollUp", "#scrollDown", "#feed");

这是一个自定义插件的工作。看到这个演示了吗

您可以这样初始化它:

$('#feed').scroller({
    up: '#scrollUp',
    down: '#scrollDown'
});

这是一个自定义插件的工作。看到这个演示了吗

您可以这样初始化它:

$('#feed').scroller({
    up: '#scrollUp',
    down: '#scrollDown'
});

你想用它做一个jQuery插件吗?是的,差不多。我会经常调用这个脚本,只是不知道如何将它转换成插件。你想用它制作jQuery插件吗?是的,差不多。我会经常调用脚本,只是不知道如何将其转换为插件。太棒了!我会玩一会儿,谢谢。制作一个插件是我的追求,因为我会称它很多。太棒了!我会玩一会儿,谢谢。制作一个插件是我的追求,因为我会叫它很多。谢谢!我也会玩这个,看看效果如何。谢谢!我也会玩这个,看看效果如何。