• jQuery Masonry构建pinterest网站布局注意要点(转)


    在愚人码头的博客上看到有关于如何构建pinterest网站的文章,其实就是“图片瀑布流显示”,我试着在本地做了一个,没有什么问题,但是放到公司的网站上就问题多多。一是定位不准确,二是图片显示不完整。但是重新改变下窗口大小,显示和位置都正常了,这说明第一次加载的时候,算的值不准,第一想到这个是加载顺序的问题。想了个土方法,在body里加了onload,确实解决了第一次加载页面显示的问题,点击显示更多图片的时候,出来的效果还是算错的,最后的解决办法是给每个图片加上宽高,因为图片都是从后来截取的,宽高都有数据。这个库的应用可以参照码头的:点击

    然后我再自己写了一个根据屏幕宽度一行最多显示图片(web响应)且页面居中的脚本。demo点击这(改变你的窗口大小观察自适应看效果)

    宽屏显示:

    窄屏显示:

    由上图对比可以看到,中间部分始终居中,但是会根据屏幕的大小判断一行最多显示多少张图片。让框架居中有多种方法,最常见的是添加 margin:0 auto;

    因为我们要让整个屏幕显示至多张图,所以我只要求得屏幕至多能放下多少个图片后,剩下的数平均分给左右外边距,这样即能居中,例如:margin:10px auto

    html代码:

    <div class="container" style="margin:0 auto;">
      <div class="aside"></div>
      <div class="photo_box">
       <div class="photo_img"><img src="1.jpg" alt="" width="" height="" /></div>
       <div class="photo_img"><img src="2.jpg" alt="" width="" height="" /></div>
      </div>
     ...
    </div>

    js代码:

     $(document).ready($onresize = function(){
       var Winh = $(window).width(), Wimg = $(".photo_img").width() + 38,
    Wsidebar = $(".aside").width() + 24;
    	  var mainWidth = Winh - Wsidebar;
    	  var imgBs = mainWidth % Wimg;  //imgBs为最多放下图片后剩下的余数
    	  var a = Math.floor( imgBs / 2); //余数平分即为外边距大小
    	  $(".container").css("margin-left", a );
    	  $(".container").css("margin-right", a );
    
     })
       $(window).bind("resize", $onresize);

    ps:有一个很重要的问题,必须给html强制滚动条,否则,在某些显示器下,会出现切边的效果,其实是因为开始算屏幕宽度的时候,滚动条还没加载出来,宽度会算多一点,这样,这样左右的外边距大于实际边距,就发生了切边的效果。像这样:html{ overflow:scroll; }

    这个想法就像是小时候做的数学题,一块多大面积的蛋糕,切成每份多大,最多能分给多少人,这里只是加了一个居中的条件。然后当浏览器改变大小的时候,也会重新加载一次,算一次。而图片的位移会使用Masonry.js这个库的动态效果,整个过程很流畅,如果网速不限制,显示的效果是非常好的。

    再狠狠的点击这个看这个效果吧:demo点击这

  • 相关阅读:
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    cookie相关内容:用法,特点,常用功能以及与session的异同
    JSP (一)
    Node.js npm 环境配置
    新老版本vue-cli的安装及创建项目等方式的比较
    npm 代理设置及更换为国内下载源
    for...of的使用
    打印机使用方法
    给OC项目添加icon
  • 原文地址:https://www.cnblogs.com/xingmeng/p/3375829.html
Copyright © 2020-2023  润新知