gpt4 book ai didi

javascript - svg 元素在 chrome 中隐藏/显示时重置

转载 作者:行者123 更新时间:2023-11-29 22:12:50 26 4
gpt4 key购买 nike

我有 3 个 SVG <object>代表建筑物的 3 个不同楼层的元素。在底部,我有 3 个按钮可以在它们之间导航,它们执行简单的 hide()。和 show() .

map

当我加载页面时,脚本会在 svg 中设置一些交互式元素,但是当我使用导航按钮在楼层之间切换时,交互式 svg 元素会重置并失去其功能。

互动元素
interactive elements

我该如何防止这种情况发生?该脚本似乎适用于 Firefox。

这是隐藏/显示楼层的代码。

function showMap(mapId){
var map = (typeof(mapId)=="string")? $('#'+mapId) : $(mapId);
if(!map.is(':visible')){
maps.hide(); // hides all svg objects
map.show(); // display the selected one
}
}

最佳答案

是的,这是 Chrome 的一项“功能”。 “display: none”(包括 css 方式)完全破坏了与 SVG 的所有交互。使用大小或位置代替:

jQuery.fn.weirdHide = function() {
$(this).css("width", 0)
.css("height", 0)
.css("position", "absolute")
.css("left", "-9999px");
}

jQuery.fn.weirdShow = function() {
$(this).css("width", "")
.css("height", "")
.css("position", "")
.css("left", "");
}

$("#map").weirdHide();
$("#map").weirdShow();

关于javascript - svg 元素在 chrome 中隐藏/显示时重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17128673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com