繁体   English   中英

JavaScript悬停效果

[英]Hover Effect with JavaScript

我需要JavaScript代码方面的帮助。 我正在尝试从XML数据中获取节点名称,我这样做是成功的,但是现在我试图创建一个小的div ,它将创建一个描述框,当我将鼠标悬停在上面时,该描述框将向我显示该元素的名称。该元素。 我的意思是,当我将鼠标悬停在书上时 ,描述框将显示 ,如果我将鼠标悬停在价格上 ,则描述框将显示价格 如果鼠标光标移到该元素的外面,则描述标签将消失,我将附加实时小提琴。 所有这些事情都需要使用JavaScript而非JQUERY完成。

现场小提琴


book
  title
  author
  year
  price

function moveDescrip(event)
{
    var d = document.getElementsByClassName("Desc")[0];
    var x=event.clientX;
    var y=event.clientY;
    d.style.top = (y + 10) + "px";
    d.style.left = (x + 10) + "px";
}

function showDescrip()
{
    var d = document.getElementsByClassName("Desc")[0];
    d.style.visibility="visible";
}

function hideDescrip()
{
    var d = document.getElementsByClassName("Desc")[0];
    d.style.visibility="hidden";
}

谢谢

我已经更新了您的jsfiddle ,现在可以使用了。

基本上,当您创建'li'元素时,我将使用node.name值向其添加_name属性。 这样,在showDescrip事件处理程序中,我只需要检索属性并将其放入浮动div中。 我正在用innerText做到这一点。 如果要显示带有图像等的更漂亮的浮动div,则必须用其他内容替换.innerText ='desc',也许在div内放置一个'span'元素并放置说明在里面。

最后,您需要调用stopPropagation(),因此只有您所徘徊的元素才会显示说明。 如果您不这样做,则只会看到根节点的描述。

function showDescrip(e)
{
    if (!e) e = window.event;
    var d = document.getElementsByClassName("Desc")[0];
    var descSpan = document.getElementById('float-description');
    var text = document.createTextNode(this._name);
    descSpan.removeChild(descSpan.firstChild);
    descSpan.appendChild(text);
    d.style.visibility="visible";
    e.stopPropagation();
 }

...

function traverse(node) {
var ul = document.createElement('ul');
if (typeof node !== 'undefined') {
    var li = document.createElement('li');
    li._name = node.name;
    var desc = document.createTextNode(node.name);
    //more code...

编辑了新的jsfiddle,其中包含我对span的介绍。

我不确定它是否可以那样做

<body>
<div id="mydiv">
<p id="p1" title="" onclick="myfunction()">p one</p>
<p id="p2" title="">p two</p>
</div>

<script type="text/javascript">
function myfunction() {

    var first = "my first p";
    var second = "my second p";
    document.getElementById("p1").title = first;
    document.getElementById("p2").title = second;
}   

您可以从javascript生成那些

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM