javascript - 使用 JS 和 jQuery 的响应式文本

标签 javascript jquery

我正在尝试在我的网站上设置一个简单的标题,如果窗口缩放或加载到低于某个 px 宽度,则将其中的文本更改为更短,然后如果再次缩放得更大,则会弹回到原始 HTML再次。然而,由于某种原因,这被证明是非常困难的。

现在我有:

<script>
if ( $(window).width() > 480) {    
    $(".title").html("<a class='title' href='/'>LONGTEXTLONGTEXT</a>");
}
</script>

<script>
window.addEventListener('resize', function(event){
    if ( $(window).width() < 480) {    
        $(".title").html("<a class='title' href='/'>SHORTTEXT</a>");
    }
});
</script>

但由于某种原因,它根本就失败了。

有什么想法吗?

最佳答案

正如建议的,最好在没有 JavaScript 的情况下使用 CSS 媒体查询(并且不只是更改字体大小)来完成此操作。

将长短标题链接放在页面上,并根据宽度显示/隐藏它们:

div.title { background-color:#ff0; border-bottom:1px solid #000; }

/* this is for anything less than 480px */    
.title > .title { display:none; }
.title > .titlesmall { display:initial; }

/* greater than 480px */
@media screen and (min-width: 480px){
  .title > .title { display:initial; }
  .title > .titlesmall { display:none; }
}
<div class="title">
  <a class='title' href='/'>Some really long title</a>
  <a class='titlesmall' href='/'>CD</a>
</div>

或者修复语法错误,最好也使用 jQuery 来监听 resize 事件,也应该足够好:

<div class="title">
  <a class='title' href='/'>Some really long title</a>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
  if ($(window).width() < 480) {
    $(".title").html("<a class='title' href='/'>CD</a>");
  }
</script>

<script>
  $(window).on('resize', function(event) {
    if ($(window).width() < 480) {
      $(".title").html("<a class='title' href='/'>CD</a>");
    }
  });
</script>

关于javascript - 使用 JS 和 jQuery 的响应式文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35212113/

相关文章:

javascript - 具有偏移量的 Canvas 元素

javascript - 对于 HTML5 元素的 id 属性使用中文/日文字符(汉字/かな)是一个好习惯吗?如何验证?

javascript - 无法从函数返回方程式

javascript - 获取元素内按下按钮的按钮文本

javascript - CSS/Javascript : How to make rotating circular menu with multiple states?

javascript - 在字符串中查找表情符号

javascript - 无法将主进程中定义的变量传递给启用了 contextIsolation 的渲染器 BrowserView?

javascript - 适合 map 以始终显示世界

php - jQuery 的 serialize() 函数仅返回最后选定的复选框值,而不是全部!

jquery - 在图像上叠加文字?