javascript - 重复的可扩展图像网格失去功能

标签 javascript jquery html css twitter-bootstrap

我有一个可展开的图像网格,我想在单个页面上多次使用它。但是如果我想在该页面上多次使用可扩展图像网格,副本似乎失去了它的功能,它不再扩展。

示例:

  • 页面顶部的图像网格
  • 中间的分区
  • 底部的图像网格

底格失去作用,这是为什么呢?这是一个Jsfiddle我的进步,我似乎无法弄清楚。

/*
          var _gaq = _gaq || [];
          _gaq.push(['_setAccount', 'UA-7243260-2']);
          _gaq.push(['_trackPageview']);

          (function() {
            var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
          })();
*/

CSS

/* default.css */
@import url(//fonts.googleapis.com/css?family=Lato:300,400,700);

html { height: 100%; }

*,
*:after,
*:before {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    padding: 0;
    margin: 0;
}

/* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */
.clearfix:before,
.clearfix:after {
    content: " ";
    display: table;
}

.clearfix:after {
    clear: both;
}

.clearfix {
    *zoom: 1;
}

body {
    font-family: 'Lato', Calibri, Arial, sans-serif;
    background: #f9f9f9;
    font-weight: 300;
    font-size: 15px;
    color: #333;
    overflow: scroll;
    overflow-x: hidden;
}

a {
    color: #555;
    text-decoration: none;
}

.container {
    width: 100%;
    position: relative;
}

.container2 {
    width: 100%;
    position: relative;
}

.container > header {
    width: 90%;
    max-width: 1240px;
    margin: 0 auto;
    position: relative;
    padding: 0 30px 50px 30px;
}

.container > header {
    padding: 60px 30px 50px;
    text-align: center;
}

.container > header h1 {
    font-size: 34px;
    line-height: 38px;
    margin: 0 auto;
    font-weight: 700;
    color: #333;
}

.container > header h1 span {
    display: block;
    font-size: 20px;
    font-weight: 300;
}

.main > p {
    text-align: center;
    padding: 50px 20px;
}

/* Header Style */
.codrops-top {
    line-height: 24px;
    font-size: 11px;
    background: #fff;
    background: rgba(255, 255, 255, 0.5);
    text-transform: uppercase;
    z-index: 9999;
    position: relative;
    box-shadow: 1px 0px 2px rgba(0,0,0,0.2);
}

.codrops-top a {
    padding: 0px 10px;
    letter-spacing: 1px;
    color: #333;
    display: inline-block;
}

.codrops-top a:hover {
    background: rgba(255,255,255,0.8);
    color: #000;
}

.codrops-top span.right {
    float: right;
}

.codrops-top span.right a {
    float: left;
    display: block;
}


/* Component.css */

.og-grid {
    list-style: none;
    padding: 20px 0;
    margin: 0 auto;
    text-align: center;
    width: 100%;
}

.og-grid li {
    display: inline-block;
    margin: 10px 5px 0 5px;
    vertical-align: top;
    height: 250px;
}

.og-grid li > a,
.og-grid li > a img {
    border: none;
    outline: none;
    display: block;
    position: relative;
}

.og-grid li.og-expanded > a::after {
    top: auto;
    border: solid transparent;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
    border-bottom-color: #ddd;
    border-width: 15px;
    left: 50%;
    margin: -20px 0 0 -15px;
}

.og-expander {
    position: absolute;
    background: #ddd;
    top: auto;
    left: 0;
    width: 100%;
    margin-top: 10px;
    text-align: left;
    height: 0;
    overflow: hidden;
}

.og-expander-inner {
    padding: 50px 30px;
    height: 100%;
}

.og-close {
    position: absolute;
    width: 40px;
    height: 40px;
    top: 20px;
    right: 20px;
    cursor: pointer;
}

.og-close::before,
.og-close::after {
    content: '';
    position: absolute;
    width: 100%;
    top: 50%;
    height: 1px;
    background: #888;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
}

.og-close::after {
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

.og-close:hover::before,
.og-close:hover::after {
    background: #333;
}

.og-fullimg,
.og-details {
    width: 50%;
    float: left;
    height: 100%;
    overflow: hidden;
    position: relative;
}

.og-details {
    padding: 0 40px 0 20px;
}

.og-fullimg {
    text-align: center;
}

.og-fullimg img {
    display: inline-block;
    max-height: 100%;
    max-width: 100%;
}

.og-details h3 {
    font-weight: 300;
    font-size: 52px;
    padding: 40px 0 10px;
    margin-bottom: 10px;
}

.og-details p {
    font-weight: 400;
    font-size: 16px;
    line-height: 22px;
    color: #999;
}

.og-details a {
    font-weight: 700;
    font-size: 16px;
    color: #333;
    text-transform: uppercase;
    letter-spacing: 2px;
    padding: 10px 20px;
    border: 3px solid #333;
    display: inline-block;
    margin: 30px 0 0;
    outline: none;
}

.og-details a::before {
    content: '\2192';
    display: inline-block;
    margin-right: 10px;
}

.og-details a:hover {
    border-color: #999;
    color: #999;
}

.og-loading {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #ddd;
    box-shadow: 0 0 1px #ccc, 15px 30px 1px #ccc, -15px 30px 1px #ccc;
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -25px 0 0 -25px;
    -webkit-animation: loader 0.5s infinite ease-in-out both;
    -moz-animation: loader 0.5s infinite ease-in-out both;
    animation: loader 0.5s infinite ease-in-out both;
}

@-webkit-keyframes loader {
    0% { background: #ddd; }
    33% { background: #ccc; box-shadow: 0 0 1px #ccc, 15px 30px 1px #ccc, -15px 30px 1px #ddd; }
    66% { background: #ccc; box-shadow: 0 0 1px #ccc, 15px 30px 1px #ddd, -15px 30px 1px #ccc; }
}

@-moz-keyframes loader {
    0% { background: #ddd; }
    33% { background: #ccc; box-shadow: 0 0 1px #ccc, 15px 30px 1px #ccc, -15px 30px 1px #ddd; }
    66% { background: #ccc; box-shadow: 0 0 1px #ccc, 15px 30px 1px #ddd, -15px 30px 1px #ccc; }
}

@keyframes loader {
    0% { background: #ddd; }
    33% { background: #ccc; box-shadow: 0 0 1px #ccc, 15px 30px 1px #ccc, -15px 30px 1px #ddd; }
    66% { background: #ccc; box-shadow: 0 0 1px #ccc, 15px 30px 1px #ddd, -15px 30px 1px #ccc; }
}

@media screen and (max-width: 830px) {

    .og-expander h3 { font-size: 32px; }
    .og-expander p { font-size: 13px; }
    .og-expander a { font-size: 12px; }

}

@media screen and (max-width: 650px) {

    .og-fullimg { display: none; }
    .og-details { float: none; width: 100%; }

}

HTML

        <div class="container"> 
            <!--/ Codrops top bar -->
            <header class="clearfix">
                <h1>Thumbnail Grid <span>with Expanding Preview</span></h1> 
            </header>
            <div class="main">
                <ul id="og-grid" class="og-grid">
                    <li>
                        <a href="#" data-largesrc="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/1.jpg" data-title="Azuki bean" data-description="Swiss chard pumpkin bunya nuts maize plantain aubergine napa cabbage soko coriander sweet pepper water spinach winter purslane shallot tigernut lentil beetroot.">
                            <img src="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/1.jpg" alt="img01"/>
                        </a>
                    </li>
                    <li>
                        <a href="http://cargocollective.com/jaimemartinez/" data-largesrc="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/2.jpg" data-title="Veggies sunt bona vobis" data-description="Komatsuna prairie turnip wattle seed artichoke mustard horseradish taro rutabaga ricebean carrot black-eyed pea turnip greens beetroot yarrow watercress kombu.">
                            <img src="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/2.jpg" alt="img02"/>
                        </a>
                    </li>
                    <li>
                        <a href="http://cargocollective.com/jaimemartinez/" data-largesrc="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/3.jpg" data-title="Dandelion horseradish" data-description="Cabbage bamboo shoot broccoli rabe chickpea chard sea lettuce lettuce ricebean artichoke earthnut pea aubergine okra brussels sprout avocado tomato.">
                            <img src="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/3.jpg" alt="img03"/>
                        </a>
                    </li>
                    <li>
                        <a href="http://cargocollective.com/jaimemartinez/" data-largesrc="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/4.jpg" data-title="Sea lettuce" data-description="Bell pepper eggplant water spinach bell pepper radicchio kale artichoke earthnut pea beet greens carrot celtuce peanut radish mustard jícama tomato bamboo shoot quandong.">
                            <img src="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/4.jpg" alt="img04"/>
                        </a>
                    </li>
                </ul>
                <p>Filler text by <a href="http://veggieipsum.com/">Veggie Ipsum</a></p>
            </div>
        </div>

    <!--/ Duplicate -->

    <div class="container"> 

            <header class="clearfix">
                <h1>Duplicate<span>Not expanding</span></h1>    
            </header>
            <div class="main">
                <ul id="og-grid" class="og-grid">
                    <li>
                        <a href="#" data-largesrc="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/1.jpg" data-title="Azuki bean" data-description="Swiss chard pumpkin bunya nuts maize plantain aubergine napa cabbage soko coriander sweet pepper water spinach winter purslane shallot tigernut lentil beetroot.">
                            <img src="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/1.jpg" alt="img01"/>
                        </a>
                    </li>
                    <li>
                        <a href="http://cargocollective.com/jaimemartinez/" data-largesrc="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/2.jpg" data-title="Veggies sunt bona vobis" data-description="Komatsuna prairie turnip wattle seed artichoke mustard horseradish taro rutabaga ricebean carrot black-eyed pea turnip greens beetroot yarrow watercress kombu.">
                            <img src="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/2.jpg" alt="img02"/>
                        </a>
                    </li>
                    <li>
                        <a href="http://cargocollective.com/jaimemartinez/" data-largesrc="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/3.jpg" data-title="Dandelion horseradish" data-description="Cabbage bamboo shoot broccoli rabe chickpea chard sea lettuce lettuce ricebean artichoke earthnut pea aubergine okra brussels sprout avocado tomato.">
                            <img src="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/3.jpg" alt="img03"/>
                        </a>
                    </li>
                    <li>
                        <a href="http://cargocollective.com/jaimemartinez/" data-largesrc="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/4.jpg" data-title="Sea lettuce" data-description="Bell pepper eggplant water spinach bell pepper radicchio kale artichoke earthnut pea beet greens carrot celtuce peanut radish mustard jícama tomato bamboo shoot quandong.">
                            <img src="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/images/thumbs/4.jpg" alt="img04"/>
                        </a>
                    </li>
                </ul>
                <p>Filler text by <a href="http://veggieipsum.com/">Veggie Ipsum</a></p>
            </div>
        </div><!-- /container -->


        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script src="https://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/js/grid.js"></script>
        <script>
            $(function() {
                Grid.init();
            });
        </script>
        <script src="//tympanus.net/codrops/adpacks/demoad.js"></script>
    </body>
</html>

最佳答案

如果您打开开发者工具(Chrome 中的 F12),当您点击无法正常工作的图像时,您可以在控制台中看到您的问题所在:

Mixed Content: The page at '' was loaded over HTTPS, but requested an insecure resource ''. This request has been blocked; the content must be served over HTTPS.

链接的 href 属性的区别,在第一个组件中使用 HTTPS,而在那些不起作用的组件中,您仅使用 HTTP。


更新:

再看一遍,我发现代码的主要问题不是我之前所说的混合内容。深入研究插件代码,我注意到它不准备在同一页面上使用多个组件,因为它明确要求带有 id #og-grid 的元素和 jQuery 选择器 var $grid = $( '#og-grid' ).

代码已经四年没有更新了,你可以在这里看到: https://github.com/codrops/ThumbnailGridExpandingPreview

因此,如果您真的想使用它,则需要根据您的需要对其进行调整。我试了一下,让你的代码可以使用它:

https://jsfiddle.net/0yw1hgd8/5/

我做了一些改变:

  1. 将重复的 ul 的 ID 从 og-grid 更改为 og-grid2
  2. 创建了插件中使用的新版本的 Grid 对象(查看 fiddle 中的 Grid2 定义)
  3. 将上下文从 this 更改为 $grid,其中使用了 $.data() 函数,这样它就不会干扰其他函数(仅在新定义中)。
  4. 最后,调用新对象初始化函数 Grid2.init();

关于javascript - 重复的可扩展图像网格失去功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50225213/

相关文章:

javascript - 我如何获得Vue JS中一列的总和

jquery - jquery 可以以百分比形式返回元素的高度吗?

php - 只为一个页面设置cookie,如果用户浏览其他页面,则不会发送回服务器

html - 圆 Angular div 中的文本垂直居中

javascript - 加载数据时读取缓冲区

javascript - 为什么当我 console.log 我的 promise 时返回整数值

javascript - CKEditor 和转义元素

javascript - 如何使用变量获取元素的 CSS 信息?

javascript - 如何根据类名检查元素是否存在?

html - 没有 JavaScript 可以使 border-radius 等于总高度的一半吗?