1

到目前为止,我所做的工作在 Firefox 和 webkit 浏览器(safari 和 chrome,未在 maxthone 中测试)中运行良好实际上它非常简单,我只是添加一个事件悬停更改画廊中的宽度和高度以获得空间并让带有Jqzoom缩放的图像出现。

这就是所有需要的javascript代码

$(document).ready(function () {
$('.ad-gallery').adGallery({
    callbacks:
        {
            afterImageVisible: function () {
                $('div.ad-image a').jqzoom({
                    zoomType: 'reverse',
                    preloadText: locale.gallery.preloadText,
                    title: false,
                    zoomWidth: 500,
                    zoomHeight: 300,
                    preloadImages: true
                });

                $("div.zoomPad img").hover(function () {
                    var $container = $("div.ad-image");
                    $container.css('width', '850px').css('height', '302px');
                    $container.parent().css('width', '850px').css('height', '302px');
                    $('div.ad-prev').css('width', '25px');
                }, function () {
                    var $container = $("div.ad-image");
                    $container.css('width', '300px').css('height', '300px');
                    $container.parent().css('width', '300px').css('height', '300px');
                    $('div.ad-prev').css('width', '25px');
                });
            }
        }

    });
});

现在我的问题是为什么这在 IE 中不起作用?我开始调试,但没有看到任何错误,这让我抓狂,因为它触发了悬停事件

这是我的现场示例

更新

测试我意识到它给我带来麻烦的事件是鼠标掉了所以我改变了一点代码至少可以工作mouseover或者mouseenter我尝试过mouseleavemouseout事件。仍然没有好的结果

    $('.ad-gallery').adGallery({
        callbacks:
            {
                afterImageVisible: function () {
                    $('div.ad-image a').jqzoom({
                        zoomType: 'reverse',
                        preloadText: locale.gallery.preloadText,
                        title: false,
                        zoomWidth: 500,
                        zoomHeight: 300,
                        preloadImages: true
                    });

                    if (!$.browser.msie) {
                        $("div.zoomPad img").hover(function () {
                            var $container = $("div.ad-image");
                            $container.css('width', '850px').css('height', '302px');
                            $container.parent().css('width', '850px').css('height', '302px');
                            $('div.ad-prev').css('width', '25px');
                        }, function () {
                            var $container = $("div.ad-image");
                            $container.css('width', '300px').css('height', '300px');
                            $container.parent().css('width', '300px').css('height', '300px');
                            $('div.ad-prev').css('width', '25px');
                        });
                    }
                    else {
                        $("div.zoomPad img").on({
                            mouseenter: function () {
                                var $container = $("div.ad-image");
                                $container.css('width', '850px').css('height', '302px');
                                $container.parent().css('width', '850px').css('height', '302px');
                                $('div.ad-prev').css('width', '25px');
                            }
//                            ,mouseleave: function () {
//                                var $container = $("div.ad-image");
//                                $container.css('width', '300px').css('height', '300px');
//                                $container.parent().css('width', '300px').css('height', '300px');
//                                $('div.ad-prev').css('width', '25px');
//                            }
                        });

我最后一个版本的 live exmaple

4

2 回答 2

0

我没有看太多你的小提琴示例,但据我了解,IE 最高版本 6 不支持悬停,但anchor <a>标签除外。以后的版本也报告了错误。

检查此以获取更多详细信息http://reference.sitepoint.com/css/pseudoclass-hover

于 2012-10-15T18:49:02.207 回答
0

最后我通过更改选择器以及如何附加监听器解决了我的问题

$('.ad-gallery').adGallery({
animate_first_image: true,
callbacks: {
    afterImageVisible: function() {
        $('div.ad-image a').jqzoom({
            zoomType: 'standar',
            preloadText: locale.gallery.preloadText,
            title: false,
            zoomWidth: 500,
            zoomHeight: 300,
            preloadImages: true
        });

        $("div.zoomPad").mouseenter(function() {
            var $container = $("div.ad-image");
            $container.css('width', '850px').css('height', '350px');
            $container.parent().css('width', '850px').css('height', '350px');
            $('div.ad-prev').css('width', '25px');
        }).mouseleave(function() {
            var $container = $("div.ad-image");
            $container.css('width', '300px').css('height', '300px');
            $container.parent().css('width', '300px').css('height', '300px');
            $('div.ad-prev').css('width', '25px');
        });
    }
}

});​

这是我的现场示例

http://jsfiddle.net/justelnegro/KU6NU/20/

于 2012-10-16T01:49:44.547 回答