Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在图像库中添加交叉淡入淡出效果_Javascript_Jquery - Fatal编程技术网

Javascript 在图像库中添加交叉淡入淡出效果

Javascript 在图像库中添加交叉淡入淡出效果,javascript,jquery,Javascript,Jquery,我有一个较小的图像,它是一个具有8个按钮的控件,我设置了8个区域形状,因此当单击看起来像按钮的内容时,较大的主图像将被更新 单击区域形状时,会加载相关图像,但我希望图像淡入,旧图像淡出 这可能吗?很高兴探索Javascript和Jquery解决方案。谢谢 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>TEST</title> &

我有一个较小的图像,它是一个具有8个按钮的控件,我设置了8个区域形状,因此当单击看起来像按钮的内容时,较大的主图像将被更新

单击区域形状时,会加载相关图像,但我希望图像淡入,旧图像淡出

这可能吗?很高兴探索Javascript和Jquery解决方案。谢谢

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TEST</title>
<script type="text/javascript">
function showImage(image){
  var mainImage = document.getElementById('mainImage');
  mainImage.src = image; 
}
</script>
</head>

<body>
<div><img src="button.jpg" width="260" height="193" border="0" usemap="#Map" />
<map name="Map" id="Map">
<area shape="rect" coords="61,21,120,55" href="#" onclick="showImage('A.jpg')"  />
<area shape="rect" coords="147,21,205,54" href="#" onclick="showImage('B.jpg')"  />
<area shape="rect" coords="60,58,121,90" href="#" onclick="showImage('C.jpg')"  />
<area shape="rect" coords="147,59,205,92" href="#" onclick="showImage('D.jpg')"  />
<area shape="rect" coords="61,92,121,125" href="#" onclick="showImage('E.jpg')"  />
<area shape="rect" coords="146,96,205,128" href="#" onclick="showImage('F.jpg')"  />
<area shape="rect" coords="60,128,122,163" href="#" onclick="showImage('G.jpg')"  />
<area shape="rect" coords="146,131,204,164" href="#" onclick="showImage('I.jpg')"  />
</map>
</div>
<div>
<img id="mainImage" src="A.jpg" /> 
</div>

</body>
</html>

试验
函数showImage(图像){
var mainImage=document.getElementById('mainImage');
mainImage.src=图像;
}

要做到这一点,您需要创建一个新图像,将旧图像淡出,将新图像淡入

这应该起作用:

function showImage(image){
    var mainImage = document.getElementById('mainImage');
    $('#mainImage').before('<img src="' + image + '" id="newImage" />');
    $('#mainImage').fadeOut().remove();
    $('#newImage').attr('id','mainImage');
}
函数showImage(图像){
var mainImage=document.getElementById('mainImage');
$('#main image')。在('')之前;
$('#main image').fadeOut().remove();
$('newImage').attr('id','mainImage');
}
您应该使用CSS确保新图像位于主图像的后面

来源



我建议将页面上的所有图像放置在彼此的顶部。下面将添加所有的图像链接到一个容器,然后交叉淡入淡出当你点击

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
jQuery(function($){
    $('#Map area').each(function(){
        var area = $(this);
        var img = $('<img>').attr('src', area.attr('href'));
        $('#imgcontainer').append(img);
        area.click(function(){
            $('#imgcontainer img').stop().fadeOut();
            img.stop().fadeIn();
            return false;
        })
    });
    $('#imgcontainer img:first-child').show();
});
</script>
<style>
    #imgcontainer{width:260px;height:193px;}
    #imgcontainer img{display:none;position:absolute;}
</style>
<img src="button.jpg" width="260" height="193" border="0" usemap="#Map" />
<map name="Map" id="Map">
    <area shape="rect" coords="61,21,120,55" href="A.img"  />
    <area shape="rect" coords="147,21,205,54" href="B.img"  />
    <area shape="rect" coords="60,58,121,90" href="C.img"  />
    <area shape="rect" coords="147,59,205,92" href="D.img"  />
    <area shape="rect" coords="61,92,121,125" href="E.img"  />
    <area shape="rect" coords="146,96,205,128" href="F.img"  />
    <area shape="rect" coords="60,128,122,163" href="G.img"  />
    <area shape="rect" coords="146,131,204,164" href="I.img"  />
</map>
<div id="imgcontainer"></div>

jQuery(函数($){
$(“#映射区域”)。每个(函数(){
var区域=$(此区域);
变量img=$('
#img容器{宽度:260px;高度:193px;}
#img容器img{显示:无;位置:绝对;}

要进行交叉淡入淡出,您只需淡入或淡出两幅图像中的一幅,否则,当两幅图像均为50%时,您将看到它们背后的背景。淡入淡出过渡完成后,您可以删除原始图像。只是尝试了一下,但没有效果。新图像会在屏幕顶部弹出,然后它们都开始显示。WillJSFIDLE it。仍然不喜欢:-认为JSFIDLE不喜欢区域形状中有URL,所以它根本不起作用。我也忘了删除原始图像(已编辑),但在那之后它似乎起作用,但显然没有图像;这使得告诉Darren很难,不久前我回答了您的类似问题(8天),你可以从那开始工作?工作绝对完美,太棒了!