脚本的功能可以在调整大小时正常工作,但不能在document.ready上正常工作

松露

我有一个函数,可以校正和调整带有文本和图像的三个流体列的大小(和垂直对齐)。

该脚本虽然还不够完善/高效,但是可以完全按预期工作,但有时(?)在一开始会失败。

功能如下:

var resetHeight = function(){
    var maxHeight = 0;
    $(".same-height-col").height("auto").each(function(){
        maxHeight = $(this).height() > maxHeight ? $(this).height() : maxHeight;
    }).height(maxHeight + 25);
    var maxTextSize = 0;
    var tempHeight;
    $(".same-height-col").each(function(){
        tempHeight = $(this).find(".links-text").height();
        maxTextSize = tempHeight > maxTextSize ? tempHeight : maxTextSize;
    });
    var topMargin;
    $(".same-height-col").each(function(){
        topMargin = (maxTextSize - $(this).find(".links-text").height()) + 25;
        $(this).find(".links-image").css("margin-top",topMargin);
    });
}

我叫了两次:

$(document).ready(function() {
    resetHeight();    
    $(window).resize(function() {
        resetHeight();
    });   
});

问题是,当我加载页面很多次时,我看到以下内容:

在此处输入图片说明

这种情况不会持续发生,但确实经常发生,但是一旦我调整窗口大小,脚本便会完全按预期工作:

在此处输入图片说明

那么错误可能在哪里呢?

即使在开始时也要确保调用该脚本,如果我在函数中放置了警报,然后仅加载页面(不调整大小),则会弹出警报。

詹姆斯·霍尔德尼斯

在计算maxHeight值时,您可以通过重置所有在上一个resetHeight调用中设置的内联高度$(".same-height-col").height("auto")但是,您不会重置添加到links-image元素margin-top属性

这意味着第二次调用resetHeight(以及随后的所有时间)时,maxHeight计算将有所不同。为了确保每次的结果都相同,您需要在执行计算之前重置links-image元素上的margin-top属性

$(".same-height-col .links-image").css("margin-top","");
$(".same-height-col").height("auto").each(function(){
    maxHeight = $(this).height() > maxHeight ? $(this).height() : maxHeight;
}).height(maxHeight + 25);

您可能还想提高该高度,maxHeight+50而不是maxHeight+25如果您认为调整大小后的布局结果看起来比加载时的初始布局更好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CDN可以正常工作,但不能在ASP.NET上使用本地托管脚本

来自分类Dev

模板专业化可以在gcc上正常工作,但不能在Visual Studio 10上正常工作

来自分类Dev

Bootstrap网格可以在Bootply中正常工作,但不能在html中正常工作,为什么?

来自分类Dev

html5 $ locationProvider可以在grunt服务上正常工作,但不能在grunt构建中工作

来自分类Dev

代码可以正常工作,但不能正常工作-python

来自分类Dev

它可以在桌面上正常工作,但不能在android上工作。为什么?

来自分类Dev

Angular 8 Material表格可以在本地正常工作,但不能在Stackblitz上使用/ @ViewChild时间不同?

来自分类Dev

BufferedReader的is.ready()方法无法正常工作

来自分类Dev

jQuery Transit排队的过渡仅可在id上正常工作,而不能在类上正常工作

来自分类Dev

正则表达式可以在C#中正常工作,但不能在Javascript中正常工作

来自分类Dev

HTML电子邮件图像可以在Outlook中正常工作,但不能在Outlook.com中正常工作

来自分类Dev

Java脚本中的多个功能本身可以单独工作,但不能在一个脚本中工作

来自分类Dev

脚本可以在实时服务器上正常运行,但不能在wamp上

来自分类Dev

脚本可以在CentOS上正常运行,但不能在RHEL5上运行

来自分类Dev

程序可以在编译器中正常工作,但不能在jar(Java)中

来自分类Dev

在Firefox的jQuery工作正常,但不能在铬?

来自分类Dev

<dead_grave>不能在Emacs上正常工作

来自分类Dev

为什么Require指令不能在Apache上正常工作?

来自分类Dev

为什么Require指令不能在Apache上正常工作?

来自分类Dev

Javascript,Jquery在localhost上可以正常工作,但在已部署的站点上不能正常工作?

来自分类Dev

OpenVPN在Windows上可以正常工作,但在ubuntu上却不能正常工作

来自分类Dev

jQuery脚本在chrome上正常工作,但不是

来自分类Dev

Nautilus 自动调整大小在 Ubuntu 18.04 上无法正常工作

来自分类Dev

primefaces dataTable editMode在对话框外可以正常工作,但不能在对话框内工作

来自分类Dev

阵列混洗在开发时可以正常工作,但不能在生产环境中工作(React / Gatsby)

来自分类Dev

Wi-Fi可以在手机上正常工作,但不能在笔记本电脑上工作

来自分类Dev

AVSynchronizedLayer动画可以在本地文件上正常工作,但在流传输时不能正常工作

来自分类Dev

AVSynchronizedLayer动画可以在本地文件上正常工作,但在流传输时不能正常工作

来自分类Dev

为什么硬盘驱动器不能在笔记本电脑上正常工作,而在台式机上可以正常工作?

Related 相关文章

  1. 1

    CDN可以正常工作,但不能在ASP.NET上使用本地托管脚本

  2. 2

    模板专业化可以在gcc上正常工作,但不能在Visual Studio 10上正常工作

  3. 3

    Bootstrap网格可以在Bootply中正常工作,但不能在html中正常工作,为什么?

  4. 4

    html5 $ locationProvider可以在grunt服务上正常工作,但不能在grunt构建中工作

  5. 5

    代码可以正常工作,但不能正常工作-python

  6. 6

    它可以在桌面上正常工作,但不能在android上工作。为什么?

  7. 7

    Angular 8 Material表格可以在本地正常工作,但不能在Stackblitz上使用/ @ViewChild时间不同?

  8. 8

    BufferedReader的is.ready()方法无法正常工作

  9. 9

    jQuery Transit排队的过渡仅可在id上正常工作,而不能在类上正常工作

  10. 10

    正则表达式可以在C#中正常工作,但不能在Javascript中正常工作

  11. 11

    HTML电子邮件图像可以在Outlook中正常工作,但不能在Outlook.com中正常工作

  12. 12

    Java脚本中的多个功能本身可以单独工作,但不能在一个脚本中工作

  13. 13

    脚本可以在实时服务器上正常运行,但不能在wamp上

  14. 14

    脚本可以在CentOS上正常运行,但不能在RHEL5上运行

  15. 15

    程序可以在编译器中正常工作,但不能在jar(Java)中

  16. 16

    在Firefox的jQuery工作正常,但不能在铬?

  17. 17

    <dead_grave>不能在Emacs上正常工作

  18. 18

    为什么Require指令不能在Apache上正常工作?

  19. 19

    为什么Require指令不能在Apache上正常工作?

  20. 20

    Javascript,Jquery在localhost上可以正常工作,但在已部署的站点上不能正常工作?

  21. 21

    OpenVPN在Windows上可以正常工作,但在ubuntu上却不能正常工作

  22. 22

    jQuery脚本在chrome上正常工作,但不是

  23. 23

    Nautilus 自动调整大小在 Ubuntu 18.04 上无法正常工作

  24. 24

    primefaces dataTable editMode在对话框外可以正常工作,但不能在对话框内工作

  25. 25

    阵列混洗在开发时可以正常工作,但不能在生产环境中工作(React / Gatsby)

  26. 26

    Wi-Fi可以在手机上正常工作,但不能在笔记本电脑上工作

  27. 27

    AVSynchronizedLayer动画可以在本地文件上正常工作,但在流传输时不能正常工作

  28. 28

    AVSynchronizedLayer动画可以在本地文件上正常工作,但在流传输时不能正常工作

  29. 29

    为什么硬盘驱动器不能在笔记本电脑上正常工作,而在台式机上可以正常工作?

热门标签

归档