Vue js动态显示/隐藏div

Posted

技术标签:

【中文标题】Vue js动态显示/隐藏div【英文标题】:Vue js dynamically show/hide div 【发布时间】:2021-08-06 07:06:21 【问题描述】:

我有两个 div:

    <div class = "bigger">
    </div>

    <div class = "smaller">
    </div>

如果屏幕宽度

反之亦然。我可以通过以下方式触发调整大小事件:

    mounted() 
        window.addEventListener("resize", this.displayWindowSize)
    )

   ,

    methods () 

        displayWindowSize(event) 
           if(document.documentElement.clientWidth > 710)
              //hide smaller div
              console.log("bigger");
           else
               //hide bigger div
               console.log("smaller");
           
        
    

但我在互联网上找不到如何在 vuejs 中隐藏 div。

你们有想法吗?

编辑:我想触发这个函数来隐藏 div 每当屏幕宽度变化不止一次。

【问题讨论】:

【参考方案1】:

这取决于你是否想隐藏它删除它,如果你想删除你可以做类似的事情

methods () 
    isBigger() 
       return (document.documentElement.clientWidth > 710);
   

和你的模板

<div v-if="isBigger" class="bigger">
</div>

<div v-else class="smaller">
</div>

<div v-show="isBigger()" class="bigger">
</div>

<div v-show="!isBigger()" class="smaller">
</div>

如果您想决定使用哪一个,请查看此问题 What is better in vue.js 2, use v-if or v-show?

【讨论】:

【参考方案2】:

感谢@top 快速回答的天才。你的解决方案对我不起作用,但我稍微改变了它:

                if(document.documentElement.clientWidth > 710)
                document.getElementsByClassName[0].style.display = "none";
                document.getElementsByClassName("bigger")[0].style.display = "block";
            else
                document.getElementsByClassName("smaller")[0].style.display = "block";
                document.getElementsByClassName("bigger")[0].style.display = "none";
            

完美运行

【讨论】:

【参考方案3】:

这将是正确的方法。

methods () 

    displayWindowSize(event) 
       if(document.documentElement.clientWidth > 710)
          document.querySeletor(".smaller").style.display = "none"
          document.querySeletor(".bigger").style.display = "block"
          console.log("bigger");
       else
           document.querySeletor(".smaller").style.display = "block"
           document.querySeletor(".bigger").style.display = "none"
           console.log("smaller);
       
    

【讨论】:

以上是关于Vue js动态显示/隐藏div的主要内容,如果未能解决你的问题,请参考以下文章

如何使用js动态显示或隐藏DIV

js设置DIV显示时间并动态显示时间倒计时多少秒,倒计时完了之后该层自动隐藏。

《vue》实现动态显示与隐藏底部导航方法!

怎么用JQuery动态添加div 比如 添加 点击一次添加按钮 增加一个div

怎么用JQuery动态添加div 比如 添加 点击一次添加按钮 增加一个div

怎么用JQuery动态添加div 比如 添加 点击一次添加按钮 增加一个div