Skip to main content

Other

2019
05-23
更新日:2023/05/19

マウスオーバーで画像をランダム表示

マウスオーバーで画像をランダム表示させてみました

遊びでマウスオーバーで画像がランダムに変わる小細工処理をして見ました。

<img src="元画像" onMouseover="RandomImage(this);" onMouseout="this.src='元画像'">
 
<script type="text/javascript">
function RandomImage(obj){
    var lists=[
    'ランダム画像1',
    'ランダム画像2',
    'ランダム画像3',
    'ランダム画像4',
    ];
     
    var rNo = Math.floor(Math.random() * lists.length);
    obj.src= lists[rNo];
}
</script>

onMouseout=”this.src=’元画像’ の部分をonMouseout=”RandomImage(this); に変更でランダム表示されます。
下の画像にマウスを重ねる度に画像がランダムに切り替わります。

avatar
//例、上の画像の実データ
//画像のリンクは絶対パスにしてください。
<img style="display: block; margin-left: auto; margin-right: auto; border-radius: 150px;" 
 src="images/avatar_a.svg" onMouseover="RandomImage(this);" onMouseout=”RandomImage(this);" alt="avatar" width="300" height="auto">
 
<script type="text/javascript">
function RandomImage(obj){
    var lists=[
    'images/avatar01_a.svg',
    'images/avatar02_a.svg',
    'images/avatar03_a.svg',
    'images/avatar04_a.svg',
    'images/avatar_a.svg'
    ];
     
    var rNo = Math.floor(Math.random() * lists.length);
    obj.src= lists[rNo];
}
</script>

同一ページに複数設置する場合

複数設置する場合は色々な方法が有るとおもいますが、簡単な方法はscript名が重複しないよう変更して設置することです。
onMouseover="RandomImage(this);
onMouseout=”RandomImage(this);
function RandomImage(obj){
の3箇所「RandomImage」の部分を別の名前に変て設置。

もう一つの方法は下記の様にスクリプトをまとめて書く方法です。

//javaScriptをまとめた場合
//画像のリンクは絶対パスにしてください。
<img src="list0元画像URL" onMouseover="RandomImage(this,0);" onMouseout=”RandomImage(this,0);">
 
<img src="list1元画像URL" onMouseover="RandomImage(this,1);" onMouseout=”RandomImage(this,1);">
 
<img src="list2元画像URL" onMouseover="RandomImage(this,2);" onMouseout=”RandomImage(this,2);">
 
<script type="text/javascript">
function RandomImage(obj,listNo){
    list0=[
    'list0のランダム画像',
    'list0のランダム画像',
    'list0のランダム画像',
    ];
 
    list1=[
    'list1のランダム画像',
    'list1のランダム画像',
    'list1のランダム画像',
    ];
     
    list2=[
    'list2のランダム画像',
    'list2のランダム画像',
    'list2のランダム画像',
    ];
     
    lists=[list0,list1,list2];
     
    var rNo = Math.floor(Math.random() * lists[listNo].length);
    obj.src= lists[listNo][rNo];
}
</script>

画像をクリックでランダム表示

こちらは画像をクリックすることでランダムに表示されます。
準備画像はナンバーを付けた形にしています。
avatar01.svg
avatar02.svg
avatar03.svg
avatar04.svg
avatar05.svg

var a = Math.random() * 5; //最大ランダム数(準備した画像の数)

avatar
//画像のリンクは絶対パスにしてください。
<img style="display: block; margin-left: auto; margin-right: auto; border-radius: 150px;" src="images/avatar05.svg" alt="avatar" width="300" height="auto"  id="Random" onclick="aRandomImage()" />

<script>
function aRandomImage(){
     var a = Math.random() * 5;
     var n = Math.floor( a ) +1;
     var avarandom = "images/avatar0"+n+".svg";
     document.getElementById("Random").src = avarandom;
}
</script>