美文网首页
实现简单的双向数据绑定

实现简单的双向数据绑定

作者: web佳 | 来源:发表于2019-12-22 15:11 被阅读0次
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport"
    content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0, viewport-fit=cover" />
  <meta name="format-detection" content="telephone=no" />
  <meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
  <meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
  <meta HTTP-EQUIV="Expires" CONTENT="0">
<script src="https://cdn.bootcss.com/bignumber.js/9.0.0/bignumber.js"></script>
  <title></title>
  <script>
    (function (hasTitle, psdWidth) {
      psdWidth = psdWidth || 640;
      var zoomStyle = document.getElementById('zoom-style');
      var landscape = '';
      /*横屏*/
      var portrait = '';
      /*竖屏*/
      if (!zoomStyle) {
        zoomStyle = document.createElement('style');
        zoomStyle.id = 'zoom-style';
        zoomStyle.type = 'text/css';
        document.documentElement.appendChild(zoomStyle);
      }
      var timer = null;
      _resize();
      window.addEventListener('orientationchange', resize, false);

      function resize() {
        clearTimeout(timer);
        timer = setTimeout(_resize, 300);
      }

      function _resize() {
        var screen_width = document.documentElement.clientWidth;
        if (!screen_width) {
          /*qq中有几率为0*/
          setTimeout(_resize, 50);
          return;
        }
        var screen_height = window.innerHeight;
        if (window.innerWidth !== screen_width) {
          screen_height *= screen_width / window.innerWidth;
        }
        var fontSize = screen_width / (psdWidth / 2) * 50;
        if (screen_width > screen_height) {
          landscape = '@media all and (orientation : landscape){html{font-size:' + fontSize + 'px !important;}}';
        } else {
          var scaleSize = Math.min(1, screen_height / screen_width * (hasTitle ? 750 / 1207 : 750 / 1334));
          portrait = 'html{font-size:' + fontSize + 'px !important;}' + (scaleSize < 1 ?
            '.auto_scale{-webkit-transform: scale(' + scaleSize + ');transform: scale(' + scaleSize +
            ');}.auto_scale_center{-webkit-transform:translate(-50%,-50%) scale(' + scaleSize +
            ');transform:translate(-50%,-50%) scale(' + scaleSize + ');}' :
            '.auto_scale_center{-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);}');
        }
        zoomStyle.innerHTML = portrait + landscape;
        if (landscape && portrait) {
          window.removeEventListener('orientationchange', resize);
        }
      
      }
    })(true, 750);

  </script>
</head>

<body>

    <div id="vue-demo"></div>
    <input type="text" id="input">
    <script>
        var obj  = {};
        var Demo = document.getElementById('vue-demo')
        var Inp = document.getElementById("input")
        Object.defineProperty(obj, 'name', {
            get: function() {
                return val;
            },
            set: function (newVal) {   //当该属性被赋值的时候触发
                Inp.value = newVal;
                Demo.innerHTML = newVal;
            }
        })
        input.addEventListener('input', function(e) {
          console.log(e);
            // 给obj的name属性赋值,进而触发该属性的set方法
            obj.name = e.target.value;
        });
        obj.name = 'yzg';//在给obj设置name属性的时候,触发了set这个方法
    </script>
</body>

</html>

相关文章

网友评论

      本文标题:实现简单的双向数据绑定

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