Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Change image when selecting device and return it back after selecting different device

Trying to change to different image through url when the device is selected. But after clicking and selecting for example android then selecting ios afterwards the android image is not returning to the previous one and you have to click it again to return to the original image.

This code is just an example what i am trying to do.

Code Example:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

function device(select, value){
    devicevalue=value;

    document.getElementById("platform0").classList.add("platform");
    document.getElementById("platform1").classList.add("platform");
    document.getElementById("platform0").classList.remove("selectedPlatform");
    document.getElementById("platform1").classList.remove("selectedPlatform");

    document.getElementById(select).classList.add("selectedPlatform");
    document.getElementById(select).classList.remove("platform");
}

function changecolorandroid(){
    const img = document.getElementById('black-android');
    if (img.dataset.image == "img1") {
        img.src = "https://cdn-icons-png.flaticon.com/512/61/61120.png?w=826&t=st=1660038595~exp=1660039195~hmac=2d02a98f85838b7382aa93176eb51e58e99aec95155d52cb082063ffb6395bc3";
        img.dataset.image = "img2";
        return;
    };

    if (img.dataset.image == "img2"){
        img.src = "https://www.freepnglogos.com/uploads/android-logo-png/android-logo-0.png";
        img.dataset.image = "img1";
        return;
    };
}

function  changecolorios(){
    const pic = document.getElementById('black-ios');
    if (pic.dataset.image == "pic1") {
        pic.src = "https://www.freepnglogos.com/uploads/apple-logo-png/apple-logo-png-what-you-need-know-before-rebranding-11.png";
        pic.dataset.image = "pic2";
        return pic;
    };

    if (pic.dataset.image == "pic2"){
        pic.src = "https://cdn3.iconfinder.com/data/icons/social-media-logos-glyph/2048/5315_-_Apple-512.png";
        pic.dataset.image = "pic1";
        return;
    };
}
.devices{
    display: flex;
    justify-content: center;
    box-sizing: border-box;
    float: none;
}

.platform{
    background: #FFFFFF;
    width: 12em;
    height: 3em;
    border-radius: 1em;
    padding-top: 1em;
    margin: 1em;
    box-shadow: 0 0 0.6em black;
    cursor: pointer;
}

.platform:hover{
    background:#FFFFFF;
    transform: scale(1.1);
    box-shadow: 0 0 0.5em #31271c;
}

.devices-pic{
    width: 3em;
    margin: 0 4em;
}

.devices-pic.ios{
    margin: -0.5em 4.5em 0.2em 4.5em;
}

.devices-pic.android{
    width: 30%;
    margin: -0.5em 4em 0.2em 4em;
}

.selectedPlatform{
    background: grey;
    width: 12em;
    height: 3em;
    border-radius: 1em;
    padding-top: 1em;
    margin: 1em;
    box-shadow: 0 0 0.6em white;
    cursor: pointer;
}
<div class="devices">
                <div class="platform" id="platform0" onclick="device('platform0', 'Android'); changecolorandroid();">
                    <img src="https://www.freepnglogos.com/uploads/android-logo-png/android-logo-0.png" class="devices-pic android" id="black-android" data-image="img1">
                </div>
                <div class="platform" id="platform1" onclick="device('platform1', 'Apple'); changecolorios();">
                    <img src="https://cdn3.iconfinder.com/data/icons/social-media-logos-glyph/2048/5315_-_Apple-512.png" class="devices-pic ios" id="black-ios" data-image="pic1">
                </div>
            </div>

>Solution :

After you click an image, you need to reset the other image to the origin state.

Also, you don’t need the if conditions.

const pic = document.getElementById('black-ios');

const img = document.getElementById('black-android');

function device(select, value){
    devicevalue=value;

    document.getElementById("platform0").classList.add("platform");
    document.getElementById("platform1").classList.add("platform");
    document.getElementById("platform0").classList.remove("selectedPlatform");
    document.getElementById("platform1").classList.remove("selectedPlatform");

    document.getElementById(select).classList.add("selectedPlatform");
    document.getElementById(select).classList.remove("platform");
}

function changecolorandroid(){
        img.src = "https://cdn-icons-png.flaticon.com/512/61/61120.png?w=826&t=st=1660038595~exp=1660039195~hmac=2d02a98f85838b7382aa93176eb51e58e99aec95155d52cb082063ffb6395bc3";
        img.dataset.image = "img2";
        resetIosImage()

}

function  changecolorios(){
        pic.src = "https://www.freepnglogos.com/uploads/apple-logo-png/apple-logo-png-what-you-need-know-before-rebranding-11.png";
        pic.dataset.image = "pic2";
        resetAndriodImage()
}

function resetAndriodImage() {
          img.src = "https://www.freepnglogos.com/uploads/android-logo-png/android-logo-0.png";
        img.dataset.image = "img1";

}

function resetIosImage() {
          pic.src = "https://cdn3.iconfinder.com/data/icons/social-media-logos-glyph/2048/5315_-_Apple-512.png";
        pic.dataset.image = "pic1";

}
.devices{
    display: flex;
    justify-content: center;
    box-sizing: border-box;
    float: none;
}

.platform{
    background: #FFFFFF;
    width: 12em;
    height: 3em;
    border-radius: 1em;
    padding-top: 1em;
    margin: 1em;
    box-shadow: 0 0 0.6em black;
    cursor: pointer;
}

.platform:hover{
    background:#FFFFFF;
    transform: scale(1.1);
    box-shadow: 0 0 0.5em #31271c;
}

.devices-pic{
    width: 3em;
    margin: 0 4em;
}

.devices-pic.ios{
    margin: -0.5em 4.5em 0.2em 4.5em;
}

.devices-pic.android{
    width: 30%;
    margin: -0.5em 4em 0.2em 4em;
}

.selectedPlatform{
    background: grey;
    width: 12em;
    height: 3em;
    border-radius: 1em;
    padding-top: 1em;
    margin: 1em;
    box-shadow: 0 0 0.6em white;
    cursor: pointer;
}
<div class="devices">
                <div class="platform" id="platform0" onclick="device('platform0', 'Android'); changecolorandroid();">
                    <img src="https://www.freepnglogos.com/uploads/android-logo-png/android-logo-0.png" class="devices-pic android" id="black-android" data-image="img1">
                </div>
                <div class="platform" id="platform1" onclick="device('platform1', 'Apple'); changecolorios();">
                    <img src="https://cdn3.iconfinder.com/data/icons/social-media-logos-glyph/2048/5315_-_Apple-512.png" class="devices-pic ios" id="black-ios" data-image="pic1">
                </div>
            </div>
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading