梦幻岛屿:记录你的美好瞬间
<div id='island' style='background-image: url('daoyu.png');'></div>
<script src='https://cdn.staticfile.org/jquery/3.4.1/jquery.min.js'></script>
<script src='https://cdn.staticfile.org/layui/2.5.6/layui.min.js'></script>
<script>
var island = document.getElementById('island');
<p>// 从localStorage中获取保存的花朵和内容
var savedFlowers = JSON.parse(localStorage.getItem('flowers')) || [];</p>
<p>// 创建保存花朵和内容的数组
var flowers = [];</p>
<p>// 遍历已保存的花朵并恢复它们
savedFlowers.forEach(function(savedFlower) {
var flower = document.createElement('img');
flower.src = savedFlower.image;
flower.style.top = savedFlower.top + 'px';
flower.style.left = savedFlower.left + 'px';
flower.classList.add('flower');
island.appendChild(flower);</p>
<pre><code>flower.addEventListener('mouseover', function() {
showTooltip(flower);
});
flower.addEventListener('mouseout', function() {
hideTooltip();
});
flowers.push(flower);
flower.data = savedFlower.data; // 将保存的数据赋值给对应花朵的提示词
</code></pre>
<p>});</p>
<p>island.addEventListener('click', function(event) {
if (event.target !== island) {
return;
}</p>
<pre><code>var activeFlower = document.createElement('img');
activeFlower.data = '';
activeFlower.src = 'tree.jpg';
activeFlower.style.top = event.clientY + 'px';
activeFlower.style.left = event.clientX + 'px';
activeFlower.classList.add('flower');
island.appendChild(activeFlower);
activeFlower.addEventListener('mouseover', function() {
showTooltip(activeFlower);
});
activeFlower.addEventListener('mouseout', function() {
hideTooltip();
});
if (activeFlower && activeFlower.data) {
layer.tips(content, activeFlower, {
tips: [1, '#000'],
time: 0
});
}
flowers.push(activeFlower);
island.removeEventListener('click', clickHandler); // 解除点击事件
function clickHandler(event) {
if (event.target !== island) {
return;
}
var activeFlower = document.createElement('img');
activeFlower.data = '';
activeFlower.src = 'tree.jpg';
activeFlower.style.top = event.clientY + 'px';
activeFlower.style.left = event.clientX + 'px';
activeFlower.classList.add('flower');
island.appendChild(activeFlower);
activeFlower.addEventListener('mouseover', function() {
showTooltip(activeFlower);
});
activeFlower.addEventListener('mouseout', function() {
hideTooltip();
});
if (activeFlower && activeFlower.data) {
layer.tips(content, activeFlower, {
tips: [1, '#000'],
time: 0
});
}
flowers.push(activeFlower);
}
setTimeout(function() {
island.addEventListener('click', clickHandler); // 重新绑定点击事件
}, 0);
</code></pre>
<p>});</p>
<p>function showTooltip(activeFlower) {
layui.use('layer', function() {
var layer = layui.layer;
if (activeFlower && activeFlower.data) {
layer.tips(activeFlower.data, activeFlower, {
tips: [1, '#000'],
time: 0
});
}
});
}</p>
<p>function hideTooltip() {
layui.use('layer', function() {
var layer = layui.layer;
layer.closeAll('tips');
});
}</p>
<p>$(document).on('click', '.flower', function(event) {
var activeFlower = this;
var time = 0; // 定义time变量
activeFlower.data = '';</p>
<pre><code>event.stopPropagation();
layui.use(['layer', 'form'], function() {
var layer = layui.layer;
var form = layui.form;
$(activeFlower).off('click'); // 解除之前绑定的点击事件
var cloudInput = layer.open({
type: 1,
title: false,
closeBtn: 0,
shadeClose: false,
area: ['100px', '100px'],
content: '<div style='padding: 20px;'><input id='inputText' type='text' class='layui-input' ></div>',
success: function(layero, index) {
var inputText = layero.find('#inputText');
inputText.val(activeFlower.data);
inputText.focus();
inputText.keydown(function(event) {
if (event.keyCode === 13) {
activeFlower.data = inputText.val();
inputText.val('');
layer.close(cloudInput);
$(activeFlower).on('click', function(event) {
event.stopPropagation();
showInput(activeFlower);
}); // 重新绑定点击事件
time = Math.floor(Math.random() * 3 + 1); // 生成1到3之间的随机数
setTimeout(function() {
var message = new SpeechSynthesisUtterance(time + '分钟后把你最美好的事情写出来放到树里');
window.speechSynthesis.speak(message);
layer.msg(time + '分钟后把你最美好的事情写出来放到树里', {
time: 5000,
offset: 't',
anim: 6
});
}, 3000);
setTimeout(function() {
var message = new SpeechSynthesisUtterance('时间到了,现在可以把你最美好的事情写出来放到树里啦!');
window.speechSynthesis.speak(message);
layer.msg('时间到了,现在可以把你最美好的事情写出来放到树里啦!', {
time: 5000,
offset: 't',
anim: 6
});
}, time * 60 * 1000);
}
});
}
});
});
</code></pre>
<p>});</p>
<p>// 在窗口关闭时保存花朵和内容到localStorage中
window.addEventListener('beforeunload', function() {
var savedFlowers = flowers.map(function(flower) {
return {
image: flower.src,
top: parseInt(flower.style.top),
left: parseInt(flower.style.left),
data: flower.data
};
});
savedFlowers.forEach(function(savedFlower) {
var flower = flowers.find(function(flower) {
return flower.src === savedFlower.image && parseInt(flower.style.top) === savedFlower.top && parseInt(flower.style.left) === savedFlower.left;
});
if (flower) {
flower.data = savedFlower.data;
}
});
localStorage.setItem('flowers', JSON.stringify(savedFlowers));
});</p>
</script>
原文地址: https://www.cveoy.top/t/topic/G1c 著作权归作者所有。请勿转载和采集!