You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

127 lines
3.0 KiB

var SemanticUIColors = [
'red',
'orange',
'yellow',
'olive',
'green',
'teal',
'blue',
'violet',
'purple',
'pink',
'brown'
]
$(document).ready(function() {
$('.dream-flip-toggle').click(function() {
var c = $('.flip-container')
if (dreamBodyBgSwitchIndex === 0) {
c.css('overflow', 'hidden')
setBackground(dreamBody, dreamBodyBgSwitch[1])
dreamBodyBgSwitchIndex = 1
$('.flipper .front .ui.menu').css('overflow-x', '')
} else {
c.removeAttr('style')
setBackground(dreamBody, dreamBodyBgSwitch[0])
dreamBodyBgSwitchIndex = 0
$('.flipper .front .ui.menu').css('overflow-x', 'auto')
}
c.toggleClass('flip-it')
})
var postList = $('.post-list')
var pMaxHeight = $(window).height() - $('.ui.menu').outerHeight(true)
postList.css('max-height', pMaxHeight)
$('.ui.cards .image')
.dimmer({
opacity: 0.6,
closable: false
})
.dimmer('show')
$('.ui.accordion').accordion()
$('#tag-category-pop').click(function() {
var dt = $('.dream-header-tags.dream-tags')
var dc = $('.dream-categories')
var dtDisplay = dt.css('display')
var dcDisplay = dc.css('display')
if (dtDisplay === 'none') {
dt.css('display', 'block')
dc.css('display', 'block')
} else {
dt.css('display', 'none')
dc.css('display', 'none')
}
})
setSemanticUIColor()
})
function randomInt(min, max) {
min = Math.ceil(min)
max = Math.floor(max)
random = Math.floor(Math.random() * (max - min)) + min
return random
}
function setSemanticUIColor() {
var tagsParent = $('.dream-tags')
tagsParent.children().map(function() {
$(this).addClass(SemanticUIColors[randomInt(0, SemanticUIColors.length)])
})
}
function savePostAsImg() {
var postList = $('.post-list')
var useWidth = postList.prop('scrollWidth')
var useHeight = postList.prop('scrollHeight')
var removedHeight = $('.post-list .post-disqus-area').prop('scrollHeight')
var canvas = document.createElement('canvas')
var width = useWidth
var height = useHeight - removedHeight
var scale = 2
canvas.width = width * scale
canvas.height = height * scale
canvas.getContext('2d').scale(scale, scale)
html2canvas(document.querySelector('.post-single-main'), {
canvas: canvas,
width: width,
height: height,
scale: scale,
useCORS: true
}).then(function(canvas) {
var ctx = canvas.getContext('2d')
ctx.mozImageSmoothingEnabled = false
ctx.webkitImageSmoothingEnabled = false
ctx.msImageSmoothingEnabled = false
ctx.imageSmoothingEnabled = false
var data = canvas.toDataURL('image/png')
var link = document.createElement('a')
link.href = URL.createObjectURL(dataURLtoBlob(data))
link.download = 'screenshot.png'
link.click()
})
return false
}
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(','),
mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]),
n = bstr.length,
u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
return new Blob([u8arr], { type: mime })
}