javascript - 我在特定屏幕尺寸下禁用了特定 jQuery 脚本,但是如何在调整屏幕大小时检查它?

标签 javascript jquery responsive-design

我在屏幕尺寸低于 1020 时禁用此功能,但知道如何让它在调整浏览器窗口大小时动态检查吗?:

<script>
$(document).ready(function() {

/*Set height of sections to window height*/
$( "#homepage-fold" ).each(function(){
if ($(window).width() >= 1020) {
    var $this = $(this);}
    $this.css({'height':($(window).height())+'px'});

    /*Recalculate on window resize*/
$(window).resize(function(){
        $this.css({'height':($(window).height())+'px'});
    });
 });

 });</script>

知道如何让我添加的 if 语句在浏览器大小调整时动态工作。我尝试将第一个 if 标记包装在第二个 Recalculate 部分中,但我一定没有将其放在正确的位置。

谢谢!!

--

首先,这似乎是一个简单的解决方案,但我尝试的解决方案不起作用。我对 jQuery 比较陌生,所以我猜测这是我的语法错误 - 可能是这条规则的放置不当。如果有人能帮助我弄清楚如何让它发挥作用,我将不胜感激。我只希望此脚本在屏幕尺寸大于 1020 像素时处于事件状态。 1020 以下的屏幕应该会看到没有此事件脚本的页面。

   <script>
   $(document).ready(function() {

    /*Set height of sections to window height*/
    $( "#homepage-fold" ).each(function(){
        var $this = $(this);
        $this.css({'height':($(window).height())+'px'});

        /*Recalculate on window resize*/
        $(window).resize(function(){
            $this.css({'height':($(window).height())+'px'});
        });
    });

});</script>

我想通过添加

    if(screen.width >= 1020){

像这样: $(文档).ready(function() {

    /*Set height of sections to window height*/
    $( "#homepage-fold" ).each(function(){

if(screen.width >= 1020){

        var $this = $(this);
        $this.css({'height':($(window).height())+'px'});

        /*Recalculate on window resize*/
        $(window).resize(function(){
            $this.css({'height':($(window).height())+'px'});
        });

添加:}); });

});</script>

对于我把这段代码弄乱的地方有什么想法吗?谢谢你!!

最佳答案

这就是我的方法。 setFold 函数将所需元素的高度设置为窗口的高度,或者 - 如果窗口的宽度小于断点 (1020),则将其设置为默认值 (999)。 我还将 onresize 回调包装到一个超时中,延迟其执行,直到调整大小事件实际结束(从而使其成为真正的 onresizeend)。有时这是一个好主意,因为当有人调整窗口大小时,resize 会被多次触发。根据 onresize 所做的操作,这可能会导致相当大的延迟,并且在大多数情况下,当用户停止调整大小时发生一次完全可以(您可以使用 callbackDelay > 此处或完全删除超时内容)。

$(document).ready(function(){

    // DOM READY
    var $window    = $(window), // cached
        $fold      = $('#homepage-fold'),
        breakpoint = 1020,
        defaultHeight = 999,
        resizeTimeout,
        callbackDelay = 200; // ms


    function setFold(){
        if( $window.width() < breakpoint ){
            $fold.css('height', defaultHeight );
        }
        else {
            $fold.css('height', $window.height() );
        }
    }

    setFold(); // initial setting

    // Attach event
    $window.on('resize', function(){
        clearTimeout( resizeTimeout );
        resizeTimeout = setTimeout(function(){
            setFold();
        }, callbackDelay );
    })

});

关于javascript - 我在特定屏幕尺寸下禁用了特定 jQuery 脚本,但是如何在调整屏幕大小时检查它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24620389/

相关文章:

css - 我可以防止 DotNetNuke css 与其他框架冲突吗?

javascript - 如何获取点击的div元素的rowIndex

javascript - 如何在 JavaScript 中检索元属性 og 的内容?

javascript - 附加到特定元素

javascript - AJAX Post 请求不返回 JSON 数据

html - 响应式设计中固定大小的 iframe

Javascript 数组和 While 循环

javascript - ES6 : How to reuse a const variable in multiple files of the library BUT WITHOUT exposing it to client code?

javascript - 单击当前行以在 jQuery 中展开详细信息

css - 卡住/快照 CSS 并获取值