美文网首页蘇简的小屋
关于响应式网站的开发素材

关于响应式网站的开发素材

作者: 蘇简 | 来源:发表于2016-11-19 19:49 被阅读72次

最近在进行响应式的开发,在网上找了一些内容收集在这里

  1. (一)
(function (doc, win) {
          var docEl = doc.documentElement,//根元素html
          //判断窗口有没有orientationchange这个方法,有就赋值给一个变量,没有就返回resize方法。
            resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
            recalc = function () {
              var clientWidth = docEl.clientWidth;
              if (!clientWidth) return;
              //把document的fontSize大小设置成跟窗口成一定比例的大小,从而实现响应式效果。
              docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
            };
            //alert(docEl)
          if (!doc.addEventListener) return;
          win.addEventListener(resizeEvt, recalc, false);//addEventListener事件方法接受三个参数:第一个是事件名称比如点击事件onclick,第二个是要执行的函数,第三个是布尔值
          doc.addEventListener('DOMContentLoaded', recalc, false)//绑定浏览器缩放与加载时间
        })(document, window);
        //alert(document.documentElement.clientWidth/320)

参考网址:
移动端自适应js
web app变革之rem

2.(二)

脚本默认为640px,非640px宽度设计稿需在<head>添加下面的 meta 标签属性
content="750" ,750改为实际设计稿宽度

<meta name="W_design" content="750" />
(function(e, t) {
    function n() {
        for (var e = navigator.userAgent,
        t = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"], n = !0, i = 0; t.length > i; i++) if (e.indexOf(t[i]) > 0) {
            n = !1;
            break
        }
        return n
    }
    function i() {
        var t = a.getBoundingClientRect().width;
        n() && 2047 > t && (t = 640);
        var i = t * 100 / w;
        a.style.fontSize = i + "px",
        d.rem = e.rem = i
    }
    var r, o = e.document,
    a = o.documentElement,
    s = o.querySelector('meta[name="viewport"]'),
    c = o.querySelector('meta[name="flexible"]'),
    l = 0,
    u = 0,
    d = t.flexible || (t.flexible = {});
    var w = o.querySelector('meta[name="W_design"]') ? o.querySelector('meta[name="W_design"]').getAttribute('content') : 640;
    if (s) {
        console.warn("将根据已有的meta标签来设置缩放比例");
        var p = s.getAttribute("content").match(/initial\-scale=([\d\.]+)/);
        p && (u = parseFloat(p[1]), l = parseInt(1 / u))
    } else if (c) {
        var f = c.getAttribute("content");
        if (f) {
            var h = f.match(/initial\-dpr=([\d\.]+)/),
            m = f.match(/maximum\-dpr=([\d\.]+)/);
            h && (l = parseFloat(h[1]), u = parseFloat((1 / l).toFixed(2))),
            m && (l = parseFloat(m[1]), u = parseFloat((1 / l).toFixed(2)))
        }
    }
    if (!l && !u) {
        e.navigator.appVersion.match(/android/gi);
        var g = e.navigator.appVersion.match(/iphone/gi);
        e.navigator.appVersion.match(/ipad/gi);
        var v = e.devicePixelRatio;
        l = g ? v >= 3 && (!l || l >= 3) ? 3 : v >= 2 && (!l || l >= 2) ? 2 : 1 : 1,
        u = 1 / l
    }
    if (a.setAttribute("data-dpr", l), !s) if (s = o.createElement("meta"), s.setAttribute("name", "viewport"), s.setAttribute("content", "initial-scale=" + u + ", maximum-scale=" + u + ", minimum-scale=" + u + ", user-scalable=no"), a.firstElementChild) a.firstElementChild.appendChild(s);
    else {
        var y = o.createElement("div");
        y.appendChild(s),
        o.write(y.innerHTML)
    }
    e.addEventListener("resize",
    function() {
        clearTimeout(r),
        r = setTimeout(i, 300)
    },!1),
    e.addEventListener("pageshow",
    function(e) {
        e.persisted && (clearTimeout(r), r = setTimeout(i, 300))
    },!1),
    "complete" === o.readyState ? o.body.style.fontSize = 12 * l + "px": o.addEventListener("DOMContentLoaded",
    function() {
        o.body.style.fontSize = 12 * l + "px"
    },!1),
    i(),
    d.dpr = e.dpr = l,
    d.refreshRem = i,
    d.rem2px = function(e) {
        var t = parseFloat(e) * this.rem;
        return "string" == typeof e && e.match(/rem$/) && (t += "px"),
        t
    },
    d.px2rem = function(e) {
        var t = parseFloat(e) / this.rem;
        return "string" == typeof e && e.match(/px$/) && (t += "rem"),
        t
    }
})(window, window.lib || (window.lib = {}));

参考网址:
移动端自适应js(二)

3.(三)
responsive-page

相关文章

  • 关于响应式网站的开发素材

    最近在进行响应式的开发,在网上找了一些内容收集在这里 (一) 参考网址:移动端自适应jsweb app变革之rem...

  • 响应式开发

    响应式开发 响应式网站设计 -----Ethan Marcotte 第一章 响应式网站设计的三大技术成分 流动网格...

  • 7 响应式网站的内容设计

    7 响应式网站的内容设计 基于响应式开发网站,除了页面的布局是我们设计的重点, 网站中显示的图片和文字也是我们不能...

  • 聊一聊搭建高质量响应式网站有哪些技巧?

    企业高质量的H5响应式网站如何建设?H5响应式网站怎么制作用户体验感更高?现在响应式网站非常流行,因为响应式的网站...

  • 优秀设计素材网站

    优秀设计素材网站 设计前构思 花瓣 配色 布局 花瓣 扁平化、简约整体布局 Mediaqueru 响应式网站整体布...

  • Angular表单验证

    angular4里一个响应式编程的小例子 Angular2 响应式表单验证 Angular开发(十一)-关于响应式...

  • 2018-08-02

    实现响应式布局的网站 响应式 响应式网页设计是一种解决问题的途径,它建议设计和开发应该根据用户行为和环境(基于屏幕...

  • 响应式网页设计

    响应式网页设计Responsive Web design 响应式网站设计是一种网络页面设计布局,页面的设计与开发根...

  • 火狐浏览器远程调试手机网页

    响应式的网站的好处是在不同屏幕的平台均可以访问,现在的网站大多数都是响应式的,这样不用再为移动端单独开发样式了。响...

  • 用CSS解决响应式banner与网站色调不一致问题

    这是一个关于网站banner细节文章,现在网页设计通常会按照响应式来设计,而响应式的网站的横幅大多数使用免费高清图...

网友评论

    本文标题:关于响应式网站的开发素材

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