大佬教程收集整理的这篇文章主要介绍了jQuery和jQuery UI:使用不同大小的内容(imgs)构建一个可拖动的无限网格,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
为此,我使用的是插件Infinite Drag by Ian Li.
我相信我正在使用的网站作为构建网格的参考,他们使用类似的(如果不是相同的)插件并@L_675_5@非常大的图块,然后在图像内部创建另一个网格.在下面的屏幕截图中,您可以看到我检查参考站点的代码:
就像我说的,似乎正在使用多个非常大的瓷砖:
<div class="infinite-grid__grid infinite-grid__grid-1"> … <div class="infinite-grid__grid infinite-grid__grid-2"> … <div class="infinite-grid__grid infinite-grid__grid-3">
…每个都有自己的内部网格(class =“infinite-grid__grid-wrapper”)中的图像,其中的图像位于各个网格项内(class =“infinite-grid__item”):
还有一个class =“gutter-sizer”,这使我相信对于图块内部的图像网格,正在使用类似Masonry,Isotope或Packery的图像.
我已经能够创建一个带有大型瓷砖的可拖动网格,并使用Packery在每个瓷砖内部布置一些图片.
您可以在此处查看我尝试编程此网格的当前版本:https://codepen.io/joSch/pen/eMPVve
但它远非我想要的:
>瓷砖内的网格不会覆盖整个瓷砖.我相信这是因为同位素(我正在使用它来为图块内部的图像@L_675_5@网格)将其网格设置为与其内容一样大.如何使图像的网格覆盖整个图块并在整个图块上布置其内容(图像)?现在,每个图像网格下面总是有大量的空白空间.
>每个图块都具有相同的网格.现在,我正在为Isotope附加标记,通过Infinite Drag的oncreate选项为每个图块构建图像网格.因此每个磁贴都包含相同的标记.每个磁贴如何接收单个内容?
我正在困惑这个过程.我很感激有关如何创建类似于引用的网格的任何有用的输入.
<div id="viewport"> <div id="wall"></div> </div>
CSS:
html,body{ width: 100%; height: 100%; } * { Box-sizing: border-Box; } /* force scroll bar */ html { overflow-y: scroll; } #viewport { width: 100%; height: 100%; } .draggable--holder { height: 100%; } #wall { height: 100%; } #wall ._tile { font-size: 24px; font-weight: bold; BACkground-color: transparent; overflow: hidden; } #wall ._tile:hover { BACkground-color: #34a65f; } .grid { BACkground: #ddd; width: 1000px; height: 1075px; } /* clear fix */ .grid:after { content: ""; display: block; clear: both; } .gutter-size{ width: 1%; height: 1%; } /* ---- .grid-item ---- */ .grid-item { float: left; BACkground: #0d8; margin: 0; overflow: hidden; } .grid-item img { width: 100%; height: 100%; } .grid-item img:hover { opacity: 0.5; } .grid-item--col1 { width: calc(8.25% * 1); } .grid-item--col2 { width: calc(8.25% * 2); } .grid-item--col3 { width: calc(8.25% * 3); } .grid-item--col4 { width: calc(8.25% * 4); } .grid-item--col5 { width: calc(8.25% * 5); } .grid-item--col6 { width: calc(8.25% * 6); } .grid-item--col7 { width: calc(8.25% * 7); } .grid-item--col8 { width: calc(8.25% * 8); } .grid-item--col9 { width: calc(8.25% * 9); } .grid-item--col10 { width: calc(8.25% * 10); } .grid-item--col11 { width: calc(8.25% * 11); } .grid-item--col12 { width: calc(8.25% * 12); } /* -------------------------- */
JavaScript的:
var infinitedrag = jQuery.infinitedrag("#wall",{},{ width: 1000,height: 1075,start_col: 1,start_row: 1,range_col: [-1,1],range_row: [-1,oncreate: function($element,col,row) { $element.append( `<div class="grid"> <div class="gutter-size"></div> <div class="grid-item grid-item--col3"><img src="https://placeimg.com/640/480/animals"></div> <div class="grid-item grid-item--col5"><img src="https://placeimg.com/640/480/animals"></div> <div class="grid-item grid-item--col3"><img src="https://placeimg.com/640/480/animals"></div> <div class="grid-item grid-item--col12"><img src="https://placeimg.com/640/480/animals"></div> </div>` ) var $grid = $element.find('.grid').packery().isotope({ layoutMode: 'packery',itemSELEctor: '.grid-item',percentPosition: true,packery: { gutter: '.gutter-size' } }); $grid.packery('reloadItems'); } });
我也改变了图像的大小.由于同位素无法调整块的大小,因此只能将它们放置在适当的位置.我相信你可以计算出块的大小,并将图像添加为背景大小的背景:包含或覆盖.
因此,您将拥有3-4个大小均为百分比的模板,您可以在页面上以随机顺序添加它们.
您也可以尝试使用像素大小.也许它对你来说会更好.像这里:https://codepen.io/anon/pen/zjvojo并且网站上没有无限拖动jQuery插件,您发送的示例.我不确定使用它是否是个好主意.我宁愿编写自己的插件来制作这样的网站而不是使用无限拖动.
以上是大佬教程为你收集整理的jQuery和jQuery UI:使用不同大小的内容(imgs)构建一个可拖动的无限网格全部内容,希望文章能够帮你解决jQuery和jQuery UI:使用不同大小的内容(imgs)构建一个可拖动的无限网格所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。