0

有人吗?有什么线索吗??

我正在尝试在同一页面上创建两个具有 hilightable 功能的地图。这适用于所有现代浏览器(IE11、Chrome 等),但不适用于 IE9。您可以使用以下小提琴来证明这一点:http: //jsfiddle.net/Guill84/Sws2T/13/

为了便于参考,我在下面粘贴了启动插件的脚本。有什么原因可以在所有浏览器中正确加载但在 IE9 中没有?还是我的代码有问题?使用的插件是“Maphilight”(https://github.com/kemayo/maphilight

在此先感谢,

$(function () {
    $('.map').maphilight({
        stroke: false,
        fillColor: 'D2D2D2',
        fillOpacity: 1
});
    $('.map2').maphilight({
        stroke: false,
        fillColor: 'D2D2D2',
        fillOpacity: 1
});

    //light up first element
    //this code is repeating below but not sure how to make more condensed
    var data = $(this).data('maphilight') || {};
    data.alwaysOn = true;
    $('.map, .map2').data('maphilight', data).trigger('alwaysOn.maphilight');
    // initialize tabbing
    $(".tabs area:eq(0)").each(function () {
        $(this).addClass("current");
    });
    $(".tab-content").each(function () {
        $(this).children(":not(:first)").hide();
    });
    $(".tabs area").each(function (o, i) {
        var d = $(this).data('maphilight') || {};
        d.fillOpacity = 1;
        d.alwaysOn = true;
        $(this).attr("rel", d.fillColor);
        $(this).data('maphilight', d).trigger('alwaysOn.maphilight');
    });
    $(".tabs area").hover(function () {
        var d = $(this).data('maphilight') || {};
        //d.fillOpacity=0.6;
        d.fillColor = "A0A0A0";
        $(this).data('maphilight', d).trigger('alwaysOn.maphilight');
    }, function () {
        var d = $(this).data('maphilight') || {};
        //d.fillOpacity=0.6;
        if (typeof d.clicked === "undefined" || d.clicked == false) {
            d.fillColor = $(this).attr("rel");
        } else {
            d.fillColor = "379ee0";

        }
        $(this).data('maphilight', d).trigger('alwaysOn.maphilight');
    });
    //map clicks
    $(".tabs area").click(function () {
        //areas loop:
        $(".tabs area").not(this).each(function (o, i) {
            var d = $(this).data('maphilight') || {};
            d.clicked = false;
            d.fillColor = $(this).attr("rel");
            if (d.alwaysOn === false) {
                //d.alwaysOn = false;
                $(this).data('maphilight', data).trigger('alwaysOn.maphilight');
            }
        });

        var data = $(this).data('maphilight') || {};
        data.alwaysOn = true;
        data.fillColor = "379ee0";
        data.clicked = true;
        $(this).data('maphilight', data).trigger('alwaysOn.maphilight');

        if ($(this).hasClass("current") === false) {
            var thisTarget = $(this).attr("href");
            $(this).parents(".tabs").find('area.current').removeClass('current');
            $(this).addClass('current');
            $(this).parents(".tabs").nextAll(".tab-content").children(":visible").fadeOut(1, function () {
                $(thisTarget).fadeIn("normal");
            });

        }
        return false;
    });
});
4

1 回答 1

1

我看到的问题不是 plugin jQuery Maphilight,而是另一个问题 - the jQuery Panzoom,似乎不支持低于 v.9 的 Internet Explorer 版本:

Panzoom 使用 CSS 转换和矩阵函数来利用浏览器中的硬件/GPU 加速,这意味着元素可以是任何东西:图像、视频、iframe、画布、文本,等等。虽然不支持 IE<=8,但这个插件是面向未来的。

有关详细信息,请参见此处 - https://github.com/timmywil/jquery.panzoom/blob/master/README.md

但是,您说您使用 IE 9 进行测试,您究竟是如何执行测试的,这是真正的 IE 9 还是您在模拟版本模式下运行 IE 11?我可以确认,jsfiddle 代码在 IE 9 下的模拟模式下工作得很好,除了用鼠标滚轮缩放之外,它只适用于按钮Zoom In/ Zoom Out

于 2014-11-25T13:21:08.217 回答