Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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_Fadein_Fadeout - Fatal编程技术网

简单的javascript交换和淡入淡出

简单的javascript交换和淡入淡出,javascript,fadein,fadeout,Javascript,Fadein,Fadeout,我正在寻找一个javascript解决方案,使我的交换动作淡入淡出,而不仅仅是出现 我想严格遵守一些javascript,而不是使用jquery或任何插件 下面是在用户单击时交换图像的代码,只是想寻找一种使图像淡入淡出的方法: <script type="text/javascript"> // Image Swap // function swap(image) { document.getElementById("main").src = image.href; } </

我正在寻找一个javascript解决方案,使我的交换动作淡入淡出,而不仅仅是出现

我想严格遵守一些javascript,而不是使用jquery或任何插件

下面是在用户单击时交换图像的代码,只是想寻找一种使图像淡入淡出的方法:

<script type="text/javascript">
// Image Swap //
function swap(image) {
document.getElementById("main").src = image.href;

}
</script>
<body>
<img id="main" src="image1.png" width="250">
<br>
<a href="image1.png"  onclick="swap(this); return false;"><img width="50" src="/image1.png"></a>
<a href="image2.png" onclick="swap(this); return false;"><img width="50" src="image2.png"></a>f
<a href="image3.png" onclick="swap(this); return false;"><img width="50" src="image3.png"></a>
</body>  

//图像交换//
功能交换(图像){
document.getElementById(“main”).src=image.href;
}

F


编辑: 我已经看到并尝试了许多不同的javascript选项,但我不知道如何将其与上面使用的当前javascript结合起来。包括:


document.write("<style type='text/css'>#main {visibility:hidden;}</style>");

function initImage() {
imageId = 'main';
image = document.getElementById(imageId);
setOpacity(image, 0);
image.style.visibility = "visible";
fadeIn(imageId,0);
}
function fadeIn(objId,opacity) {
if (document.getElementById) {
obj = document.getElementById(objId);
if (opacity <= 100) {
setOpacity(obj, opacity);
opacity += 10;
window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 100);
}
}
}
function setOpacity(obj, opacity) {
opacity = (opacity == 100)?99.999:opacity;
// IE/Win
obj.style.filter = "alpha(opacity:"+opacity+")";
// Safari<1.2, Konqueror
obj.style.KHTMLOpacity = opacity/100;
// Older Mozilla and Firefox
obj.style.MozOpacity = opacity/100;
// Safari 1.2, newer Firefox and Mozilla, CSS3
obj.style.opacity = opacity/100;
}
window.onload = function() {initImage()}
document.write(“#main{visibility:hidden;}”);
函数initImage(){
imageId='main';
image=document.getElementById(imageId);
设置不透明度(图像,0);
image.style.visibility=“可见”;
fadeIn(imageId,0);
}
功能fadeIn(对象、不透明度){
if(document.getElementById){
obj=document.getElementById(objId);

如果(不透明度

function swap (image) {

    var inc = 0.1; // Increment / Decrement
    var timeout = 100;

    var fadeout = window.setInterval ( function () {
        var e = document.getElementById("main");
        var o = parseFloat( e.style.opacity );
        if ( o <= 0 )
            window.clearInterval ( fadeout );
        else
            o = o - inc;
        e.style.opacity = o;
    }, timeout );

    document.getElementById("main").src = image.href;

    var fadein = window.setInterval ( function () {
        var e = document.getElementById("main");
        var o = parseFloat( e.style.opacity );
        if ( o >= 1 )
            window.clearInterval ( fadein );
        else
            o = o + inc;
        e.style.opacity = o;
    }, timeout );

}
函数交换(图像){
var inc=0.1;//递增/递减
var超时=100;
var fadeout=window.setInterval(函数(){
var e=document.getElementById(“主”);
var o=parseFloat(e.style.opacity);
如果(o=1)
window.clearInterval(fadein);
其他的
o=o+inc;
e、 style.opacity=o;
},超时);
}
这应该适用于所有最新的浏览器。您可以使用“inc”和“timeout”变量调整质量/速度。请注意,如果您想在网站上使用许多动画,最好使用简单的动画框架(不必使用繁重的jQuery)来代替此框架


如果在一个网站上使用太频繁/并行,我的示例可能会导致性能问题。如果您想多次使用我的“fadein”和“fadeout”代码段,您可能还想将其外包到自己的功能中(不要成为复制粘贴程序员)。:)

快速脏

function swap (image) {

    var inc = 0.1; // Increment / Decrement
    var timeout = 100;

    var fadeout = window.setInterval ( function () {
        var e = document.getElementById("main");
        var o = parseFloat( e.style.opacity );
        if ( o <= 0 )
            window.clearInterval ( fadeout );
        else
            o = o - inc;
        e.style.opacity = o;
    }, timeout );

    document.getElementById("main").src = image.href;

    var fadein = window.setInterval ( function () {
        var e = document.getElementById("main");
        var o = parseFloat( e.style.opacity );
        if ( o >= 1 )
            window.clearInterval ( fadein );
        else
            o = o + inc;
        e.style.opacity = o;
    }, timeout );

}
函数交换(图像){
var inc=0.1;//递增/递减
var超时=100;
var fadeout=window.setInterval(函数(){
var e=document.getElementById(“主”);
var o=parseFloat(e.style.opacity);
如果(o=1)
window.clearInterval(fadein);
其他的
o=o+inc;
e、 style.opacity=o;
},超时);
}
这应该适用于所有最新的浏览器。您可以使用“inc”和“timeout”变量调整质量/速度。请注意,如果您想在网站上使用许多动画,最好使用简单的动画框架(不必使用繁重的jQuery)来代替此框架


如果在一个网站上使用太频繁/并行,我的示例可能会导致性能问题。如果您想多次使用我的“fadein”和“fadeout”代码段,您可能还想将其外包到自己的功能中(不要成为复制粘贴程序员).:)

您可以使用CSS转换/动画为您完成许多繁重的工作。下面的代码片段适用于Chrome和Firefox 4.0 beta版。在IE上,不会褪色。总有一天它会在IE上工作

在下面的示例中,我托管了两个绝对位于同一分区内的图像。对于子图像,我指定了1秒的淡入淡出不透明度更改。交换函数仅设置不可见图像的src,并为每个图像在0和1.0之间切换不透明度。一个淡入淡出id,另一个淡出id

现在,当您尝试此操作时,您可能会注意到第一次交换不会可靠地褪色。这是因为在更改不透明度之前,我没有等待图像上的“onload”事件发生。最好将不透明度保持在0.0,然后设置src属性。然后在onload回调上,切换不透明度

<head>
    <style>


div#imghost
{
    position:relative;
    height: 100px;
    width: 100px;   
}

div#imghost img
{
 position: absolute;
 left: 0px;
 top: 0px;
 opacity: 0.0;
 -moz-transition-property: opacity;
 -moz-transition-duration: 1s;
 -webkit-transition-property: opacity;
 -webkit-transition-duration: 1s;
  transition-property: opacity;
 transition-duration: 1s;
}

    </style>

    <script type="text/javascript">
    // Image Swap //
        var img1_is_visible = false;

        function swap(img) {
            var img1 = document.getElementById("img1");
            var img2 = document.getElementById("img2");
            var imgold= img1_is_visible ? img1 : img2;
            var imgnew= img1_is_visible ? img2 : img1;

            imgnew.style.opacity = 1.0;
            imgnew.src = img.src;
            imgold.style.opacity = 0.0;
            img1_is_visible = !img1_is_visible
        }

    </script>
</head>

    <body>
     <div class="imghost">
         <img id="img1" />
         <img id="img2" />
     </div>

    <br/>
        <img width="50" src="image1.png" onclick="swap('this');">
        <img width="50" src="image2.png" onclick="swap('this');">
        <img width="50" src="image3.png" onclick="swap('this');">
    </body>  

第#imghost分区
{
位置:相对位置;
高度:100px;
宽度:100px;
}
第三组
{
位置:绝对位置;
左:0px;
顶部:0px;
不透明度:0.0;
-moz过渡特性:不透明度;
-moz转换持续时间:1s;
-webkit转换属性:不透明度;
-webkit转换持续时间:1s;
过渡特性:不透明度;
过渡时间:1s;
}
//图像交换//
var img1_为可见=假;
功能交换(img){
var img1=document.getElementById(“img1”);
var img2=document.getElementById(“img2”);
var imgold=img1\u是否可见?img1:img2;
var imgnew=img1\u是否可见?img2:img1;
imgnew.style.opacity=1.0;
imgnew.src=img.src;
imgold.style.opacity=0.0;
img1\u可见=!img1\u可见
}

您可以使用CSS转换/动画为您完成大量繁重的工作。下面的代码片段适用于Chrome和Firefox 4.0 beta版。在IE上,不会褪色。总有一天它会在IE上正常工作

在下面的示例中,我托管了两个绝对位于同一分区内的图像。对于子图像,我指定了1秒的淡入淡出不透明度更改。交换函数仅设置不可见图像的src,并为每个图像在0和1.0之间切换不透明度。一个淡入淡出id,另一个淡出id

现在,当您尝试此操作时,您可能会注意到第一次交换不会可靠地褪色。这是因为在更改不透明度之前,我没有等待图像上的“onload”事件发生。最好将不透明度保持在0.0,然后设置src属性。然后在onload回调上,切换不透明度

<head>
    <style>


div#imghost
{
    position:relative;
    height: 100px;
    width: 100px;   
}

div#imghost img
{
 position: absolute;
 left: 0px;
 top: 0px;
 opacity: 0.0;
 -moz-transition-property: opacity;
 -moz-transition-duration: 1s;
 -webkit-transition-property: opacity;
 -webkit-transition-duration: 1s;
  transition-property: opacity;
 transition-duration: 1s;
}

    </style>

    <script type="text/javascript">
    // Image Swap //
        var img1_is_visible = false;

        function swap(img) {
            var img1 = document.getElementById("img1");
            var img2 = document.getElementById("img2");
            var imgold= img1_is_visible ? img1 : img2;
            var imgnew= img1_is_visible ? img2 : img1;

            imgnew.style.opacity = 1.0;
            imgnew.src = img.src;
            imgold.style.opacity = 0.0;
            img1_is_visible = !img1_is_visible
        }

    </script>
</head>

    <body>
     <div class="imghost">
         <img id="img1" />
         <img id="img2" />
     </div>

    <br/>
        <img width="50" src="image1.png" onclick="swap('this');">
        <img width="50" src="image2.png" onclick="swap('this');">
        <img width="50" src="image3.png" onclick="swap('this');">
    </body>  

第#imghost分区
{
位置:相对位置;
高度:100px;
宽度:100px;
}
第三组
{
位置:绝对位置;
左:0px;
顶部:0px;
不透明度:0.0;
-moz过渡特性:不透明度;
-moz转换持续时间:1s;
-webkit转换属性:不透明度;
-webkit转换持续时间:1s;
过渡特性:不透明度;
过渡时间:1s;
}