2013-03-10 16 views
18

Mam stronę HTML z obrazem, który ustawiłem jako niewidoczny przez CSS visibility: hidden. Chcę utworzyć łącze o nazwie "Pokaż obraz", aby po kliknięciu na niego pojawił się obraz.Pokaż/ukryj obraz za pomocą JavaScriptu

Teraz nie wiem, jak utworzyć taki link, ponieważ zazwyczaj link do strony z linkami <a href=...> prowadzi do innej strony. W moim przypadku chcę, aby link wywoływał JavaScript, aby wyświetlić obraz.

Odpowiedz

36

Jeśli masz już funkcję JavaScript o nazwie showImage zdefiniowany, aby wyświetlić obraz, można połączyć w następujący sposób:

<a href="javascript:showImage()">show image</a> 

Jeśli potrzebujesz pomocy w określeniu funkcji, chciałbym spróbować:

function showImage() { 
    var img = document.getElementById('myImageId'); 
    img.style.visibility = 'visible'; 
} 

Lub, jeszcze lepiej,

function setImageVisible(id, visible) { 
    var img = document.getElementById(id); 
    img.style.visibility = (visible ? 'visible' : 'hidden'); 
} 

Następnie twoje linki będą następujące:

<a href="javascript:setImageVisible('myImageId', true)">show image</a> 
<a href="javascript:setImageVisible('myImageId', false)">hide image</a> 
+4

Tak ale inline JavaScript jest nieco zmarszczył brwi w tych dniach: oddzielenie treści + prezentacji. – ktm5124

5

To całkiem proste.

HTML:

<img id="theImage" src="yourImage.png"> 
<a id="showImage">Show image</a> 

JavaScript:

document.getElementById("showImage").onclick = function() { 
    document.getElementById("theImage").style.visibility = "visible"; 
} 

CSS:

#theImage { visibility: hidden; } 
+1

Czy to nie przewinięcie do początku strony? – wchargin

+1

Również [podobno 'href =" # "' jest złą praktyką] (http://stackoverflow.com/a/2800245/732016). – wchargin

2

Oto przykład roboczych: http://jsfiddle.net/rVBzt/ (jQuery)

<img id="tiger" src="https://twimg0-a.akamaihd.net/profile_images/2642324404/46d743534606515238a9a12cfb4b264a.jpeg"> 

<a id="toggle">click to toggle</a> 

img {display: none;} 

a {cursor: pointer; color: blue;} 

$('#toggle').click(function() { 
    $('#tiger').toggle(); 
}); 
3

Można to zrobić z jQuery wystarczy odwiedzić http://jquery.com/ aby uzyskać link następnie zrobić coś takiego

<a id="show_image">Show Image</a> 
<img id="my_images" style="display:none" src="http://myimages.com/img.png"> 

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script> 
    $(document).ready(function(){ 
     $('#show_image').on("click", function(){ 
     $('#my_images').show('slow'); 
     }); 
    }); 
</script> 

lub jeśli chcesz link, aby obrócić obraz i wyłączanie zrobić

<a id="show_image">Show Image</a> 
<img id="my_images" style="display:none;" src="http://myimages.com/img.png"> 

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script> 
    $(document).ready(function(){ 
     $('#show_image').on("click", function(){ 
     $('#my_images').toggle(); 
     }); 
    }); 
</script> 
2

Ten kod działa:

<html> 
    <body bgcolor=cyan> 
    <img src ="backgr1.JPG" id="my" width="310" height="392" style="position: absolute; top:92px; left:375px; visibility:hidden"/> 
    <script type="text/javascript"> 
     function tend() { 
     document.getElementById('my').style.visibility='visible'; 
     } 
     function tn() { 
     document.getElementById('my').style.visibility='hidden'; 
     } 
    </script> 
    <input type="button" onclick="tend()" value="back"> 
    <input type="button" onclick="tn()" value="close"> 
    </body> 
</html> 
0

HTML

<img id="theImage" src="yourImage.png"> 
<a id="showImage">Show image</a> 

JavaScript:

document.getElementById("showImage").onclick = function() { 
    document.getElementById("theImage").style.display = "block"; 
} 

CSS:

#theImage { display:none; } 
Powiązane problemy