0

我希望有人可以提供一些关于从以下链接获取滑块以在 Wordpress 中运行的建议。我可以很好地使用 html、css 和相当数量的 php/mysql,但是我对 WordPress、javascript/jQuery 以及它们之间的交互方式有点不熟悉。我一直在寻找并没有看到这个确切的问题的解决方案,或者可能只是不太了解这个问题。我确实看到 jquery 已经在我们的 WP 标头中排队。

kirupa.com 滑块

我不使用现有插件的原因是因为按钮和内容都是动态的,基于 php/mysql 数据库查询和 while 循环来生成两者(想想产品规格的列,3 或 4 列一次在包装器中可见,顶部的按钮将特定产品带到最左侧)。我确定我已经解决了这方面的问题,并且只需要让动画工作 - 目前一切都正确加载但按钮不起作用。我还尝试从演示中获取确切的代码,以确保我没有因为我的更改而搞砸——而且它只有在作为独立页面查看时才有效,没有所有的 WordPress 页眉、页脚等。

如果有人能指出需要做什么才能让链接滑块在 WordPress 模板中运行,我可以将其应用到实际项目中,我将永远感激不尽!也许有人做过类似的事情,也可以提出其他方法来解决它 - 无论哪种方式,我都在听!

提前致谢!

编辑:作为尝试解决这个问题的测试,我直接从上面链接的演示中获取了源代码 - 这本身就是一个 htm 页面,但我试图将它带入 WordPress 页面模板的尝试失败了。我忽略了 css,因为我认为这不是问题,但这里是演示正文中的全部代码。我假设我需要以不同的方式处理脚本部分 - 我需要创建一个单独的 js 文件并将其排入队列吗?标记不同?我对此一无所知,并感谢任何帮助。如果您要在 WordPress 模板中运行它,您会做些什么不同的事情?

    <div id="contentContainer">
    <div id="wrapper">
        <div id="itemOne" class="content">
            <h1>AaBbCc</h1>
            <p>For some reason, everybody likes <strong>Helvetica</strong>. In order to fit in, I have learned to like it as well.</p>
        </div>
        <div id="itemTwo" class="content">
            <h1>AaBbCc</h1>
            <p>Did you know that <strong>Georgia</strong> was designed by 
            Matthew Carter in 1993? Neither did I.</p>
        </div>
        <div id="itemThree" class="content">
            <h1>AaBbCc</h1>
            <p>The Impact font is used by people who want to make a difference 
            in the world.</p>
        </div>
        <div id="itemFour" class="content">
            <h1>AaBbCc</h1>
            <p>By using Comic Sans, the things you write automatically become 
            funnier. Try it out sometime!</p>
        </div>
    </div>
</div>
<div id="navLinks">
    <ul>
        <li class="itemLinks" data-pos="0px">1</li>
        <li class="itemLinks" data-pos="-550px">2</li>
        <li class="itemLinks" data-pos="-1100px">3</li>
        <li class="itemLinks" data-pos="-1650px">4</li>
    </ul>
</div>
<script src="http://www.kirupa.com/html5/examples/js/prefixfree.min.js"></script>
<script>
    var links = document.querySelectorAll(".itemLinks");
    var wrapper = document.getElementById("wrapper");

    for (var i = 0; i < links.length; i++) {
        var link = links[i];
        link.addEventListener('click', setPosition, false);
    }

    addClass(links[0], "active");

    function setPosition(e) {
        removeActiveLinks();

        var clickedLink = e.target;
        addClass(clickedLink, "active");

        var position = clickedLink.getAttribute("data-pos");
        wrapper.style.left = position;
    }

    function removeActiveLinks() {
        for (var i = 0; i < links.length; i++) {
            removeClass(links[i], "active");
        }
    }

    function addClass(element, classToAdd) {
        var currentClassValue = element.className;

        if (currentClassValue.indexOf(classToAdd) == -1) {
            if ((currentClassValue == null) || (currentClassValue === "")) {
                element.className = classToAdd;
            } else {
                element.className += " " + classToAdd;
            }
        }
    }

    function removeClass(element, classToRemove) {
        var currentClassValue = element.className;

        // removing a class value when there is more than one class value present
        // and the class you want to remove is not the first one
        if (currentClassValue.indexOf(" " + classToRemove) != -1) {
            element.className = element.className.replace(" " + classToRemove, "");
            return;
        }

        // removing the first class value when there is more than one class
        // value present
        if (currentClassValue.indexOf(classToRemove + " ") != -1) {
            element.className = element.className.replace(classToRemove + " ", "");
            return;
        }

        // removing the first class value when there is only one class value 
        // present
        if (currentClassValue.indexOf(classToRemove) != -1) {
            element.className = element.className.replace(classToRemove, "");
            return;
        }
    }
</script>
4

1 回答 1

0

得到它的工作,谢谢你指出我正确的方向。如果其他人偶然发现这一点并且和我一样对 WP 来说是新手,那么脚本部分需要排队——这篇文章很好地说明了这一点:

http://wpcandy.com/teaches/how-to-load-scripts-in-wordpress-themes/#.UkBv7T8TPTo

整个脚本部分按原样保存在 js 文件中,并放置在主题文件夹中。在我的项目中,我按照我链接到的说明在 functions.php 中注册了它,并在实际项目页面上的 php 中将它排入队列,因为它只需要在那一页上。

于 2013-09-23T19:42:55.540 回答