переход на вновь созданный элемент javascript - PullRequest
1 голос
/ 19 июня 2019

Я анимирую сцену в веб-проекте. Поэтому я использую простой Javascript. В моем сценарии я создаю новый элемент "div" с определенными свойствами. Цель состоит в том, чтобы анимировать свойство ширины за 2 секунды во время перехода линейным способом без задержки.

Браузер создает новый элемент с новым значением «ширина», как я могу анимировать от старого до нового «ширина»?

function planTrail(){

//do this if the values check out.. 
var large_dashboard = document.createElement('div');
var large_dashboard = document.createElement('div');
large_dashboard.id = "large_dash";
large_dashboard.style.backgroundColor = "#515151";
large_dashboard.style.border = "solid 2px black";
large_dashboard.style.height = "58vh"; 
large_dashboard.style.position = "fixed";
large_dashboard.style.borderRadius = "1em";
large_dashboard.style.right = "10vw";
large_dashboard.style.top = "25vh";
large_dashboard.style.width = "8vw";

var current_section = document.getElementById("first_part_page");
document.body.insertBefore(large_dashboard, current_section);


//how can I call a transition on my newly called element? 
//browser creates second element with the new value for width, without transition

var large_dash = document.getElementById("large_dash"); 

large_dash.style.width = "80vw"; 
large_dash.style.setProperty("-webkit-transition", "width 2s linear 0s");
large_dash.style.setProperty("-moz-transition", "width 2s linear 0s");
large_dash.style.setProperty("-o-transition", "width 2s linear 0s");
large_dash.style.setProperty("transition", "width 2s linear 0s");
}

Я не вставил свой полный веб-проект, так как это очень специфический вопрос. Если вам это нужно, я с радостью предоставлю это.

1 Ответ

1 голос
/ 19 июня 2019

Используйте setTimeout для задержки, чтобы изменить ширину, например:

function planTrail() {

    //do this if the values check out.. 
    var large_dashboard = document.createElement('div');
    var large_dashboard = document.createElement('div');
    large_dashboard.id = "large_dash";
    large_dashboard.style.backgroundColor = "#515151";
    large_dashboard.style.border = "solid 2px black";
    large_dashboard.style.height = "58vh";
    large_dashboard.style.position = "fixed";
    large_dashboard.style.borderRadius = "1em";
    large_dashboard.style.right = "10vw";
    large_dashboard.style.top = "25vh";
    large_dashboard.style.width = "8vw";

    var current_section = document.getElementById("first_part_page");
    document.body.insertBefore(large_dashboard, current_section);

    var large_dash = document.getElementById("large_dash");
    large_dash.style.setProperty("-webkit-transition", "width 2s linear 0s");
    large_dash.style.setProperty("-moz-transition", "width 2s linear 0s");
    large_dash.style.setProperty("-o-transition", "width 2s linear 0s");
    large_dash.style.setProperty("transition", "width 2s linear 0s");

    setTimeout(function () {
        large_dash.style.width = "80vw";
    }, 0);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...