⑴ 怎麼用javaScript在線壓縮圖片
主要用了兩個html5的 API,一個file,一個canvas,壓縮主要使用cnavas做的,file是讀取文件,之後把壓縮好的照片放入內存,最後內存轉入表單下img.src,隨著表單提交。
照片是自己用單反拍的,5M多,壓縮下面3張分別是600多kb,400多kb,300kb的最後那張失真度很大了,壓縮效率蠻高的。
<!DOCTYPE html>
<html><head> <meta charset="utf-8"/> <title>File API Test</title> <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script> <script type="text/javascript" src="js/JIC.js"></script> <style> #test{ display: none; } </style></head><body><input type="file" id="fileImg" ><form> <img src="" id="test" alt=""></form><script> function handleFileSelect (evt) { // var filebtn = document.getElementById(id); // console.log(filebtn); // var files = filebtn.target.files; // console.log(filebtn.target); // console.log(files); var files = evt.target.files; for (var i = 0, f; f = files[i]; i++) { // Only process image files. if (!f.type.match('image.*')) { continue; } var reader = new FileReader(); // Closure to capture the file information. reader.onload = (function(theFile) { return function(e) { // Render thumbnail. // console.log(evt.target.files[0]); // console.log(e.target); console.log(e.target.result); var i = document.getElementById("test"); i.src = event.target.result; console.log($(i).width()); console.log($(i).height()); $(i).css('width',$(i).width()/10+'px'); //$(i).css('height',$(i).height()/10+'px'); console.log($(i).width()); console.log($(i).height()); var quality = 50; i.src = jic.compress(i,quality).src; console.log(i.src); i.style.display = "block"; }; })(f); // Read in the image file as a data URL. reader.readAsDataURL(f); } } document.getElementById('fileImg').addEventListener('change', handleFileSelect, false);</script></body></html>
var jic = { /** * Receives an Image Object (can be JPG OR PNG) and returns a new Image Object compressed * @param {Image} source_img_obj The source Image Object * @param {Integer} quality The output quality of Image Object * @return {Image} result_image_obj The compressed Image Object */ compress: function(source_img_obj, quality, output_format){ var mime_type = "image/jpeg"; if(output_format!=undefined && output_format=="png"){ mime_type = "image/png"; } var cvs = document.createElement('canvas'); //naturalWidth真實圖片的寬度 cvs.width = source_img_obj.naturalWidth; cvs.height = source_img_obj.naturalHeight; var ctx = cvs.getContext("2d").drawImage(source_img_obj, 0, 0); var newImageData = cvs.toDataURL(mime_type, quality/100); var result_image_obj = new Image(); result_image_obj.src = newImageData; return result_image_obj; }, function ****(***)
⑵ 引入echarts.js 失敗,div中沒有
最近被這個echart引入的問題折磨得頭大,況且自己也沒什麼模塊化經驗,所以想請教一下各位高手,吵禪為什麼下面第一種方式就可以成功展現echart餅狀圖,而第二種虛碰敬方式就不行呢?代碼片段如下:
<script src="js/esl.js"></script> //類似於require.js的東東吧,不加上圖表出不來
<div id="main" class="Cshenzi" style="width:500px;height:508px;opacity:0.85;">
</div> //echart圖表容器
<script type="text/javascript">
(第一種方式)
require.config({
paths:{
'echarts' : 'js/echarts'
}
});
require(
[
'echarts',
'echarts/chart/pie' // 使用柱狀圖就載入pie模塊,即使沒有這個路徑
],
function(ec) {
//主函數,生成echart實例,繪制圖表
}
(第二種方式,與第一種方式的唯一區別就是require(['echarts'],...)這里少載入了'echarts/chart/pie',可是我天真的覺得這個pie沒必要載入啊,況且我的js目錄裡面也沒有/chart/pie這個子文件夾,那為什麼加了這個就能展現,而不加這個又不能展現呢?)
<script src="js/esl.js"></script>
<div id="main" class="Cshenzi" style="width:500px;height:508px;opacity:0.85;">
</div>
<script type="text/javascript">
// 路徑配置
require.config({
paths:{
'echarts' : 'js/echarts'
}
});
// 使用
require(
[
'echarts'
],
function(ec) {
//主函數,生成echart實例,繪制差慎圖表
//另外項目的js文件夾結構是單根的,所以壓根沒有那個echarts/chart/pie。
全選復制放進筆記--js
|echarts.js
|esl.js
⑶ eslpod怎麼用
選擇個人比較感興趣的擇音頻。然後做在桌子旁,認真聽,不能分心,一定要認凱銷閉真聽。
聽的時候拿出筆記本,並且力所能及的記錄聽到的內容,不能聽懂的部分快速的標注。
一天聽1-2個小時,不要刻意和重復聽,而是大量的聽不同內容,每次集中精力即可。
聽過後抽盯裂出時間進行對復習筆記本上的內容,進行鞏固。
持續1個月左右,你已經完全適應了它的語速,持續3個月左右,你斗差會覺得音頻的語速慢的時候,說明你提高了一個層次。
⑷ echarts 漏斗圖 怎麼value 順序顯示
1、拷貝出兩個js文件:esl.js 和echarts.js ;
2、准備一個html頁面進行圖表容器配備和模塊化載入js和創建圖表
1)、引入esl.js文件
1
<script src="碼族或../js/echarts/esl.js" type="text/javascript"></script>
之所以要引入esl.js 文件,因為它內部封裝了很穗余多模塊化載入js文件和遲伍創建圖表的回調函數方法。
2)、准備圖表的裝載容器
<div id="funnel_a" style="height: 400px; width: 800px; border: 1px solid #ccc; padding: 10px;"></div>
3)、採用esl.js文件內的方法模塊化載入漏斗圖所需的庫且在回調函數內創建漏斗圖。
// Step:3 conifg ECharts's path, link to echarts.js from current page.
// Step:3 為模塊載入器配置echarts的路徑,從當前頁面鏈接到echarts.js,定義所需圖表路徑
require.config({
/* paths: {
echarts: '../js/echarts', //echarts.js所在的路徑
'echarts/chart/funnel': '../js/echarts'
} */
packages:[{
name:'echarts',
⑸ echarts 怎樣在一個頁面顯示多張圖表
最近有個朋友問了這樣一個關於ECharts圖表組件的問題,他想在一個頁面內創建多個圖表肆滑,不知道該如何做。最大的問題可能是受到了require([],function(){});的阻礙吧。
其實require無非就是一個模塊化載入借用其回調函數去創建圖表對象。
所以只要我們能夠將創建多個圖表對象的方法進行統一封裝形成一個方法放入require()的回調函數內即可。
一個頁面內創建多個ECharts圖表示例效果宴雹啟圖呈現
想要在一個頁面創建多個圖表對象需要准備如下幾個條件,也可以說是注意事項:
1、想要創建幾個圖表對象就需要預先設置多少個圖表容器
圖表容器作為圖表的載體,所以是必須的,且必須指定每一個容器的width和height為非零,否則會產生圖表無法呈現的結果。
<div id="main" style="height: 400px; width: 500px; float: left; border: 1px solid #ccc;
padding: 10px;">
</div>
<div id="mainLine" style="height: 400px; width: 500px; float: left; border: 1px solid #ccc;
padding: 10px;">
</div>
這里准備了兩個容器。
2、引入相關的js文件
<script src="js/esl.js" charset="utf-8" type="text/javascript"></script>
<script src="js/echarts.js" charset="utf-8" type="text/javascript"></script>
3、編寫好創建不同圖表對象的方法
1)、創建一個柱狀圖的函數
//創建ECharts柱狀圖圖表
function DrawColumnEChart(ec) {
//--- 柱狀圖 ---
var myChart = ec.init(document.getElementById('main'));
//圖表顯示提示信息
myChart.showLoading({
text: "圖表數據正在努力載入..."
});
myChart.hideLoading();
myChart.setOption({
title: {
text: "柱狀圖"
},
tooltip: {
晌如trigger: 'axis'
},
legend: {
data: ['stepday.com', 'tuiwosa.com']
},
toolbox: {
show: false
},
calculable: true,
xAxis: [
{
type: 'category',
data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
}
],
yAxis: [
{
type: 'value',
splitArea: { show: true }
}
],
series: [
{
name: 'stepday.com',
type: 'bar', //序列展現類型為柱狀圖
data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
},
{
name: 'tuiwosa.com',
type: 'bar',
data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
}
]
});
var ecConfig = require('echarts/config');
//ECharts圖表的click事件監聽
myChart.on("click", function () {
alert("你點擊我了!");
});
}
2)、創建折線圖的函數
//創建ECharts折線圖圖表
function DrawLineEChart(ec) {
//--- 折線圖 ---
var myLineChart = ec.init(document.getElementById('mainLine'));
//圖表顯示提示信息
myLineChart.showLoading({
text: "圖表數據正在努力載入..."
});
myLineChart.hideLoading();
myLineChart.setOption({
title: {
text: "折線圖"
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['stepday.com', 'tuiwosa.com']
},
toolbox: {
show: false
},
calculable: true,
xAxis: [
{
type: 'category',
data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
}
],
yAxis: [
{
type: 'value',
splitArea: { show: true }
}
],
series: [
{
name: 'stepday.com',
type: 'line', //序列展現類型為折線圖
data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
},
{
name: 'tuiwosa.com',
type: 'line',
data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
}
]
});
var ecConfig = require('echarts/config');
//ECharts圖表的click事件監聽
myLineChart.on("click", function () {
alert("你點擊我了!");
});
}
4、封裝一個統一調用創建不同圖表的函數
///將畫多個圖表的進行函數封裝
function DrawCharts(ec) {
DrawColumnEChart(ec);
DrawLineEChart(ec);
}
5、結合模塊載入函數require(requireArr,callbackFunction)創建圖表對象
require(
[
'echarts',
'echarts/chart/bar', //按需載入圖表關於bar圖的部分
'echarts/chart/line' //按需載入圖表關於線性圖的部分
],
DrawCharts
);
6、特別提醒
1)、創建不同圖表對象的時候需要注意方法內部關於init()初始化圖表方法的時候其id要與需要狀態當前圖表容器id保持一致。
7、完整示例代碼
<!DOCTYPE html>
<html lang="en">
<head>
<title>ECharts-基本線性圖</title>
<script src="js/esl.js" charset="utf-8" type="text/javascript"></script>
<script src="js/echarts.js" charset="utf-8" type="text/javascript"></script>
</head>
<body>
<div id="main" style="height: 400px; width: 500px; float: left; border: 1px solid #ccc;
padding: 10px;">
</div>
<div id="mainLine" style="height: 400px; width: 500px; float: left; border: 1px solid #ccc;
padding: 10px;">
</div>
<div style="clear: both;">
<h3>
STEP DAY</h3>
<p>
我們只提供最直接、最具價值的信息,旨在:<a href="http://www.stepday.com/myblog/?echarts" target="_blank">www.stepday.com</a>
</p>
</div>
<script type="text/javascript" language="javascript">
// Step:4 require echarts and use it in the callback.
// Step:4 動態載入echarts然後在回調函數中開始使用,注意保持按需載入結構定義圖表路徑
require(
[
'echarts',
'echarts/chart/bar', //按需載入圖表關於bar圖的部分
'echarts/chart/line' //按需載入圖表關於線性圖的部分
],
DrawCharts
);
///將畫多個圖表的進行函數封裝
function DrawCharts(ec) {
DrawColumnEChart(ec);
DrawLineEChart(ec);
}
//創建ECharts柱狀圖圖表
function DrawColumnEChart(ec) {
//--- 柱狀圖 ---
var myChart = ec.init(document.getElementById('main'));
//圖表顯示提示信息
myChart.showLoading({
text: "圖表數據正在努力載入..."
});
myChart.hideLoading();
myChart.setOption({
title: {
text: "柱狀圖"
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['stepday.com', 'tuiwosa.com']
},
toolbox: {
show: false
},
calculable: true,
xAxis: [
{
type: 'category',
data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
}
],
yAxis: [
{
type: 'value',
splitArea: { show: true }
}
],
series: [
{
name: 'stepday.com',
type: 'bar', //序列展現類型為柱狀圖
data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
},
{
name: 'tuiwosa.com',
type: 'bar',
data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
}
]
});
var ecConfig = require('echarts/config');
//ECharts圖表的click事件監聽
myChart.on("click", function () {
alert("你點擊我了!");
});
}
//創建ECharts折線圖圖表
function DrawLineEChart(ec) {
//--- 折線圖 ---
var myLineChart = ec.init(document.getElementById('mainLine'));
//圖表顯示提示信息
myLineChart.showLoading({
text: "圖表數據正在努力載入..."
});
myLineChart.hideLoading();
myLineChart.setOption({
title: {
text: "折線圖"
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['stepday.com', 'tuiwosa.com']
},
toolbox: {
show: false
},
calculable: true,
xAxis: [
{
type: 'category',
data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
}
],
yAxis: [
{
type: 'value',
splitArea: { show: true }
}
],
series: [
{
name: 'stepday.com',
type: 'line', //序列展現類型為折線圖
data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
},
{
name: 'tuiwosa.com',
type: 'line',
data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
}
]
});
var ecConfig = require('echarts/config');
//ECharts圖表的click事件監聽
myLineChart.on("click", function () {
alert("你點擊我了!");
});
}
</script>
</body>
</html>
轉載
⑹ echarts is not defined怎麼改
出現了echarts is not defined的報錯,是版本的問題。
對於壓縮版的echarts2.2.7及以上版本,是包含了esl的,所以直接像官網一樣<scriptsrc="echarts.min.js"></script>引入到頁面即可。
也有可能是直接引用了項目文件<script src="./src/echarts.js"></script>,這不是模塊化的方式,所以瀏覽器也就很直接報錯誤。
Uncaught ReferenceError: define is not defined echarts.js:18
Uncaught ReferenceError: require is not defined test.html:13
前一個是說define方法沒有導入, 後一個是說require方法沒有導入。
問題的關鍵有可能是<script src="./statics/js/echarts/esl.js"></script>沒有導入,這是因為echarts是架設在efe團隊的esl框架基礎上的。
導入後,你有可能還缺少zrender,ECharts是基於zrender這個html5畫圖組件。如果是沒有壓縮的版本,需要另外引入esl.js才可以使用。如下圖:
⑺ echarts 怎樣用js自定義圖表數據
引入ECharts
echarts提供多種引入方式,請根據你的項目類型選擇合適的方式:
模塊化包引入
如果你熟悉模塊化開發,你的項目本身就是模塊化且遵循AMD規范的,那引入echarts將很簡單,使用一個符合AMD規范的模塊載入器,如esl.js,只需要配置好packages路徑指向src即可,你將享受到圖表的按需載入等最大的靈活性,由於echarts依賴底層zrender,你需要同時下載zrender到本地,可參考demo,你需要配置如下。
需要注意的是,包引入提供了開發階段最大的靈活性,但並不適合直接上線,減少請求的文件數量是前端性能優化中最基本但很重要的規則,務必在上線時做文件的連接壓縮。
//from echarts example
require.config({
packages: [
{
name: 'echarts',
location: '../../src',
main: 'echarts'
},
{
name: 'zrender',
location: '../../../zrender/src', // zrender與echarts在同一級目錄
main: 'zrender'
}
]
});
模塊化單文件引入(推薦)
如果你使用模塊化開發但並沒有自己的打包合並環境,或者說你不希望在你的項目里引入第三方庫的源文件,我們建議你使用單文件引入,同模塊化包引入一樣,你需要熟悉模塊化開發。
自2.1.8起,我們為echarts開發了專門的合並壓縮工具echarts-optimizer。如你所發現的,build文件夾下已經包含了由echarts-optimizer生成的單文件:
dist(文件夾) : 經過合並、壓縮的單文件
line.js : 折線圖(如需折柱動態類型切換,require時還需要echarts/chart/bar)
bar.js : 柱形圖(如需折柱動態類型切換,require時還需要echarts/chart/line)
scatter.js : 散點圖
k.js : K線圖
pie.js : 餅圖(如需餅漏斗圖動態類型切換,require時還需要echarts/chart/funnel)
radar.js : 雷達圖
map.js : 地圖
force.js : 力導向布局圖(如需力導和弦動態類型切換,require時還需要echarts/chart/chord)
chord.js : 和弦圖(如需力導和弦動態類型切換,require時還需要echarts/chart/force)
funnel.js : 漏斗圖(如需餅漏斗圖動態類型切換,require時還需要echarts/chart/pie)
gauge.js : 儀表盤
eventRiver.js : 事件河流圖
treemap.js : 矩陣樹圖
venn.js : 韋恩圖
echarts.js : 這是包含AMD載入器的echarts主文件,需要通過script最先引入
chart(文件夾) : echarts-optimizer通過依賴關系分析同時去除與echarts.js的重復模塊後為echarts的每一個圖表類型單獨打包生成一個獨立文件,根據應用需求可實現圖表類型按需載入
source(文件夾) : 經過合並,但並沒有壓縮的單文件,內容同dist,可用於調試
採用單一文件使用例子見ECharts單一文件引入,存放在example/www下,首先你需要通過script標簽引入echarts主文件
在主文件引入後你將獲得一個AMD環境,配置require.conifg如下:
require.config配置後就可以通過動態載入使用echarts
總結來說,模塊化單文件引入ECharts,你需要如下4步:
為ECharts准備一個具備大小(寬高)的Dom(當然可以是動態生成的)
通過script標簽引入echarts主文件
為模塊載入器配置echarts的路徑,從當前頁面鏈接到echarts.js所在目錄,見上述說明
動態載入echarts及所需圖表然後在回調函數中開始使用(容我羅嗦一句,當你確保同一頁面已經載入過echarts,再使用時直接require('echarts').init(dom)就行)
詳見入門教程 ( Getting started ) »
標簽式單文件引入
自1.3.5開始,ECharts提供標簽式引入。如果你的項目本身並不是基於模塊化開發的,或者是基於CMD規范(如使用的是seajs),那麼引入基於AMD模塊化的echarts可能並不方便,我們建議你採用srcipt標簽式引入,忘掉require。Srcipt標簽引入echarts後將可以直接使用兩個全局的命名空間:echarts,zrender,可參考ECharts標簽式引入,需要注意的是excanvas依賴body標簽插入Canvas節點去判斷Canvas的支持,如果你把引用echarts的script標簽放置head內在IE8-的瀏覽器中會出現報錯,解決的辦法就是把標簽移動到body內(後)。
標簽式引入環境中,常用模塊的引用可通過命名空間直取,同模塊化下的路徑結構,如:
echarts.config = require('echarts/config'), zrender.tool.color = require('zrender/tool/color')
⑻ ESL是什麼 詳解ESL的定義和作用
總之,ESL教育在全球范圍內都有著廣泛的應用和重要的作用。在全球化的背景下,掌握英語語言技能已經成為一種必要的能力,ESL教育可以幫助人們更好地適應英語環境,提高跨文化交流的能力,為個人和社會發展做出貢獻。
ESL教育的教學方法和內容與普通英語教育有很大的不同。ESL教育更注重語言的中租實用性和交際能力的培養,教學內容更加貼近實際生活和工作中的應用場景。ESL教育中常採用游戲、音樂、圖片等多種形式的教學手段,以提高學習者的興趣和積極性。
ESL教育的目的是幫助學生掌握英語語言的聽、說、讀、寫等各方面的技能,以便更好地適應英語環境,並與英語使用者進行交流。ESL教育的對象主要是那些英語非母語的人,包括兒童、青少年鏈塌和成年人。
總之,ESL教育在全球范圍內都有著廣泛的應用和重要的作用。在全球化的背景下,掌握英語語言技能已經成為一種必要的能力,ESL教育可以幫助人們棚培圓更好地適應英語環境,提高跨文化交流的能力,為個人和社會發展做出貢獻。
ESL教育的教學方法和內容與普通英語教育有很大的不同。ESL教育更注重語言的實用性和交際能力的培養,教學內容更加貼近實際生活和工作中的應用場景。ESL教育中常採用游戲、音樂、圖片等多種形式的教學手段,以提高學習者的興趣和積極性。
ESL教育的教學方法和內容與普通英語教育有很大的不同。ESL教育更注重語言的實用性和交際能力的培養,教學內容更加貼近實際生活和工作中的應用場景。ESL教育中常採用游戲、音樂、圖片等多種形式的教學手段,以提高學習者的興趣和積極性。
⑼ 求thinkphp 與echarts交互的實例,echarts數據到底是什麼格式
Echarts-map.js :主要用來渲染跟地圖相關
Echarts.js :基本的常規圖形相關
Esl.js :圖像引擎
Statics文件夾下的ECharts.js文件,為我自己抽象總結出來的用於輪純彎Echarts的配置文件載入、數據處理、初始化各種圖像類型的配置、圖像渲染的一些方法。
2. 抽象之後的Echarts。
Echarts的使用歸結為一下的幾個步驟,同時這些步驟相應的實現對應到臘悶Statics文件夾下的Echarts.js,該文件的主要代碼目錄如下:
[javascript] view plain
Var ECharts={
ChartConfig:function(container,option){ …..},//載入Echarts配置文件
ChartDataFormate:{….},//數據格式化
ChartOptionTemplates:{….},//初始化常用的圖表類型
Charts:{ RenderChart:function(option){….},//渲染圖表
RenderMap:function(option){…}//渲染地圖
}
}; 更多問題到問褲滾題求助專區http://bbs.hounwang.com/
⑽ b-jui怎麼使用echarts的力向圖
首先下載echarts工具包,可以在官網下載,圖中為下載後的echarts工具包的目錄亮答空結構
測試echarts,新建文件夾test,將echarts-2.0.3\doc\舉或example\www\下的js拷貝到test下,並新建test.html文件,如圖
編輯test.html文件。首先導入echarts文件,因為我們只是測試柱狀圖所以只需要引入esl.js和echarts.js文件即可,如圖
創建柱狀圖。首先創建柱狀圖的容器,<div id="main" style="height: 500px; border: 1px solid #ccc; padding: 10px;"></div>,注意裡面的id,下面會用到,另外要設定高度,否則柱狀圖不會顯示。創建完成容器後,在容器中添加柱狀圖,如圖
OK,代碼編寫敬瞎完成,我們雙擊test.html文件,柱狀圖成功顯示,如圖,你可以根據顯示對比一下script內容,找到編寫柱狀圖的關鍵