【问题标题】:how i use bootstrap slider in open cart我如何在 opencart 中使用引导滑块
【发布时间】:2014-02-25 02:29:00
【问题描述】:

有没有人尝试使用 opencart 幻灯片模块的引导幻灯片?

这是我正在尝试但获取所有活动课程的代码。有人可以帮帮我。

<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
<div class="carousel-inner slideshow <?php echo $module; ?>">
<div class="item active">

    <?php foreach ($banners as $banner) { ?>
    <?php if ($banner['link']) { ?>
    <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" /></a>
    <?php } else { ?>
    <img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" />
    <?php } ?>
    <?php } ?>
    </div>

    <a class="left carousel-control" href="#carousel-example-generic" data-slide="prev"><span class="glyphicon glyphicon-chevron-left"></span></a>
    <a class="right carousel-control" href="#carousel-example-generic" data-slide="next"><span class="glyphicon glyphicon-chevron-right"></span></a>

    </div>
    </div>

【问题讨论】:

  • 可以有html版本吗?首先在浏览器中运行它,然后查看页面源代码。将id="carousel-example-generic"的div及其内容复制粘贴到这里。
  • 感谢您的回复。实际上我需要第一个 div 活动例如

标签: php jquery css twitter-bootstrap opencart


【解决方案1】:

UPD:循环必须是这样的

<div class="carousel slide" data-ride="carousel">
<div class="carousel-inner slideshow<?php echo $module; ?>">
<?php foreach ($banners as $banner) { ?>
<?php if ($banner['link']) { ?>
<div class="item"><a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" /></a></div>
<?php } else { ?>
<div class="item"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" /></div>
<?php } ?>
<?php } ?>
<a class="left carousel-control" href="#carousel-example-generic" data-slide="prev"><span class="bootstrap_left"></span></a>
<a class="right carousel-control" href="#carousel-example-generic" data-slide="next"><span class="bootstrap_right"></span></a>

</div>
</div>

和jquery

<script type="text/javascript"><!--
$(document).ready(function() {
$('.item:first-child').addClass('active');
$('.carousel').carousel();
});
--></script>

【讨论】:

    【解决方案2】:

    正如您在第三行中看到的那样 &lt;div class="item active"&gt;.

    您需要将其包含在您的 php.ini 循环中。 然后创建一个条件,如果它是第一项,则将其类设置为 item active,然后在 else 语句中设置为 item

    尝试使用此示例代码解决问题。

    <?php $i = 1; ?>
    <?php foreach ($rows as $row): ?>
    <?php $item_class = ($i == 1) ? 'item active' : 'item'; ?>
        <div class="<?php echo $item_class; ?>">
          <a href="<?php echo $row['url']; ?>">
            <img src="<?php echo $row['image']; ?>" alt="<?php echo $row['title']; ?>" />
          </a>
        </div>
    <?php $i++; ?>
    <?php endforeach; ?>
    

    【讨论】:

    • 你能给我举个例子吗?
    • 也可以查看this link
    • 谢谢@adrian。到目前为止,这是工作代码,但是当我使用 right carousel-control 导航它时,所有 div(s) 都再次命名为“item”。 &lt;?php $i = 1; ?&gt; &lt;?php foreach ($banners as $banner): ?&gt; &lt;?php $item_class = ($i == 1) ? 'item active' : 'item'; ?&gt; &lt;div class="&lt;?php echo $item_class; ?&gt;"&gt; &lt;a href="&lt;?php echo $banner['link']; ?&gt;"&gt;&lt;img src="&lt;?php echo $banner['image']; ?&gt;" alt="&lt;?php echo $banner['title']; ?&gt;" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;?php $i++; ?&gt; &lt;?php endforeach; ?&gt;
    • 但是当你第一次加载它时,它似乎还可以吗?
    • 是的,一切正常。但是当我用右侧控件导航它时,它似乎没有导致所有类回到“项目”:(
    【解决方案3】:

    您是否参考或检查过您的代码输出的 html 版本。如果类似 引导轮播设置应该是什么?

    请参考它。 BOOTSTRAP CAROUSEL

    其他参考这个小提琴JSFIDDLE DEMO

    轮播脚本

    // invoke the carousel
    $('#myCarousel').carousel({
      interval: 3000
    });
    
    /* SLIDE ON CLICK */ 
    
    $('.carousel-linked-nav > li > a').click(function() {
    
        // grab href, remove pound sign, convert to number
        var item = Number($(this).attr('href').substring(1));
    
        // slide to number -1 (account for zero indexing)
        $('#myCarousel').carousel(item - 1);
    
        // remove current active class
        $('.carousel-linked-nav .active').removeClass('active');
    
        // add active class to just clicked on item
        $(this).parent().addClass('active');
    
        // don't follow the link
        return false;
    });
    
    /* AUTOPLAY NAV HIGHLIGHT */
    
    // bind 'slid' function
    $('#myCarousel').bind('slid', function() {
    
        // remove active class
        $('.carousel-linked-nav .active').removeClass('active');
    
        // get index of currently active item
        var idx = $('#myCarousel .item.active').index();
    
        // select currently active item and add active class
        $('.carousel-linked-nav li:eq(' + idx + ')').addClass('active');
    
    });
    

    【讨论】:

    • 我知道,但我只需要第一个 div 活动。您也可以在引导文档中查看。
    • @user3263368 那么您也可以发布您的轮播脚本。
    【解决方案4】:

    Manchary 的想法是正确的。我已经对此进行了测试,并在我的 Opencart 中运行它。

    这是要添加到的完整代码: 目录/视图/主题/你的主题/template/module/carousel.tpl

    <div id="myCarousel" class="carousel slide" data-ride="carousel">
    <!-- Indicators -->
    <ol class="carousel-indicators">
    <?php
    $i = 0;
    foreach ($banners as $banner) {
        echo "<li data-target=\"#myCarousel\" data-slide-to=\"".$i."\" class=\"indicator\"></li>\n";
        $i++;
    }
    ?>
    </ol>
    <!-- slides -->
    <div class="carousel-inner">
    <?php foreach ($banners as $banner) { ?>
    <?php if ($banner['link']) { ?>
    <div class="item"><a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" /></a></div>
    <?php } else { ?>
    <div class="item"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" /></div>
    <?php } ?>
    <?php } ?>
    </div>
    <!-- Controls -->
    <a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
            <span class="glyphicon glyphicon-chevron-left"></span>
    </a>
    <a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
            <span class="glyphicon glyphicon-chevron-right"></span>
    </a>
    </div>
    <script type="text/javascript">
    //<![CDATA[ 
        jQuery(document).ready(function($){
        $('#myCarousel ol.carousel-indicators li:first').addClass('active');
           $('#myCarousel .item:first').addClass('active');
            $('#myCarousel').carousel({
            interval: 8000
        });
    });
    //]]> 
    </script>
    

    注意*如果 jQuery document ready 导致问题,你可以试试

    window.onload = function() {
        // code here
    }
    

    希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-12-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      相关资源
      最近更新 更多