Trong HTML, mọi sự kiện chuột đều có quyền truy cập vào phần tử cơ bản. Bạn có thể làm điều đó dễ dàng với JavaScript và có một tính năng đẹp trong HTML5 được gọi là classList (nhờ Erik từ Chromium) cho phép bạn thêm và xóa lớp học khỏi DOM dễ dàng.
Trước hết, bạn có thể đạt được điều này với Content Scripts của Google Chrome. Thuật toán khá đơn giản, bạn giữ một con trỏ đến DOM được truy cập lần cuối và bạn chỉ cần thêm/xóa lớp khi bạn truy cập phần tử DIV khác.
Trong số manifest.json Chúng tôi sẽ xác định việc chèn CSS và JS vào mọi trang chúng tôi thấy.
...
...
"content_scripts": [
{
"matches": ["http://*/*"],
"css": ["core.css"],
"js": ["core.js"],
"run_at": "document_end",
"all_frames": true
}
]
...
...
Bây giờ cho phép nhìn vào chúng tôi core.js, tôi đã bao gồm một số ý kiến để giải thích những gì đang xảy ra:
// Unique ID for the className.
var MOUSE_VISITED_CLASSNAME = 'crx_mouse_visited';
// Previous dom, that we want to track, so we can remove the previous styling.
var prevDOM = null;
// Mouse listener for any move event on the current document.
document.addEventListener('mousemove', function (e) {
var srcElement = e.srcElement;
// Lets check if our underlying element is a DIV.
if (srcElement.nodeName == 'DIV') {
// For NPE checking, we check safely. We need to remove the class name
// Since we will be styling the new one after.
if (prevDOM != null) {
prevDOM.classList.remove(MOUSE_VISITED_CLASSNAME);
}
// Add a visited class name to the element. So we can style it.
srcElement.classList.add(MOUSE_VISITED_CLASSNAME);
// The current element is now the previous. So we can remove the class
// during the next iteration.
prevDOM = srcElement;
}
}, false);
Bây giờ, cho phép xem xét đơn giản core.css cho các kiểu:
.crx_mouse_visited {
background-color: #bcd5eb !important;
outline: 1px solid #5166bb !important;
}
Thats it, bạn sẽ nhận thấy rằng tất cả div của bạn sẽ có trạng thái "lơ lửng", tương tự trên hap bút khi bạn truy cập trình kiểm tra trình duyệt của bạn khi kiểm tra các yếu tố.
Nguồn
2010-12-15 01:51:50
Câu trả lời hay, chỉ có tôi mới thay thế 'đường viền' bằng' phác thảo', thêm đường viền sẽ di chuyển các phần tử xung quanh. Ngoài ra '! Quan trọng' trên css có lẽ là cần thiết. – serg
Cảm ơn rất nhiều làm việc tốt Hãy hạnh phúc và tận hưởng cuộc sống. –
Cảm ơn serg! Đã chỉnh sửa bài đăng để phản ánh ý kiến của bạn :) –