当前位置: 首页 > 知识库问答 >
问题:

使用JavaScript根据屏幕大小更改链接指向的位置

刘升
2023-03-14

我正在使用Bootstrap4框架创建一个移动第一站点。我正在尝试创建一个JavaScript函数,它将在

<div class="col-md">
    <div id="accordion" class="form-group text-dark mt-3">
        <!-- Cold Card -->
        <div class="card">
            <!-- Cold Temps -->
            <!-- Temps include Make line temps, Refrigerator temps, 
                 Freezer temps, and Beffet temps -->
            <div class="card-header">
                <a class="card-link" 
                   data-toggle="collapse" 
                   data-parent="#accordion" 
                   href="#cold" 
                   id="coldlink">
                    <h3>Cold Temps Management</h3>
                </a>
            </div>

            <!-- Cold Card -->
            <div class="collapse" id="cold">

我一直在尝试几种不同的JavaScript函数,下面是我最近使用的一组函数:

const mq = window.matchMedia( "(min-width: 767px)");

if(mq.matches) {
    document.getElementById("coldlink").href = "#cold";
} else {
    document.getElementById("coldlink").href = "cold.php";
}

根据我在许多不同网站上读到的内容,当屏幕大小为767px或更大时,此代码应将元素“coldlink”的href属性更改为“#cold”,当屏幕大小小于767px时,此代码应更改为“cold.php”。然而,当我运行这段代码(在整个页面中)并使用开发人员工具检查页面时,我会收到一条错误消息,说“TypeError:document.getElementById(…)为null”

我在其他几个函数中使用了.getElementById(…)方法,但没有收到相同的错误消息,因此我不知道这次哪里出错了。

如果有一种方法可以使用Bootstrap更改href属性,我非常愿意尝试一下,因为我还没有发现如何做到这一点


共有2个答案

景修杰
2023-03-14

您可以执行点击事件,而不是在屏幕上显示hrefhttps://www.w3schools.com/jsref/event_onclick.asp

在onclick函数中,您可以

const mq = window.matchMedia( "(min-width: 767px)");

if (mq.matches) {
    window.location.href = "#cold";
} else {
    window.location.href = "cold.php";
}
葛驰
2023-03-14

添加窗口onload,为了让你的DOM在页面中完全加载,比你可以得到你的锚元素并改变它的href,如果你想用javascript做DOM操作,你最好确保它们都先加载。

window.onload = function () {
            const mq = window.matchMedia("(min-width: 400px)").matches
            if (mq) {
                console.log('More')
                document.getElementById("coldlink").href = "#cold";
            } else {
                console.log('Less')
                document.getElementById("coldlink").href = "cold.php";
            }
        }
 类似资料:
  • 我有一个可折叠的导航条构建与bootstrap 4。我使用了col-sm-2和navbar-expand-sm来使它以相同的屏幕尺寸折叠成一个汉堡包,它应该占据整个宽度。 问题是在sm屏幕尺寸以上,我希望它有h-100,所以它是一个侧栏,但作为sm/xs,我希望它只是占用拨动按钮所需的空间。 有没有办法用bootstrap来实现这一点,或者我被困在jquery中添加/删除h-100类?

  • 我想设计下面的UI。为了达到同样的效果,我试着使用拖拉。但问题是:在不同的屏幕尺寸上,可绘制图像的显示方式不同。屏幕尺寸为6.0时:可抽片呈椭圆形,下方为圆形。 用户界面设计尝试实现: 内容和布局: 线性布局可绘制: bg_布局: 主要的类别:

  • 问题内容: 我需要根据屏幕分辨率更改templateURL,例如,如果我的屏幕宽度小于768px,则必须加载“ templates / browse-content- mobile.html”;如果屏幕宽度大于768px,则必须加载“ templates / browse-content” .html”。 当前使用的代码。 在这里我正在尝试此代码 此代码块正常工作,它根据那里的分辨率加载移动和桌面

  • 问题内容: CSS nob在这里… 我正在研究一个响应式框架,并想象如何完成不同的任务。 根据屏幕的大小,它们具有添加到body标签的类,例如: .PhoneVisible,.DesktopVisible等… 他们也有将按钮链接到的类: .btn,小按钮,中按钮,大按钮 我对如何更改CSS感到困惑。IE浏览器类似: 您是否必须单独设置各种选项? 即.PhoneVisible .MyButtonOp

  • 我正在制作一个网站,它显示一定数量的文本。例如: “Lorem ipsum dolor sit amet,concetetur adipiscing elit。Suspendisse imperdiet venenatis nulla,sed viverra arcu eget ornare。Morbi commodo,ullamcorper neque egestas,est est iacul

  • 我想根据响应本机中的屏幕宽度更改。 我想做这样的东西,预期的结果是在向添加数字时变得更小。 我尝试的资源: React Native响应字体大小 https://reactnativeexample.com/responsive-fontsize-based-on-screen-size-of-the-device-in-react-native/ 更多的不起作用。