155 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| //下载弹层
 | ||
| function bigHaibao() {
 | ||
| 	var imgUrl = $('.swiper-wrapper .swiper-slide-active img').attr('src') + '?=v1';
 | ||
| 	var date =$("#publishDateTime").html();
 | ||
| 	var week = getWeekBig($("#NewsArticleTime").html());   //星期
 | ||
| 	console.log($("#publishDateTime").html());
 | ||
| 	var html =
 | ||
| 		'<div class="closeBtn"><i></i></div>' +
 | ||
| 		'<div id="synthWrap" style="width:1500px; position:absolute; top:-100000px; max-height:max-content; padding:30px;">' +
 | ||
| 		'	<div class="synthHead" style="height:80px; margin-bottom:30px; font-size:48px;line-height:80px;">' +
 | ||
| 		'		<img src="/h5/public/static/logo.png" style="height: 50px;width: 50px" alt=""/>' +
 | ||
| 		'		<div>' + date +'   ' + week +'</div>' +
 | ||
| 		'	</div>' +
 | ||
| 		'	<img src = ' + imgUrl +' class="synthPaper" alt=""/>' +
 | ||
| 		'	<div class="footer" style="height:180px; padding:30px 0;font-size:48px; margin-top:30px;">' +
 | ||
| 		'		<div class="left">' +
 | ||
| 		'			<img style="max-height:150px;max-width:150px;" src="/h5/public/static/logo.png" alt=""/>' +
 | ||
| 		'		</div>' +
 | ||
| 		'		<div class="right">' +
 | ||
| 		'			<div class="text">' +
 | ||
| 		'				<div>识别二维码</div>' +
 | ||
| 		'				<div>查看该版内容</div>' +
 | ||
| 		'			</div>' +
 | ||
| 		'			<div class="qr" style="width:180px; height:180px; margin-left:30px;">' +
 | ||
| 		'				<img src="" id="qcImg"/>' +
 | ||
| 		'			</div>' +
 | ||
| 		'		</div>' +
 | ||
| 		'	</div>' +
 | ||
| 		'</div>' +
 | ||
| 		'<div id="synthImg"><img src="" alt=""/></div>' +
 | ||
| 		'<div class="saveTipsBtn" style="display:none;">点击图片,长按分享给好友</div>' +
 | ||
| 		'<div class="synthmask"><img src="/h5/public/static/loading.gif" alt=""/></div>' +
 | ||
| 		'<div id="qrcode" style="visibility:hidden;"></div>';
 | ||
| 
 | ||
| 	$('.synthPage').append(html);
 | ||
| 	var url = window.location.href;
 | ||
| 	var index = url.substring(0, url.lastIndexOf('/') + 1);
 | ||
| 	console.log(index + '?' + getCaption())
 | ||
| 	$('body').find('#qrcode').qrcode({
 | ||
| 		render: 'canvas',
 | ||
| 		width: 180,
 | ||
| 		height: 180,
 | ||
| 		// margin: '0 auto',
 | ||
| 		text: index + '?' + getCaption()
 | ||
| 	});
 | ||
| 	document.getElementById('qcImg').src = document.querySelector('canvas').toDataURL("image/webp");
 | ||
|     synthesisImgLoadBig();
 | ||
| 
 | ||
|     $('.tipsBtn').unbind("touchstart");
 | ||
|     $('.tipsBtn').unbind("touchend");
 | ||
|     $('.tipsBtn').bind("touchstart", function () {
 | ||
|         $(this).hide();
 | ||
|     });
 | ||
| 
 | ||
|     $('.tipsBtn').bind("touchend", function () {
 | ||
|         $(this).show();
 | ||
|     });
 | ||
| }
 | ||
| //判断图片是否加载完成
 | ||
| function synthesisImgLoadBig() {
 | ||
| 	var img = $('.synthPage .synthPaper');
 | ||
| 	if (img && img.length != 0) {
 | ||
| 		if (img[0].complete) {
 | ||
| 			var synBoxH = $('#synthWrap').height();
 | ||
| 			var imgH = $('#synthWrap').height() - 100;
 | ||
| 			$('#synthWrap>img.synthPaper').css('max-height', imgH + 'px');
 | ||
| 			$('#qrcode').hide()
 | ||
| 			synthesisImgBig();
 | ||
| 		} else {
 | ||
| 			setTimeout(function () { synthesisImgLoadBig() }, 300);
 | ||
| 		}
 | ||
| 	} else {
 | ||
| 		setTimeout(function () { synthesisImgLoadBig() }, 300);
 | ||
| 	}
 | ||
| }
 | ||
| //生成图片
 | ||
| function synthesisImgBig() {
 | ||
| 	//clearInterval(synthesisImgLoadBig)
 | ||
| 	var canvas = document.createElement('canvas'); // 创建一个canvas节点
 | ||
| 	var shareContent = document.getElementById('synthWrap'); // 需要截图的包裹的(原生的)DOM 对象
 | ||
| 	var width = shareContent.offsetWidth; // 获取dom 宽度
 | ||
| 	var height = shareContent.offsetHeight; // 获取dom 高度
 | ||
| 	var scale = 1.5; // 定义任意放大倍数 支持小数
 | ||
| 	canvas.getContext('2d').scale(scale, scale); // 获取context,设置scale
 | ||
| 	var rect = shareContent.getBoundingClientRect(); // 获取元素相对于视口的
 | ||
| 	html2canvas(document.getElementById('synthWrap'), {
 | ||
| 		x: rect.left, // 绘制的dom元素相对于视口的位置
 | ||
| 		y: rect.top,
 | ||
| 		width: width, // dom 原始宽度
 | ||
| 		height: height,
 | ||
| 		windowWidth: document.body.scrollWidth,
 | ||
| 		windowHeight: document.body.scrollHeight,
 | ||
| 		// x: 0,
 | ||
| 		// y: 0,
 | ||
| 		useCORS: true, // 开启跨域
 | ||
| 		dpi: window.devicePixelRatio * 2,
 | ||
| 		scale: scale, // 添加的scale 参数
 | ||
| 	}).then((canvas) => {
 | ||
| 		var context = canvas.getContext('2d')
 | ||
| 		//关闭抗锯齿
 | ||
| 		context.mozImageSmoothingEnabled = false
 | ||
| 		context.msImageSmoothingEnabled = false
 | ||
| 		context.imageSmoothingEnabled = false
 | ||
| 		$('#synthImg img').attr('src', canvas.toDataURL());
 | ||
| 		$('#synthWrap').hide();
 | ||
| 		$('#synthImg').show();
 | ||
|         $('.synthPage .synthmask').hide();
 | ||
|         $('.saveTipsBtn').show();
 | ||
| 	})
 | ||
| }
 | ||
| 
 | ||
| //星期日期计算
 | ||
| function getWeekBig(timedat) { //timedat参数格式: "2018-09-11"
 | ||
| 	let t = new Date(timedat);
 | ||
| 	let week;
 | ||
| 	if (t.getDay() === 0) week = "星期日";
 | ||
| 	if (t.getDay() === 1) week = "星期一";
 | ||
| 	if (t.getDay() === 2) week = "星期二";
 | ||
| 	if (t.getDay() === 3) week = "星期三";
 | ||
| 	if (t.getDay() === 4) week = "星期四";
 | ||
| 	if (t.getDay() === 5) week = "星期五";
 | ||
| 	if (t.getDay() === 6) week = "星期六";
 | ||
| 	return week;
 | ||
| };
 | ||
| 
 | ||
| //判断当前时间和报纸刊期之间的时间差。 如在MaxshowData天内,返回true,否则返回false
 | ||
| // type=1,忽略dtStartStr,日期根据浏览器地址获取;type=2,根据前一个参数,格式(YYYY/MM/DD)
 | ||
| function DateMaxDiffBig(type, dtStartStr) {
 | ||
| 	if (!ifMaxShowDate) { return true; }
 | ||
| 	var maxinterval = MaxshowData;//允许看的天数
 | ||
| 	var re = /(\d{4})-(\d{2})\/(\d{2})/i;
 | ||
| 	var sUrl = location.href;
 | ||
| 	var r = sUrl.match(re);
 | ||
| 	var dtEnd = new Date();
 | ||
| 	var dtStart;
 | ||
| 	if (type == 1) {
 | ||
| 		if (r) {
 | ||
| 			dtStart = new Date(r[1] + "/" + r[2] + "/" + r[3]);
 | ||
| 		} else {
 | ||
| 			dtStart = new Date();
 | ||
| 		}
 | ||
| 	} else if (type == 2) {
 | ||
| 		dtStart = new Date(dtStartStr);
 | ||
| 		if (isNaN(dtStart)) dtStart = new Date();
 | ||
| 	}
 | ||
| 
 | ||
| 	var date3 = dtEnd.getTime() - dtStart.getTime();  //时间差的毫秒数
 | ||
| 	var days = Math.floor(date3 / (24 * 3600 * 1000));//计算出相差天数
 | ||
| 	if ((days) >= maxinterval) {
 | ||
| 		return false;
 | ||
| 	} else {
 | ||
| 		return true;
 | ||
| 	}
 | ||
| }
 |