更改图片点击的网址

时间:2020-07-09 19:49:18

标签: javascript html

我使用js插入图像数组,并向所有图像添加了相同的类。现在,我想在单击图像时更改url,但是我无法区分图像,有人可以帮忙吗?例如,当单击image1进入差异链接时,单击image2进入另一个链接。 这是下面的代码:

infoArray = [
    {
        "image": "001.jpg",
        "title": "Jordan",
        "text": ["Web Development"],
    },
    {

        "image": "tri.jpg",
        "title": "Last Night",
        "text": ["Web Development"],
    },
    {
        "image": "001.jpg",
        "title": "Chatter",
        "text": ["Web Development", "Web Design"],
    },
]

function insertDiv(array, container) {
    array.forEach(function (e, index) {
        let div = document.createElement("div");
        div.classList.add("box");
        container.appendChild(div);
        insertImages(array, div, index)

    });
}

function insertImages(array, container, index) {
    let img = new Image();
    img.src = array[index]["image"];
    img.classList.add("image");
    container.appendChild(img);

    insertTitle(array, container, index);
}
function insertTitle(array, container, index) {
    let titleContainer = document.createElement("p");
    titleContainer.classList.add("title");
    let title = document.createTextNode(array[index]["title"]);
    titleContainer.appendChild(title);
    container.appendChild(titleContainer);

    insertText(array, container, index);
}

function insertText(array, container, index) {
    let textContainer = document.createElement("div");
    textContainer.classList.add("textContainer");

    array[index]["text"].forEach(function (e, i) {
        let text = document.createElement("p");
        let innerText = document.createTextNode(array[index]["text"][i]);
        text.appendChild(innerText);
        textContainer.appendChild(text);
    })

    container.appendChild(textContainer);
}

function FadeIn(img){
    var ourScene = new ScrollMagic.Scene({
        triggerElement: img,
        triggerHook: 0.7,
        reverse: true,
        duration: "100%",
    })
    .on('start', function(){
        TweenMax.to(img, 1, {opacity: 1, y:10})
    })
    .on('end', function(){
        controllerInfo = controller.info("scrollDirection");
        TweenMax.to(img, 1, {opacity: 0});
        if ( controllerInfo == 'REVERSE'){
            TweenMax.to(img, 1, {opacity: 1});

        }
    })
    .addIndicators()
    .addTo(controller);
}


function checkHovering(images){ //looks if hovering on img
    images.forEach(function(image, index){
        document.addEventListener("mousemove", function(e){
            if(e.x>image.getBoundingClientRect().x
            && e.x<document.documentElement.clientWidth - image.getBoundingClientRect().x
            && e.y>image.getBoundingClientRect().y
            && e.y<image.getBoundingClientRect().y + image.getBoundingClientRect().height){
                TweenMax.to(image, 1, {css: {scale: 1.02}});
                appearTitle(index);
            } else {
                TweenMax.to(image, 0.5, {css: {scale: 1}});
                disappearTitle(index);

            }
        })
    })
}

function appearTitle(index){
    currentTitles[index].style.opacity = 1;
    currentText[index].style.opacity = 1;
}


function disappearTitle(index){
    currentTitles[index].style.opacity = 0;
    currentText[index].style.opacity = 0;
}

function clickImg(images){
    images.forEach(function(image){
      
    })
}


let container = document.querySelector(".container");
let controller = new ScrollMagic.Controller();
insertDiv(infoArray, container);

let currentTitles = document.querySelectorAll(".title");
let currentImages = document.querySelectorAll(".image");
let currentText = document.querySelectorAll(".textContainer");

currentImages.forEach(function(element){
    FadeIn(element);
})
checkHovering(currentImages);

0 个答案:

没有答案
相关问题