Axure引用js文件实现视频与echarts图表显示

一、利用axure的打开链接(链接外部网址)实现js代码执行

如果想要在axure原型中执行简单的javascript代码,只需要将交互事件设置为打开链接,链接到外部网址,然后先输入javascript:开头后面写上你要执行的js代码即可。

javascript:
alert('你点击了按钮!!');

二、使用axure实现嵌入iframe代码,实现视频内嵌播放

基本原理是现在axure中创建一个矩形并定义好矩形的名字。然后添加载入时、单击时的交互动作(交互方式为打开外部链接,写入js代码,一般该js需要等待页面加载完成后再执行,否则可能不成功)。下面开始进入正题:

1、创建一个矩形控件并重命名下名字(后面js定位元素时会用到该名字),在里面直接文字方式输入html代码

<iframe src="//player.bilibili.com/player.html?aid=758518924&bvid=BV1164y1R7SU&cid=353265567&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>

2、设置交互事件,我这里设置的是单机该控件时,如果想要自动显示可以设置交互事件为载入时。

javascript:
$(document).ready(function(){
alert('ranjuan.cn');
$('[data-label=code]').each(function(){
$(this).html($(this).find('p').text())})
});

解释: find(‘p’) 的作用是axure在加载完毕控件后控件内的文本内容会被包裹在
标签内部;这里js的作用是直接将p标签内容以文本形式渲染为html代码显示。

三、使用axure的js引用功能,实现百度echarts图表的显示

这个跟第二个示例的区别在于可以不用在矩形控件内输入文本了,直接将百度echarts的js代码引入,然后直接在axure交互动作里面进行option数据渲染即可。

echarts的官方示例地址: https://echarts.apache.org/examples/zh/index.html

1、创建一个矩形命名为echarts(这里的名字与后面js交互里面对应的名字保持一致)

2、设置载入时交互事件,如果要快速看到效果直接复制下面代码到axure交互的js代码里即可,注意js代码里面不能有任何注释符号“/*”、“*/”、“//”这种,否则会没有效果,一般你直接从echart复制过来的option配置项里一般都有注释需要删除!

javascript:
$axure.utils.loadJS('https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js');
setTimeout(function(){
    var dom =$('[data-label=echarts]').get(0);
    var Chart = echarts.init(dom);
    
    var option = {
    tooltip: {
        trigger: 'axis',
        axisPointer: {           
            type: 'shadow'       
        }
    },
    legend: {
        data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎', '百度', '谷歌', '必应', '其他']
    },
    grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
    },
    xAxis: [
        {
            type: 'category',
            data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
        }
    ],
    yAxis: [
        {
            type: 'value'
        }
    ],
    series: [
        {
            name: '直接访问',
            type: 'bar',
            emphasis: {
                focus: 'series'
            },
            data: [320, 332, 301, 334, 390, 330, 320]
        },
        {
            name: '邮件营销',
            type: 'bar',
            stack: '广告',
            emphasis: {
                focus: 'series'
            },
            data: [120, 132, 101, 134, 90, 230, 210]
        },
        {
            name: '联盟广告',
            type: 'bar',
            stack: '广告',
            emphasis: {
                focus: 'series'
            },
            data: [220, 182, 191, 234, 290, 330, 310]
        },
        {
            name: '视频广告',
            type: 'bar',
            stack: '广告',
            emphasis: {
                focus: 'series'
            },
            data: [150, 232, 201, 154, 190, 330, 410]
        },
        {
            name: '搜索引擎',
            type: 'bar',
            data: [862, 1018, 964, 1026, 1679, 1600, 1570],
            emphasis: {
                focus: 'series'
            },
            markLine: {
                lineStyle: {
                    type: 'dashed'
                },
                data: [
                    [{type: 'min'}, {type: 'max'}]
                ]
            }
        },
        {
            name: '百度',
            type: 'bar',
            barWidth: 5,
            stack: '搜索引擎',
            emphasis: {
                focus: 'series'
            },
            data: [620, 732, 701, 734, 1090, 1130, 1120]
        },
        {
            name: '谷歌',
            type: 'bar',
            stack: '搜索引擎',
            emphasis: {
                focus: 'series'
            },
            data: [120, 132, 101, 134, 290, 230, 220]
        },
        {
            name: '必应',
            type: 'bar',
            stack: '搜索引擎',
            emphasis: {
                focus: 'series'
            },
            data: [60, 72, 71, 74, 190, 130, 110]
        },
        {
            name: '其他',
            type: 'bar',
            stack: '搜索引擎',
            emphasis: {
                focus: 'series'
            },
            data: [62, 82, 91, 84, 109, 110, 120]
        }
    ]
};
    
    if (option && typeof option === "object"){
       Chart.setOption(option, true);    
    }}, 1000);

3、原理解释

使用通过axure自身的axutils.js可以实现js加载。需要注意的是var dom =$(‘[data-label=echarts]’).get(0);这一行等于号后面的参数要与控件名保持一致! 引用完echarts的js文件后,就是给option进行赋值实现数据渲染。点开一个echars示例后直接复制黏贴进去就可以了(注意要删除注释符号)

javascript:
$axure.utils.loadJS('https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js');
setTimeout(function(){
    var dom =$('[data-label=echarts]').get(0);
    var Chart = echarts.init(dom);
    
    var option = {
    /*echarts的代码写在这里*/
};
    
    if (option && typeof option === "object"){
       Chart.setOption(option, true);    
    }}, 1000);

下面是将option加入js代码后的代码(注意data-label=后面的名字要与你实际的控件名字一致,也不要出现js注释相关内容)

javascript:
$axure.utils.loadJS('https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js');
setTimeout(function(){
    var dom =$('[data-label=echarts]').get(0);
    var Chart = echarts.init(dom);
    
    var option = {
    xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        data: [150, 230, 224, 218, 135, 147, 260],
        type: 'line'
    }]
};
    
    if (option && typeof option === "object"){
       Chart.setOption(option, true);    
    }}, 1000);

4、其他

-> 本文案例是引用的在线的echarts,如果你是离线无网环境下演示是没有效果,可以尝试将echarts文件下载到你打包好的html导出文件中,然后在axure配置js交互时在$axure.utils.loadJS(‘https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js’);配置里面写下相对路径。

-> 在网络较慢的情况下可能出现在线echarts加载慢的问题,导致不能正常渲染,可以把Chart.setOption(option, true);}}, 1000);代码里的1000毫秒调大一点。

基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/axure-load-js-echarts/

赞赏

微信赞赏支付宝赞赏

poeam20180812
asp导出数据库表为excel
url-open-android-app

发表评论