【问题标题】:Tabbed checkbox not working on mobile选项卡式复选框不适用于移动设备
【发布时间】:2023-04-03 04:00:01
【问题描述】:

我正在尝试创建一个 TABBED 复选框,并且除了在手机上之外一切正常。在手机上,点击其中一个选项卡后,它什么也不做,但如果我改变方向,它就会正确显示。谁能帮帮我吗。以防万一,我正在旧手机上测试兼容性,Android 4.4.2。

这是一个带有代码的代码笔: http://codepen.io/lepew/pen/Ppqwez

    <div id="sign_Page">
    <br/>
    Please select "REGISTER" for new applicants, "LOGIN for current hello users and "FORGOT" if you need your password reset.
    <br/>
    <br/>
    <div class="sign_Area">
        <input type="radio" name="tabGroup1" id="rad1" class="tab1"/>
        <label for="rad1">REGISTER</label>
        <input type="radio" name="tabGroup1" id="rad2" class="tab2" checked="checked"/>
        <label for="rad2">LOGIN</label>
        <input type="radio" name="tabGroup1" id="rad3" class="tab3"/>
        <label for="rad3">FORGOT</label>
        <div class="tab1"><!-- REGISTER -->
            <div class="sign_Case">
                SIGNUP
                <br/>
                <br/>
                SUMBIT
            </div><!-- end of #sign_Case -->
        </div><!-- end of TAB1 -->
        <div class="tab2"><!-- LOGIN -->
            <div class="sign_Case">
                LOGIN
                <br/>
                <br/>
                SUMBIT
            </div><!-- end of #sign_Case -->
        </div><!-- end of TAB1 -->
        <div class="tab3"><!-- FORGOT -->
            <div class="sign_Case">
                EMAIL
                <br/>
                <br/>
                SUMBIT
            </div><!-- end of #sign_Case -->
        </div><!-- end of TAB1 -->
        <br/>
        <br/>
    </div><!-- end of #sign_Area -->
</div><!-- end of #sign_Page -->

【问题讨论】:

  • 我使用的是带触摸屏的笔记本电脑,它在视口和任何窗口分辨率上都能完美运行。
  • 感谢您的回复,它适用于除手机之外的所有设备。我检查了can caniuse,一切正常。
  • 您使用哪种手机浏览器?
  • 三星 3,版本 4.4.2。我不明白的部分是为什么我改变方向后它可以正常显示。

标签: css


【解决方案1】:

在移动设备上强制回流,因为方向变化会引起。这些是脚本,但您可以这样做...

someelement.style.display='none';
someelement.offsetHeight; // no need to store this anywhere, the reference is enough
someelement.style.display='';

可选的 timeout 为 0 会触发重排,就像查询 offsetHeight 所做的那样:

sel.style.display = 'run-in'; 
setTimeout(function () { sel.style.display = 'block'; }, 0);

【讨论】:

  • 谢谢你,马克。 2个问题,这么旧的手机真的值得瞄准吗?我用什么替换一些元素?
  • element = document.getElementById(id); 或类似的东西,在您的页面上选择一个 id,甚至为此专门放置一个。您的目标不是技术,而是业务/其他决策 - 所以这取决于。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 2022-10-15
  • 2021-06-17
  • 2015-01-16
  • 2022-04-15
  • 1970-01-01
  • 2015-05-15
相关资源
最近更新 更多