2014-09-05 3 views
1

jQuery를 사용하여 마우스를 관리했습니다. I는 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가 나타났다는 그 내부에 상기 원의 옆에 위치하지 단지. 그것의 왼쪽 상단에있는 화면. 원 근처에 어떻게 놓을 수 있습니까?

내가 jsFiddle에 코드를 다시 한 여기 http://jsfiddle.net/3mdszohq

+0

평범한 CSS ('position : absolute')로 다이브를 원에 상대적으로 배치하십시오. 그런 다음 마우스를 올려 놓습니다. – lesssugar

+0

우리는 정확한 솔루션을 제공 할 수 있도록 dis에 대한 바이올린 링크를 제공 할 수 있습니다. – Khaleel

+0

체크 아웃 [jsfiddle] http://jsfiddle.net/3mdszohq/ –

답변

4

를 확인합니다. 나는이 문제를 해결하는 데 도움이되기를 바랍니다 :

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/ –

+0

내 코드를 수정 해 주셔서 고맙습니다. 또 다른 문제가 생겨서 미안 해요. 내 문제에 그것을 추가하는 것을 잊어 버렸습니다. 마우스가 원과 div를 가리 키지 않을 때까지 div가 사라지지 않을 가능성이 있습니까? div에 링크가있어서 사용자가 클릭 할 때 링크를 사용할 수 있기 때문입니다. –

+1

새로운 [jsFiddle] (http://jsfiddle.net/3mdszohq/4/)을 확인하십시오. 나는 이것이 당신의 문제를 해결할 것이라고 생각합니다. –

관련 문제