2024-12-26 14:18:10 +08:00

155 lines
5.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//下载弹层
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 +'&nbsp;&nbsp;&nbsp;' + 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;
}
}