Я хочу добавить div, чтобы покрыть элемент, который наведите курсор мыши на веб-страницу. Я попытался сделать следующее, но это не получилось. Как мне это сделать? Благодарю!
jQuery(function ($) {
$("*").bind("mouseenter.noteEvent", function (event) {
var offset = $(this).offset();
var enterBg = "<div id = 'tooltip_enterbg'></div>";
$("body").append(enterBg);
$("#tooltip_enterbg")
.css({
"top": offset.top + "px",
"left": offset.left + "px",
"width": $(this).width(),
"height": $(this).height(),
"opacity": 0.5,
"background-color": "#FFFF00"}
);
});
$("*").bind("mouseleave.noteEvent", function (event) {
$("#tooltip_enterbg").remove();
});
});
jsfiddle Демо: В этой демонстрации, когда мышь переходит на "AAA", вся страница превращается в светлую, я хочу, чтобы "AAA" превращался в светлое.
Используйте следующий код:
jQuery(function ($) {
$("p").bind("mouseenter.noteEvent", function (event) {
var offset = $(this).offset();
var enterBg = "<div id = 'tooltip_enterbg'></div>";
$("body").append(enterBg);
$("#tooltip_enterbg")
.css({
"top": offset.top + "px",
"left": offset.left + "px",
"width": $(this).width(),
"height": $(this).height(),
"opacity": 0.5,
"background-color": "#FFFF00",
"position": "fixed"}
);
});
$("p").bind("mouseleave.noteEvent", function (event) {
$("#tooltip_enterbg").remove();
});
});
Демо здесь: http://jsfiddle.net/Mv472/3/
Бит, который вы упускаете, имеет position: absolute
, например:
$("#tooltip_enterbg")
.css({
"top": offset.top + "px",
"left": offset.left + "px",
"width": $(this).width(),
"height": $(this).height(),
"opacity": 0.5,
"background-color": "#FFFF00",
"position": "absolute"} // <===== Here
);
Примечание:
Нет необходимости искать элемент, который вы только что добавили. + Изменить
var enterBg = "<div id = 'tooltip_enterbg'></div>";
$("body").append(enterBg);
$("#tooltip_enterbg")
.css/*...*/
в
var enterBg = $("<div id = 'tooltip_enterbg'></div>");
$("body").append(enterBg);
enterBg
.css/*...*/
"position": "absolute"
, но он влияет на то, что вся страница становится светлее, я только хочу, чтобы div покрыл небольшой раздел.
position: absolute
, чтобы позиционировать div. Если это не то, чего вы хотите, вам нужно посмотреть на его метрики в инструментах разработки и выяснить, почему это не то, чего вы хотите, но эта часть не является обязательной.
$("body").on("mouseenter", "*", function() { ... });