簡體   English   中英

單擊同一按鈕后,一次顯示下一個圖像div並在javascript HTML中隱藏當前圖像div

[英]After click on same button show next image div at a time and hide current image div in javascript html

我正在使用Javascript,Html5,Jquery和CSS。 現在我有三個圖像div,我想在單擊按鈕后顯示一個圖像div,在單擊同一按鈕並隱藏當前div之后,我想顯示下一個div。

現在我正在使用此代碼:
CSS代碼:

#Div2 {
    display: none;
}
#Div3 {
    display: none;
}

HTML代碼:

<div class="container">
    <div class="row">    
        <input id="Button1" type="button" value="Click" onclick="switchVisible();"/>
        <div class="col-sm-4">
            <div id="Div1">
                <canvas id="canvas1" class="img-responsive center-block" style="float:left"></canvas>  
            </div>
            <div id="Div2">
                <canvas id="canvas2" class="img-responsive center-block" style="float:left"></canvas>   
            </div>
            <div id="Div3">
                <canvas id="canvas3" class="img-responsive center-block" style="float:left"></canvas>    
            </div>
        </div> 
    </div>
</div>

Java腳本代碼:

 function switchVisible() {
            if (document.getElementById('Div1')) {
                if (document.getElementById('Div1').style.display === 'none') {
                    document.getElementById('Div1').style.display = 'block';
                    document.getElementById('Div2').style.display = 'none';
                    document.getElementById('Div3').style.display = 'none';
                }
                else if (document.getElementById('Div2').style.display === 'none') {
                    document.getElementById('Div1').style.display = 'none';
                    document.getElementById('Div2').style.display = 'block';
                    document.getElementById('Div3').style.display = 'none';

                }
                else
                {
                    document.getElementById('Div1').style.display = 'none';
                    document.getElementById('Div2').style.display = 'none';
                    document.getElementById('Div3').style.display = 'block';
                }
            }
        }

這段代碼對於兩個圖像div都可以正常工作,但是對於第三幅圖像卻不起作用。我從以下鏈接獲得了幫助: https ://stackoverflow.com/questions/

現在我有三個圖像div,但是現在單擊按鈕后一次顯示一個圖像div。

在此處輸入圖片說明

我想在單擊按鈕后顯示下一個圖像div並隱藏當前圖像div。我之前告訴我我正在使用三個圖像div。 我展現影像的動機是旋轉。
請給我一些想法。

如果您使用的是jQuery,則可以這樣做:

function switchVisible() {
    $(".img-responsive").parent().each(function(){
        if($(this).is(":visible")) {
            $(".img-responsive").parent().hide();
            if ($(this).next().length) {
                $(this).next().show();
            } else {
                $($(".img-responsive")[0]).parent().show();
            }

            return false;
        }
    })
}

您可以使用prev()代替next()返回。

 function switchVisibleRevert() {
    $(".img-responsive").parent().each(function(index){
        if($(this).is(":visible")) {
            $(".img-responsive").parent().hide();
            if ($(this).prev().length) {
                $(this).prev().show();
            } else {
                $($(".img-responsive")[$(".img-responsive").length-1]).parent().show();//show last element
            }

            return false;
        }
    })
}

看一下條件語句。

        if (document.getElementById('Div1')) {
            if (document.getElementById('Div1').style.display === 'none') {
                document.getElementById('Div1').style.display = 'block';
                document.getElementById('Div2').style.display = 'none';
                document.getElementById('Div3').style.display = 'none';
            }
            else if (document.getElementById('Div2').style.display === 'none') {
                document.getElementById('Div1').style.display = 'none';
                document.getElementById('Div2').style.display = 'block';
                document.getElementById('Div3').style.display = 'none';

            }
            else
            {
                document.getElementById('Div1').style.display = 'none';
                document.getElementById('Div2').style.display = 'none';
                document.getElementById('Div3').style.display = 'block';
            }
        }

第一條條件語句是將Div1的顯示屬性設置為block。 在下一個調用中,第二個條件將Div2設置為block,將Div1再次設置為none ...所以在下一個調用條件1中,條件1再次評估為true,因為在第二個條件中Div1設置為“ none”。

如果檢查條件是否為Div2 =='block'的條件成立,您可能會嘗試刪除'else'並添加另一個,則您知道,如果Div2設置為.block',則要顯示的下一個圖像是圖像3:

         if (document.getElementById('Div1')) {
            if (document.getElementById('Div1').style.display === 'none') {
                document.getElementById('Div1').style.display = 'block';
                document.getElementById('Div2').style.display = 'none';
                document.getElementById('Div3').style.display = 'none';
            }
            else if (document.getElementById('Div1').style.display === 'block') {
                document.getElementById('Div1').style.display = 'none';
                document.getElementById('Div2').style.display = 'block';
                document.getElementById('Div3').style.display = 'none';

            }
            else if (document.getElementById('Div2').style.display === 'block')
            {
                document.getElementById('Div1').style.display = 'none';
                document.getElementById('Div2').style.display = 'none';
                document.getElementById('Div3').style.display = 'block';
            }
        }

初始化計數器以跟蹤正在顯示的圖像可能更簡單,因為每個Div都有唯一的ID和順序值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM