2010-08-24 26 views
22

tôi đang chơi với sự kiện onmouseover trong javascriptMô tả Box sử dụng "onmouseover"

Tôi muốn một hộp nhỏ để bật lên và tiếp tục cho đến khi không có onmouseover nữa

Tôi nghĩ rằng nó được gọi là một mô tả hộp, nhưng tôi không chắc chắn.

Làm cách nào để có một hộp nhỏ bật lên bằng văn bản tùy chỉnh khi tôi đặt chuột lên một số văn bản nhất định và biến mất khi tôi di chuyển chuột đến đối tượng khác ..?

Trả lời

29

Giả sử popup là ID của "hộp mô tả" của bạn:

HTML

<div id="parent"> 
This is the main container. 
<div id="popup" style="display: none">some text here</div> 
</div> 

Javascript

var e = document.getElementById('parent'); 
e.onmouseover = function() { 
    document.getElementById('popup').style.display = 'block'; 
} 
e.onmouseout = function() { 
    document.getElementById('popup').style.display = 'none'; 
} 

Hoặc bạn có thể thoát khỏi Javascript hoàn toàn và làm điều đó chỉ với CSS:

CSS

#parent #popup { 
    display: none; 
} 

#parent:hover #popup { 
    display: block; 
} 
+3

.parent ==> #parent –

+1

cũng .popup ==> #popup –

+0

Tôi tìm thấy giải pháp CSS đã không làm việc trừ khi style = ' "display: none"' được lấy ra từ 'div' –

2

Tôi sẽ thử làm điều này với hệ thống xử lý sự kiện .hover() của jQuery, giúp bạn dễ dàng hiển thị div bằng chú giải công cụ khi con trỏ trên văn bản và ẩn nó khi nó đã biến mất.

Dưới đây là một ví dụ đơn giản.

HTML:

​<p id="testText">Some Text</p> 
<div id="tooltip">Tooltip Hint Text</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

CSS cơ bản:

​#​tooltip { 
display:none; 
border:1px solid #F00; 
width:150px; 
}​ 

jQuery:

$("#testText").hover(
    function(e){ 
     $("#tooltip").show(); 
    }, 
    function(e){ 
     $("#tooltip").hide(); 
    });​​​​​​​​​​ 
7

Vâng, tôi đã thực hiện một kịch bản hai lớp lót đơn giản cho điều này, nhỏ của nó và làm những gì bạn muốn.

Kiểm tra nó http://jsfiddle.net/9RxLM/

nó một giải pháp jquery: D

+0

Giải pháp này không tối ưu nếu tôi cố gắng đặt liên kết và nội dung mà người dùng cần phải nhấp vì vị trí của hộp độc lập với yếu tố kích hoạt. Điều này sẽ minh họa vấn đề (mà tôi cũng có) http: // jsfiddle.net/9RxLM/6078/ – MahNas92

+0

20 phút sau với công cụ jsfiddle tôi đã có thể tìm thấy một giải pháp: thêm thuộc tính "position: relative;" cho cha mẹ (".textext") và đặt "left" -property cho con (".decription") thành bất kỳ giá trị nào (ví dụ: "0px"), như sau: http://jsfiddle.net/9RxLM/6079/ – MahNas92

20

Mặc dù không nhất thiết phải là một giải pháp JavaScript, đó cũng là một "danh hiệu" thuộc tính thẻ toàn cầu có thể hữu ích.

<a href="https://stackoverflow.com/questions/3559467/description-box-on-mouseover" title="This is a mouseover title">Mouseover me</a> 

Mouseover me

+7

Trong khi điều này không trả lời được câu hỏi như được hỏi, nó sẽ loại bỏ nhu cầu về javascript để giải quyết vấn đề được ngụ ý bởi câu hỏi. Rất đẹp. +1 – destenson

+0

Không có gì xảy ra khi tôi di chuột qua. Tôi đoán phương pháp này không đáng tin cậy như phương thức CSS. Nhưng nó cũng có thể là trình duyệt của tôi. Sử dụng Chrome 49.0.2623.112 m –

+1

@ Iancel0t nó hoạt động, bạn phải chờ một giây trước khi tiêu đề xuất hiện. –

Các vấn đề liên quan