首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于设备宽度的计数器更改

基于设备宽度的计数器更改
EN

Stack Overflow用户
提问于 2014-08-04 12:06:18
回答 3查看 123关注 0票数 0

我已经使用这个php代码在6项后按顺序添加clearfix <div class="clearfix"></div>。&它运行得很好。

在这里,我想根据设备的宽度设置计数器。这意味着,如果,设备宽度大于1024。因此,计数器将计算6(在6项后添加清除div )。&如果设备宽度小于1024,则为。计数器将计算4(在4项后添加清除div )。

我有这样的代码:,我有这个代码:

代码语言:javascript
复制
<?php $counter = 0; ?>
    <?php foreach ($categories as $category) { ?>

<div class="item"></div>
<?php 
        if(++$counter % 6 === 0) { ?>
          <div class="clearfix"></div>
        <?php  
        }
    } 
    ?>

--看起来是这样的:

如果设备宽度> 1024,则为

代码语言:javascript
复制
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="clearfix"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="clearfix"></div>
    <div class="item"></div>
    <div class="item"></div>

如果设备宽度< 1024,则为

代码语言:javascript
复制
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="clearfix"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="clearfix"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="clearfix"></div>
    <div class="item"></div>
    <div class="item"></div>

如果能提供一些帮助,我们将不胜感激。谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-04 12:21:14

PHP在服务器上运行。它不知道客户端机器的宽度。但是JS可以获得屏幕的宽度。下面是一些解决这个问题的窍门

Step1:当用户通过以下代码出现时,JS在客户端机器上将宽度存储在cookie中

代码语言:javascript
复制
var w = window.innerWidth;
document.cookie="screen_width="+w;

Step2:当需要屏幕宽度时,现在在php中获取cookie

代码语言:javascript
复制
$screen_width = $_COOKIE['screen_width'];

Step3:现在可以在条件下在php代码中使用此宽度

代码语言:javascript
复制
<?php 
    $counter = 0;
    $screen_width = $_COOKIE['screen_width'];

    $limit = 4;
    if($screen_width>1024)
    {
        $limit = 6;
    }

    foreach ($categories as $category){
?>  
    <div class="item"></div>
        <?php 
        if(++$counter % $limit === 0) 
        { 
        ?>
          <div class="clearfix"></div>
        <?php  
        }
    } 
?>
票数 2
EN

Stack Overflow用户

发布于 2014-08-04 12:29:42

可以使用此javascript代码。

<script> var iDiv = document.createElement('div'); iDiv.className = 'item'; var cfDiv = document.createElement('div'); cfDiv.className = 'clearfix'; var myWidth=screen.width; if(myWidth>=1024) { for(i=1; i<=2; i++) { for(j=1; j<=6; j++) { document.getElementsByTagName('body')[0].appendChild(iDiv); } document.getElementsByTagName('body')[0].appendChild(cfDiv); } } else { for(i=1; i<=3; i++) { for(j=1; j<=4; j++) { document.getElementsByTagName('body')[0].appendChild(iDiv); } document.getElementsByTagName('body')[0].appendChild(cfDiv); } } </script>

我想这会管用的。

happyCoding :D

票数 1
EN

Stack Overflow用户

发布于 2014-08-04 12:15:34

实际上,您需要使用javascript property screen.width,而screen.height.Php不能在其中扮演任何角色。

见更多答案和意见here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25118310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档