用JS更好的实现响应式布局

作者: yimi珊 | 来源:发表于2016-06-24 14:39 被阅读2155次

前言

之前说到响应式布局用rem来制作具有很高的效率,这次我们就继续来聊聊响应式布局更加高效的方法。
这是我朋友发给我的代码,我觉得这是一个很好的方法,于是在此记录下来。

这里将使用jQuery的方法来实现。(使用时请先引用jQuery包)

代码实现

<script>
$(function() {
    (function(){
        var $html = $('html');
        var $window = $('window');
        var $body = $('body');
        var psdsize =960;//这里表示我设计图的宽度
        var htmlfont = $body.width()/psdsize*100 + 'px';//计算字体大小
        $html.css('font-size', htmlfont);//设置字体大小
        $body.css('opacity', 1);//针对一些手机浏览器的默认样式
        //屏幕尺寸修改时,改变其大小
        $(window).resize(function(event) {
            htmlfont = $body.width()/psdsize*100+'px';
            $html.css('font-size', 'htmlfont');
        });
    })();
});
</script>

插件的封装

在这里,其实可以把这段代码封装成一个插件,每次使用响应式布局的时候来调用它就可以了,不需要每次都复制这一段代码。下面是修改的插件的代码,以及使用方法。

  • 插件
<script>
 $.extend({
    F_SIZE:function(size){//使用传参的方式,以便灵活调用
        var $html = $('html');
        var $window = $('window');
        var $body = $('body');
        var psdsize = size;//这里表示我设计图的宽度
        var htmlfont = $body.width()/psdsize*100 + 'px';//计算字体大小
        $html.css('font-size', htmlfont);//设置字体大小
        $body.css('opacity', 1);//针对一些手机浏览器的默认样式
        //屏幕尺寸修改时,改变其大小
        $(window).resize(function(event) {
            htmlfont = $body.width()/psdsize*100 + 'px';
            $html.css('font-size', htmlfont);
        });
    }
});
</script>
  • 插件的调用
    先在html的头文件中调用此插件
    然后再js里面调用,调用的方法:
    $.F_SIZE(960);//参数为你设计图的宽度

  • 页面中的计算及使用
    调用函数后,页面距离/字体大小的计算只需测量设计图的距离/字体的大小,再除以一百即可。(单位为“rem”)
    计算公式:设计图字体大小/100+“rem”(此处使用字体大小来举例子)

假如我设计图的字体为50px,计算方式为:50/100=0.5rem
也就是说我此处的<code>font-size:.5rem</code>

这种方式大大的提高工作效率,如果你有更好的方法,欢迎和我一起讨论!!!

注:如果你使用的是zepto.js则使用第一种方法。

By : Yimi-shan

相关文章

  • 用JS更好的实现响应式布局

    前言 之前说到响应式布局用rem来制作具有很高的效率,这次我们就继续来聊聊响应式布局更加高效的方法。这是我朋友发给...

  • 响应式网页开发

    响应式布局 什么是响应式布局?可以让一个网站兼容不同分辨率设备的布局 为什么要使用响应式布局?给用户更好的视觉使用...

  • 响应式开发

    响应式布局 什么是响应式布局?可以让一个网站兼容不同分辨率设备的布局 为什么要使用响应式布局?给用户更好的视觉使用...

  • rem单位的计算,使用到的js

    js: /*响应式布局 start*/function setRootFontSize() {var width ...

  • Day11--Bootstrap

    Bootstrap 响应式布局 CSS样式和JS插件

  • Bootstrap

    Bootstrap: 响应式布局 CSS样式和JS插件 案例

  • grid实现响应式布局

    一行 CSS 代码实现响应式布局 – 使用 Grid 实现的响应式布局 在这篇文章中,我将教你如何使用 CSS G...

  • web 5.BootStrap框架

    今日内容 Bootstrap: 响应式布局 CSS样式和JS插件 案例

  • 11.BootStrap

    主要内容 Bootstrap: 响应式布局 CSS样式和JS插件 案例

  • 响应式布局目录

    └─Web响应式布局├─1 响应式布局介绍├─2 响应式布局实例(Media Queries模块) 上├─3 响应...

网友评论

  • 1a4cb34e2a69:字体是个问题啊,我之前也用这个方法,安卓和苹果手机显示的字体不一样
  • 66e6ca08fbfa:但是在页面Dom结构没有完全加载完的时候,页面会很大!不建议在document ready的时候设置html字体

本文标题:用JS更好的实现响应式布局

本文链接:https://www.haomeiwen.com/subject/owrodttx.html