简体   繁体   中英

replace main image when a thumbnail image is hover for all products in one page

On my category product page, I want to replace the main image when a thumbnail is hovered for all products in one page .

see here: newchic.com , nike.com

My html code:

<div class="container-fluid">
    <div class="row ">
        <div class="product col ">
            <img src="large1.jpg" id="1" alt="blue" title="Blue">

            <ul class="colors">
                <li><img src="thumb1.jpg" alt="blue" onmouseover="showImage('large1.jpg','Blue');"></li>
                <li><img src="thumb2.jpg" alt="red" onmouseover="showImage('large2.jpg','Red');"></li>
                <li><img src="thumb3.jpg" alt="orange" onmouseover="showImage('large3.jpg','Orange');" ></li>
            </ul>
        </div>
        <div class="product col ">
            <img src="large1.jpg" id="2" alt="blue" title="Blue">

            <ul class="colors">
                <li><img src="thumb1.jpg" alt="blue" onmouseover="showImage('large1.jpg','Blue');"></li>
                <li><img src="thumb2.jpg" alt="red" onmouseover="showImage('large2.jpg','Red');"></li>
                <li><img src="thumb3.jpg" alt="orange" onmouseover="showImage('large3.jpg','Orange');" ></li>
            </ul>
        </div>
        <div class=" product col ">
            <img src="large1.jpg" id="3" alt="blue" title="Blue">

            <ul class="colors">
                <li><img src="thumb1.jpg" alt="blue" onmouseover="showImage('large1.jpg','Blue');"></li>
                <li><img src="thumb2.jpg" alt="red" onmouseover="showImage('large2.jpg','Red');"></li>
                <li><img src="thumb3.jpg" alt="orange" onmouseover="showImage('large3.jpg','Orange');" ></li>
            </ul>
        </div>
    </div>
</div>

<script>
    function showImage(imgPath, imgText) {
        let curImage = document.getElementById('1');
        curImage.src = imgPath;
        curImage.alt = imgText;
        curImage.title = imgText;
    }
</script>
<img src="desert.jpg" id="1" onmouseover="image(this.id)" />
<img src="artic.jpg"  id="2" onmouseover="image(this.id)" />
<img src="sahra.jpg"  id="3" onmouseover="image(this.id)" />

<script>
let lit_img = ['img/Image_1','img/Image_2','img/Image_3']; 
function image(id){
    var img = document.getElementById(id).src = lit_img[id]+".jpg";
}
</script>

I added an ID and my problem was solved.

    <div class="container-fluid">
    <div class="row ">
        <div class="product col ">
            <img src="large1.jpg" id="1" alt="blue" title="Blue">

            <ul class="colors">
                <li><img src="thumb1.jpg" alt="blue" onmouseover="showImage('large1.jpg','Blue', 1);"></li>
                <li><img src="thumb2.jpg" alt="red" onmouseover="showImage('large2.jpg','Red', 1);"></li>
                <li><img src="thumb3.jpg" alt="orange" onmouseover="showImage('large3.jpg','Orange', 1);" ></li>
            </ul>
        </div>
        <div class="product col ">
            <img src="large1.jpg" id="2" alt="blue" title="Blue">

            <ul class="colors">
                <li><img src="thumb1.jpg" alt="blue" onmouseover="showImage('large1.jpg','Blue', 2);"></li>
                <li><img src="thumb2.jpg" alt="red" onmouseover="showImage('large2.jpg','Red', 2);"></li>
                <li><img src="thumb3.jpg" alt="orange" onmouseover="showImage('large3.jpg','Orange', 2);" ></li>
            </ul>
        </div>
        <div class=" product col ">
            <img src="large1.jpg" id="3" alt="blue" title="Blue">

            <ul class="colors">
                <li><img src="thumb1.jpg" alt="blue" onmouseover="showImage('large1.jpg','Blue', 3);"></li>
                <li><img src="thumb2.jpg" alt="red" onmouseover="showImage('large2.jpg','Red', 3);"></li>
                <li><img src="thumb3.jpg" alt="orange" onmouseover="showImage('large3.jpg','Orange', 3);" ></li>
            </ul>
        </div>
    </div>
</div>

<script>
    function showImage(imgPath, imgText, mainImgId) {
        let curImage = document.getElementById(mainImgId);
        curImage.src = imgPath;
        curImage.alt = imgText;
        curImage.title = imgText;
    }
</script>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM