Heim > php教程 > php手册 > 高仿喵喵折前端代码

高仿喵喵折前端代码

WBOY
Freigeben: 2016-06-06 19:39:25
Original
1331 Leute haben es durchsucht

主要用了Highchart图表插件+jquery 1、主要还存在一个问题提示框应该在最上方的。已解决 2、时间格式化问题。已解决 3、数据点是没有外面这一圈的。已解决 4、x轴最小单位和最大单位选中问题。未解决 jQuery Highcharts $(function () {mmz.init("mmz");})/*

主要用了Highchart图表插件+jquery
1、主要还存在一个问题   提示框应该在最上方的。 已解决
2、时间格式化问题。 已解决
3、数据点是没有外面这一圈的。 已解决
4、x轴最小单位和最大单位选中问题。 未解决

jQuery Highcharts

高仿喵喵折前端代码

$(function () {
	mmz.init("mmz");

})
/**
 *author 大灰狼 116311316@qq.com
 *v1.0
 */
var mmz = {
	lowPrice : '', //最低价
	topPrice : '', //最高价
	status : 0, //价格浮动状态 1上升 2下降 3平衡
	init : function (id) {
		mmz.sync(id);
	},
	//需要同步 获取type值和数据 php的时间戳是10位的js是13位的
	sync : function (id) {
		var xData = [1441555200, 1441468800, 1441382400, 1441296000, 1441209600];
		xData = mmz.getXdata(xData);
		var yData = [400, 500, 300, 600, 200];
		var c = new Array();
		xData = mmz.getXdata(xData);
		c = yData.concat();
		mmz.getPrice(yData); //计算最高价格和最低价格
		//载入页面
		for (var i = 0; i < c.length; i++) {
			c[i] = Math.round(c[i] * 10) / 10;
		}
		//和上一次波动的进行比较
		if (c[c.length - 1] - mmz.lowPrice < 0) {
			mmz.status = 4; //历史最低
		}

		var con = mmz.plugin();
		$("#" + id).after(con);
		$(".price_name").bind("mouseover", mmz.showChart);
		$(".price_chart").bind("mouseleave", mmz.hideChart);
		//设置图形参数

		mmz.setChart(xData, c);

	},
	getXdata : function (xData) {
		for (var i = 0; i < xData.length; i++) {
			xData[i] = xData[i] * 1000;
		}
		return xData;
	},
	getPrice : function (data) {
		//获取最大价格和最小价格 和价格状态
		var temp;
		var total = 0.00;
		var nowTotal = parseFloat(data[data.length - 1]) * data.length;
		var k = 0;
		for (var i = 0; i < data.length; i++) {
			for (var j = 0; j < data.length; j++) {

				if (data[i] < data[j] && k == 0) {
					mmz.status = 2;
					k++;
				} else if (data[i] > data[j] && k == 0) {
					mmz.status = 1;
					k++;
				}

				if (data[i] < data[j]) {
					temp = data[i];
					data[i] = data[j];
					data[j] = temp;
				}

			}

			total += parseFloat(data[i]);
		}

		mmz.lowPrice = data[0];
		mmz.topPrice = data[data.length - 1];
		total = Math.round(total * 10) / 10;
		nowTotal = Math.round(nowTotal * 10) / 10;

		if (total == nowTotal) {
			mmz.status = 3;
		}

	},
	/**
	 *type 上涨还是下跌
	 *topPrice 最高价格
	 *lowPrice 最低价格
	 */
	plugin : function () {
		var css;
		var remark;
		switch (mmz.status) {
		case 1:
			css = "price_up";
			remark = "价格上涨";
			break;
		case 2:
			css = "price_down";
			remark = "价格下降";
			break;
		case 3:
			css = "price_balance";
			remark = "价格平稳";
			break;
		case 4:
			css = "price_down";
			remark = "历史最低";
			break;
		}
		var con = '<div class="price_label"><div class="price_logo"></div><div class="price_name"><div class="' + css + '"></div>';
		con = con + '<span id="shuoming">' + remark + '</span></div></div><div class="price_chart"><div class="title-bar">价格趋势</div><div id="pricechart"></div>';
		con = con + '<div class="history">最高价  <br>¥ ' + mmz.topPrice + '<br><br><br><br><br><br>最低价<br>¥ ' + mmz.lowPrice + '</div>';
		return con;
	},

	showChart : function () {
		var x = $(".price_name").offset().left;
		var y = $(".price_name").offset().top;
		var h = $(".price_name").height();
		$(".price_chart").css({
			"left" : x,
			"top" : y + h
		});
		$(".price_chart").show();
	},

	hideChart : function () {
		$(".price_chart").hide();
	},

	setChart : function (xData, yData) {

		$('#pricechart').highcharts({
			title : {
				text : '',
			},

			chart : {
				spacingTop : 55,
				spacingRight : 50
			},

			colors : ['#ff6700'],

			xAxis : {
				minPadding : 0,
				reversed : true, //轴数据反转
				gridLineWidth : 1,
				min : 0,
				max : xData.length - 1,
				categories : xData,
				labels : {
					formatter : function () {
						var m = Highcharts.dateFormat('%m', this.value);
						if (m < 10) {
							m = m.substr(1, 1);
						}
						m = m + "-" + Highcharts.dateFormat('%d', this.value);
						return m;
					}
				}
			},

			yAxis : {
				title : {
					text : ''
				}
			},
			series : [{
					name : '价格',
					data : yData,
				}
			],
			plotOptions : {
				series : {
					animation : false,
					cropThreshold : 10,
					marker : {
						fillColor : '#FFF',
						lineColor : '#FFF',
						radius : 0,
						lineWidth : 0,
						states : {
							//鼠标移动至数据点所显示的样式
							hover : {
								fillColor : '#FFF', //数据点颜色值
								radius : 2, //点半径大小
							}

						}
					}

				},
				line : {
					states : {
						hover : {
							lineWidthPlus : 1,
							marker : {},
							halo : {
								size : 5,
								opacity : 1
							}
						}
					}

				}

			},
			tooltip : {
				backgroundColor : '#ff6700', // 背景颜色
				borderRadius : 0, // 边框圆角

				valueSuffix : '',
				animation : false,
				shadow : false, // 是否启用动画效
				style : { // 文字内容相关样式
					color : "#FFF",
					fontSize : "16px",
					fontWeight : "blod",
					fontFamily : "微软雅黑",
					cursor : "default",
					padding : "4px",
					whiteSpace : "nowrap",
				},
				crosshairs : [{ // 设置准星线样式
						width : 1,
						color : '#ccc'
					}
				],
				formatter : function () {
					return '<b>¥' + this.y +
					'</b><br><span style="font-size:10px">' + Highcharts.dateFormat('%Y-%m-%d', this.x) + '</span>';
				}

			},
			legend : {
				enabled : false
			},
			credits : {
				enabled : false // 禁用版权信息
			}
		});
	}

}
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage