2014-09-05 61 views
1

我設法做了一個鼠標,使用jQuery。其中我聲明一個div裏面如何在div中使用jquery在mouseover旁邊定位div?

nodeEnter.append("circle") 
.attr("r", 30) 
.style("stroke", "white") 
.style("stroke-width", 4) 
.attr("fill", "url(#img)") 
.on("mouseover", function(d) { 
    0; 

    div.transition() 
     .duration(500) 
     .style("opacity", .9) 


    div.html(
     "<div id='hover'>" + 
     "<div>" + 
     "<div>" + 
     "<div>" + 
     "<div class='g-hover-card'>" + 
     "<img src='" + d.cover + "' alt='' />" + 
     "<div class='user-avatar'>" + 
     "<img src='" + d.img + "' alt='' />" + 
     "</div>" + 
     "<div class='info'>" + 
     "<div class='description'>" + 
     "<font size='5px'>" + d.name + "</font>" + "<br /><font color='black'>" + d.relationship + "</font>" + 

     "</div>" + 
     "</div>" + 
     "<div class='bottom'>" + 
     "<br/>" + 
     "<a onclick=\"window.open('http://facebook.com/" + d.id + ");\" rel='publisher' class='btn btn-primary btn-block'>" + "Follow on Facebook" + 
     "</a>" + 
     "</div>" + 
     "</div>" + 
     "</div>" + 
     "</div>" + 
     "</div>" + 
     "</div>" 

    ) 

}) 

.on("mouseout", function(d) { 
    div.transition() 
     .duration(500) 
     .style("opacity", 0); 
}); 

因此,當我在圓上懸停在div表明它只是其不位於圓旁邊。它在屏幕的左上角。我怎樣才能把它放在圓圈附近?

這裏http://jsfiddle.net/3mdszohq

+0

用簡單的CSS('position:absolute')定位相對於圓的相對位置。然後,在懸停上顯示它。 – lesssugar 2014-09-05 09:49:03

+0

可以提供dis的小提琴鏈接,這樣我們可以給出精確的解決方案 – Khaleel 2014-09-05 10:21:00

+0

檢查了這一點[jsfiddle] http://jsfiddle.net/3mdszohq/ – 2014-09-05 12:16:50

回答

4

檢查我重寫了上jsFiddle你的代碼。我希望這會幫助你解決問題:

nodeEnter.append("circle") 
.attr("r", 30) 
.style("stroke", "white") 
.style("stroke-width", 4) 
.attr("fill", "url(#img)") 
.on("mouseover", function(d) { 

    circlePos = this.getBoundingClientRect(); 

    div.transition() 
     .duration(500) 
     .style("opacity", .9) 
     .style("left", (circlePos.left + circlePos.width + window.scrollX) + 'px') 
     .style("top", (circlePos.top + window.scrollY) + 'px') 
     .style("position", "absolute") 


    div.html(
     "<div >" + 
     "<div>" + 
     "<div>" + 
     "<div>" + 
     "<div class='g-hover-card'>" + 
     "<img src='" + d.cover + "' alt='' />" + 
     "<div class='user-avatar'>" + 
     "<img src='" + d.img + "' alt='' />" + 
     "</div>" + 
     "<div class='info'>" + 
     "<div class='description'>" + 
     "<font size='5px'>" + d.name + "</font>" + "<br /><font color='black'>" + d.relationship + "</font>" + 

     "</div>" + 
     "</div>" + 
     "<div class='bottom'>" + 
     "<br/>" + 
     "<a onclick=\"window.open('http://facebook.com/" + d.id + ");\" rel='publisher' class='btn btn-primary btn-block'>" + "Follow on Facebook" + 
     "</a>" + 
     "</div>" + 
     "</div>" + 
     "</div>" + 
     "</div>" + 
     "</div>" + 
     "</div>" 

    ) 

}) 

.on("mouseout", function(d) { 
    div.transition() 
     .duration(500) 
     .style("opacity", 0); 
}); 

Code Demo

+0

謝謝我已經嘗試過,但它仍然無法正常工作。我設法讓一個jsfiddle [jsfiddle] http://jsfiddle.net/3mdszohq/ – 2014-09-05 12:18:18

+0

非常感謝您修復我的代碼..我也有另一個問題抱歉,我忘了將它添加到我的問題。有沒有可能的div不會淡出,直到鼠標沒有指向圓圈和div?因爲div上有一個鏈接,用戶點擊它時可以繼續。 – 2014-09-07 08:23:07

+1

請檢查新[jsFiddle](http://jsfiddle.net/3mdszohq/4/)。我認爲這會解決你的問題。 – 2014-09-07 12:29:03