html5手机app开发Echarts手机全屏展示



2.代码

/**-----------------------------------*/
/**--------echarts旋转样式------------*/
.hlxny-echar-zoomIn{
    float: left;
    width: 20px;
    height: 20px;
    background: url('../img/zoomIn.png') center no-repeat;
    background-size:16px 16px;
}
.echarts-rotate-elseEle{
    display: none;
}
.pagecontent-rotate{
    top:0px!important;
    width: 100vw;
    height: 100vh;
}
.echarts-rotate-text{
    float:left;
    font-size: 10px;
    width: 40px;
    color:#9897a7;
    margin-top: 1px;
}
.echarts-rotate-div{
    display: flex;
    left:0px;
    top:0px;
    overflow:hidden;
    transform:rotate(90deg);
    width: 100vh;
    height: 100vw;
    margin-left: calc(50vw - 50vh);
    margin-top:calc(50vh - 50vw);
}
.echarts-rotate{
    width: 100vh;
    height: 100vw;
}
@keyframes myRorate
{
    0%{transform:rotate(0deg);margin-left: calc(50vw - 50vh);margin-top:calc(50vh - 50vw); }
    100%{transform:rotate(90deg); margin-left: calc(50vw - 50vh);margin-top:calc(50vh - 50vw);}
}

.echarts-rotate-hidden{
    display: none;
}
@keyframes hiddenRoate
{
    0%   {transform:rotate(0deg);opacity: 1;}
    100%  {transform:rotate(-90deg);opacity: 0;}
}
.echarts-else-rotate{
    transform:rotate(90deg)
}

 <div class="hlxny-echar-zoomIn"  ng-click="rotateChange($event)"></div>
                <div class="echarts-rotate-text" ng-click="rotateChange($event)">切换</div>

  legend:{
                show:false,
                data: [ '功率因数']
            },

  /**
     * 图表横竖切换
     * @type {boolean}
     */
    $scope.isRotate = false;
    $scope.isClick = false;
    $scope.rotateChange = function($event){
        $scope.showModal('切换图表中...');//显示遮罩层
        //两个click,冒泡,防止上一层的click
        $event.stopPropagation();
        if($scope.isClick == true){
            return;//重复点击
        }
        $scope.isClick = true;
        if($scope.isRotate==true){
            $scope.hideModal();
            /*            //恢复
             var div_pagecontent=angular.element(document.getElementsByClassName("page__content"));
             div_pagecontent.removeClass("pagecontent-rotate");
             $scope.isRotate = false;*/
        }else{
            var options = {
                animation: 'fade', // What animation to use
                rotateOption: $scope.barOption
            };
            mainNavi.pushPage($scope.baseUrl+'pagesV2/rotateEcharts/rotateEcharts.html', options);
        }
        $scope.isClick = false;
        $scope.hideModal();

    }

1.rotateEcharts.html

<div  ng-controller="rotateEchartsController"   class="echarts-rotate-div" >
    <iframe name="myIframe" id="myIframe" style="width:100%;height: 100%;" scrolling="no"  ></iframe>
</div>
2.rotateEchartsController.js

/**
 * Created by zyf on 2017/8/10 0010.
 */
app.controller('rotateEchartsController', ['$scope','$timeout','$hyHttp','$interval','$rootScope','$loginService',function($scope,$timeout,$hyHttp,$interval,$rootScope,$loginService){


    $scope.init = function(){
        $scope.rotateConfig = {
            theme: 'shine',
            dataLoaded: false
        };
        $scope.rotateOption = mainNavi.getCurrentPage().options.rotateOption;
        /*        $scope.rotateOption.tooltip.position  = function (point, params, dom, rect, size){
         console.log("point:",point);
         console.log("params:",params);
         console.log("dom:",dom);
         console.log("rect:",rect);
         console.log("size:",size);
         // 固定在顶部
         return [point[0], '10%'];
         }*/
        $scope.rotateConfig.dataLoaded = true;
        $scope.isRotate = true;
    }
    // $scope.init();


    $scope.init2 = function(){
        $scope.rotateConfig = {
            theme: 'shine',
            dataLoaded: false
        };
        //克隆一个新对象,以防止影响上一页面信息
        $scope.rotateOption = eval('(' + JSON.stringify(mainNavi.getCurrentPage().options.rotateOption) + ')');
        $scope.rotateOption.legend.show=true;//显示图例
        $scope.rotateOption.toolbox={
            right:25,
            itemSize:19,
            feature: {
                dataZoom: {},
                brush: {
                    type: [ "clear"]
                },
                myTool2: {
                    show: true,
                    title: "切换",
                    icon: "image://../../img/zoomOut.png",
                    onclick: "tempStr"
                }
            }
        };
        var data = JSON.stringify( $scope.rotateOption);
        data = data.replace('"tempStr"','function(){console.log(window.parent);window.parent.parentPop();}')
        var tat =angular.element(document.getElementById("myIframe"));
        var innerHTML = '<div style="width: 100vw;height: 100vh;overflow: hidden">'+
            '<div id="rotate_Echarts_div" class="echarts-rotate" style="width: 100%;height:100%" ></div>'+
            '<script src="js/echarts/echarts.min.js" notmin="0"></script>' +
            '<script>function test(){console.log(document.getElementById("rotate_Echarts_div"));' +
            'var mchart = echarts.init(document.getElementById("rotate_Echarts_div"), "default");'+
            'mchart.setOption('+data+');} test();</script>';

        //苹果设备
        //if(!!window.navigator.userAgent.match(/(ipad|iphone|ipod touch)/i)){
            tat.attr("src","pagesV2/rotateEcharts/test.html?data="+escape(data));
            $scope.rotateConfig.dataLoaded = true;
            $scope.isRotate = true;
        //}else{
        //    //安卓设备
        //    tat.attr("srcdoc",innerHTML);
        //    $scope.rotateConfig.dataLoaded = true;
        //    $scope.isRotate = true;
        //}
        $scope.hideModal();//关闭遮罩层
    }

    $scope.init2();
}]);
3.test.html
<html>
<head></head>
<body>
<div style="width: 100%;height: 100%;overflow: hidden">
    <div id="rotate_Echarts_div" class="echarts-rotate" style="width: 100%;height:100%" ></div>
    <script src="../../js/echarts/echarts.min.js" notmin="0"></script>
    <script>
        function GetQueryString(name)
        {
            var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
            var r = window.location.search.substr(1).match(reg);
            if(r!=null)return  unescape(r[2]); return null;
        }
    
    
        
        function test(){
            var mchart = echarts.init(document.getElementById("rotate_Echarts_div"), "default");
            var data=GetQueryString("data");
            if(data !=null && data.length>1){
                data = eval('('+GetQueryString("data")+')');
            }
            mchart.setOption(data);
            window.parent.parentHideModel();
        }
    test();
        </script>
    </div>
</body>

Logo

智屏生态联盟致力于大屏生态发展,利用大屏快应用技术降低开发者开发、发布大屏应用门槛

更多推荐