【问题标题】:How can I multiply my element created with JS如何将使用 JS 创建的元素相乘
【发布时间】:2021-03-16 03:24:47
【问题描述】:

                container = document.querySelector('.itemContainer');       

                for(i = 0; i < 30; i++){
                    container.innerHTML += '<div class="item"></div>';
        

                    if((i % 5) == 0){ 
                        document.querySelectorAll('.item')[i].style.setProperty("--width", 4+"px");
                    }       

                    document.querySelectorAll('.item')[i].style.transform = "rotate(" + i * 6 + "deg)";     
                }
                * {
                    margin       : 0;
                    padding:   : 0;
                    box-sizing : border-box;
                }

                body {
                    width                   : 100%;
                    height                  : 100vh;
                    display                 : flex;
                    justify-content : center;
                    align-items         : center;
                }

                .mainContainer {
                    position                 : relative;
                    width                    : 440px;
                    height                   : 200px;
                    display                  : flex;
                    justify-content  : center;
                    align-items          : center;
                    justify-content  : space-around;
                    border-radius    : 5px;
                    border                   : 1px solid black;
                    background-color : silver;
                }

                .itemContainer{
                    position                : relative;
                    width                   : 130px;
                    height                  : 130px;
                    display                 : flex;
                    justify-content : center;
                    align-items         : center;
                    border-radius   : 50%;
                }

                .item {
                    position                : absolute;
                    width                   :2px;
                    height                  :100%;
                    display                 : flex;
                    justify-content : center;
                }

                .item::before {
                    top              : 0px;
                    content      : '';
                    position     : absolute;
                    background : var(--background, black);
                    width        : var(--width, 2px);
                    height       : 10px;
                    text-align : center;
                }

                .item::after {
                    bottom       : 0px;
                    content      : '';
                    position   : absolute;
                    background : var(--background, black);
                    width        : var(--width, 2px);                       
                    height       : 10px;
                }
            <div class="mainContainer">
                <div class="itemContainer">H</div>
                <div class="itemContainer">M</div>
                <div class="itemContainer">S</div>
            </div>
 I want to use my "Clock Dial" drawn with JS in different Divs. 

无法相乘。我糊涂了。感谢您提供的所有帮助。

每个 div 都会显示时钟的各个部分:小时、分钟、秒。

感谢您的帮助。希望代码足够清晰。

我在下面粘贴了“lorem”文本来发送我的问题? ! :)

Lorem ipsum dolor sit amet,consectetur adipisicing elit。 Culpa eum enim optio ut quisquam? Iusto,iure veniam 别名,ducimus reprehenderit laboriosam eum aut molestiae dolor esse saepe facilis dolore consequatur autem quaerat illuminvente quia sint libero nesciunt!

【问题讨论】:

  • 请提供一个使用你目前拥有的 sn-p 和 js 的最少工作示例。说明代码的预期行为和当前行为。询问您正在尝试做什么以及什么不起作用。这将有助于理解问题。
  • 我是新来的,遇到了一些困难。如您所见,为了能够发送问题,我添加了一些虚拟文本。找到剪断需要很多时间。谢谢你。 :)

标签: javascript html css


【解决方案1】:

你必须创建一个函数并像这样重用代码

更新 HTML:

<div class="mainContainer">
  <div id="h" class="itemContainer">H</div>
  <div id="m" class="itemContainer">M</div>
  <div id="s" class="itemContainer">S</div>
</div>

JS:

function makeCircle(circle) {
  container = document.querySelector('#'+circle);

  for(i = 0; i < 30; i++){
    container.innerHTML += '<div class="item '+circle+' "></div>';
    if((i % 5) == 0){ 
      document.querySelectorAll('.item.'+circle)[i].style.setProperty("--width", 4+"px");
    }       
    document.querySelectorAll('.item.'+circle)[i].style.transform = "rotate(" + i * 6 + "deg)";     
  }
}

makeCircle('h');
makeCircle('m');
makeCircle('s');

【讨论】:

  • 这是一个很好的解决方案。所以我需要 12 段作为“小时”部分,添加第二个。参数来改变度数,效果很好。非常感谢。
  • 是的,我很高兴。如果你能投票赞成答案会很好:P
猜你喜欢
  • 1970-01-01
  • 2017-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-31
相关资源
最近更新 更多