javascript - 使用 jQuery 创建悬停和单击功能的精益方法到 SVG 目录映射

标签 javascript jquery html css svg

我有一个包含大约 30-40 个列表的 SVG 目录映射。我已将类添加到构成其中每个位置的路径。

这就是它变得棘手的地方,

目标是为每个带有公司名称的列表提供工具提示悬停效果,当您单击它时应该将您带到相应的页面。

我可以为每一个都编写 jQuery,但必须有比编写 30 个不同的点击规则和 30 个以上的悬停更好的方法。

编辑:这是当前的处理方式:

$(".location-m1").hover(function(){
    $(".directory-m1").css("display", "block");
    $(".location-m1").css("opacity", ".7");
}, function(){
    $(".directory-m1").css("display", "none");
    $(".location-m1").css("opacity", "1");
});

https://jsfiddle.net/HeliumVideo/sepzgakr/1/

最佳答案

你可以写一些更动态的东西,从悬停的元素中获取类名并使用它来访问其他元素等。

$(".location").on('mouseenter mouseleave', function(e) {
        var klasses = this.getAttribute('class').trim().split(/\s+/);
    var klass = klasses.filter(function(klass) {
        return klass.indexOf('location-') === 0;
    }).shift().split('-').pop();

    var disp = e.type === 'mouseenter' ? 'block' :  'none';
    var opaq = e.type === 'mouseenter' ? 0.7 : 1;

    $(".directory-" + klass).css("display", disp);
    $(".location-"  + klass).css("opacity", opaq);
});

FIDDLE

关于javascript - 使用 jQuery 创建悬停和单击功能的精益方法到 SVG 目录映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39618879/

相关文章:

javascript - jQuery -> 图像跳过屏幕

javascript - 来源 : 'tok_visa' in Stripe

javascript - 与 setTimeout 和 click 发生冲突的事务

javascript - 从 URL 在网页内执行 javascript 函数?

html - :hover on circle navigation from angle x to y怎么办

javascript - 在 JavaScript 中读取和写入文本文件

javascript - 关闭 jQuery 中的模式弹出窗口

JavaScript setTimeout 循环仅在返回错误 : 之前运行两次

javascript - .post()返回ID不受页面Jquery影响

javascript - 如何在 Rails 应用程序中使用 javascript 调用数据库?