javascript - 如何为移动设备制作固定的 div,但在单击时用滚动填充视口(viewport)

标签 javascript android jquery html css

我们的客户希望能够填写“联系我们”表单,该表单位于桌面/平板电脑页面内容旁边的屏幕右侧。

但是在移动设备中,他们希望它是屏幕底部的一个 div 或按钮(固定),用户始终可以点击。单击后,此表单将填满屏幕并需要滚动,以便客户填写表单并提交。

这是显示问题的图片。注意即使我向下滚动。只有适合 80vh 的 div 数量才会显示 Fixed Position Issue

CSS

.bottomDiv {
    position: fixed !important; 
    bottom:0px !important; 
    width: 100% !important; height: 77px;
    border-radius: 8px;
}

Jquery

    $(window).on("resize load", function () {
        var width = $(window).width();
        if (width < 600)
        {
            $('#divContactSticky').addClass("bottomDiv");
            $('#divContactSticky').on('click', FillScreen);
        }
        else {
            $('#divContactSticky').removeClass("bottomDiv");
            $('#divContactSticky').unbind("click");
        }
    });

    var FillScreen = function () {
        if ($('#divContactSticky').height == '80vh')
        {
            $('#divContactSticky').unbind("click");
        }
        else {
            $('#divContactSticky').css('height', '80vh');
        }

    };
    function CancelForm() {
        if ($('#divContactSticky').height == '80vh') {
            $('#divContactSticky').css('height', '77px');
            $('#divContactSticky').on('click', FillScreen);
        }
        else {

        }
    }

HTML

<div id="divContactSticky" class="large-3 right columns float-right">
            /// <div> this is the 'Contact' portion that is in blue</div>
            <form id="emailForm" action="../api/email" method="post">
                <p>Name*</p>
                <input id="Name" maxlength="25" required />
                <p>Company</p>
                <input id="Company" maxlength="25" />
                <p>Phone</p>
                <input id="Phone" maxlength="14" />
                <p>Email*</p>
                <input id="Email" maxlength="50" required />
                <p>Comments/Questions*</p>
                <textarea id="EmailBody" maxlength="400" required</textarea>
                <input type="reset" value="Cancel" onclick="CancelForm()" css="button-right" />
                <input type="submit" value="Submit" css="button-right" />
            </form>
    </div>

最佳答案

您可以将 style="overflow-y:auto"添加到 divContactSticky。所以它会保持与你提到的 80vh 相同的高度,但它也会向你的 div 添加滚动。

关于javascript - 如何为移动设备制作固定的 div,但在单击时用滚动填充视口(viewport),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38706695/

相关文章:

javascript - 这个javascript的输出和原因

javascript - 从 JavaScript 中的字符串中去除所有非数字字符

android - 如何验证特定的 lambda 方法是否已作为 mockito 的参数传递

javascript - 在 jquery/javascript 中单击时将元素移动到轮播的中间

javascript - 创建一个在 2 个不同值之间交替的数组

android - 使用 FragmentManager 从 Activity 访问 fragment 方法

android - Make.exe 访问被拒绝

javascript - 如何在四个象限中划分部分+在独立于部分点击的可折叠列表框中进行点击

javascript - Jquery 轮播点击事件项目不会重定向

javascript - Openlayer - 无法在标记上绑定(bind)弹出窗口