【问题标题】:Show/Hide & Mouseover Javascript显示/隐藏和鼠标悬停 Javascript
【发布时间】:2012-07-12 17:50:47
【问题描述】:

我一直在研究显示/隐藏 javascript,并通过鼠标悬停效果进一步推动它以实现我想要的。我已经设置了一个 Fiddle 以获得更好的可访问性。但是,我现在想通过最多 4 个不同的文本区域来推送它(“单击此处获取更多信息”),并且每个文本区域都会有更多悬停文本,因为我试图在 HTML 代码本身中显示。我现在使用和编辑的 javascript 具有对应于“0”和“1”的“ID”,这不适用于我当前的 HTML 代码,因为它具有像“uu3308-10”(使用 Adob​​e Muse 制作)这样的时髦名称。 现在,我想知道我必须在 Javascript 中更改哪些变量才能使其正常运行,有没有办法编译此代码,以便它与至少 11 个其他“单击此处了解更多信息”信息”点?

注意:当前的 javascript 使 showMoreText2 出现在两个 showMoreText 区域下(希望一次只出现一个悬停文本)。

点击这里查看小提琴 --> http://jsfiddle.net/TPLOR/vy6nS/

谢谢,我希望这对您有所帮助。 =)

【问题讨论】:

  • 你能澄清你想要达到的结果吗?小提琴很好,但在问题本身中查看代码/所需输出会很有帮助,以最大限度地提高人们提供帮助的机会。
  • 1) 你点击“点击这里查看更多信息”,然后弹出“这里,你会找到更多信息”,当你将鼠标悬停在“这里,你会找到更多信息”时,您将获得更多包含更多信息的 div。所以它是一个显示/隐藏效果,添加了鼠标悬停以获取更多信息 - 基本上显示了 3 个不同级别的信息。第二级也有 4 个不同的文本区域。
  • 注意您的鼠标悬停想法将如何转化为移动用户。

标签: javascript html css mouseover show-hide


【解决方案1】:

有点骇人听闻:(见http://jsfiddle.net/vy6nS/30/)

window.onload = function() {
    var elems1 = document.getElementsByClassName("expander");
    for (i = 0; i < elems1.length; i++) {
        elems2 = elems1[i].childNodes;
        for (x = 0; x < elems2.length; x++) {
            if (elems2[x].className == "toggle") elems2[x].onclick = function() {
                showMore(0, this);
            };
            else if (elems2[x].className == "showMoreText") {
                elems2[x].onmouseover = function() {
                    showChilds("block", this);
                };
                elems2[x].onmouseout = function() {
                    showChilds("none", this);
                };
            }
        }
    }
};

function get_nextsibling(n) {
    x = n.nextSibling;
    while (x.nodeType != 1) {
        x = x.nextSibling;
    }
    return x;
}

function showChilds(disp, elem) {
    get_nextsibling(elem).style.display = disp;
}

function showMore(disp, elem) {
    var children = elem.parentNode.childNodes;
    for (i = 0; i < children.length; i++) {
        if (disp == 0 && children[i].className == "showMoreText") {
            children[i].style.display = children[i].style.display == "none" ? "block" : "none";
        }
    }

}​

【讨论】:

  • 谢谢mightyuhu,我要添加什么变量,这样我就可以再添加两点,例如“3在这里,您会找到更多信息”和“4在这里,您会找到更多信息”拥有各自的鼠标悬停文本?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-18
  • 2012-01-27
  • 2011-10-01
  • 2014-01-10
  • 2011-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多