很难在标题中解释,让我解释一下。
我有3张图片,我希望它们在div中显示并在每次用户重新访问页面时旋转(他们在访问时会看到一张图片,下次会看到不同的图片。)
我想有一个像'count'这样的变量,每次用户访问时都会递增,而count的值与这个div中显示的图像有关,但我不知道如何保存3个图像在本地存储。
我期待逻辑可能就像
setItem (Img1)
setItem (Img2)
setItem (Img3)
count = count + 1
if count = 1
div = getItem(Img1)
if count = 2
etc etc
我想我的问题是:
现在这是我正在使用的代码,但是没有显示图像,div只显示图像位置。
var counter = localStorage.getItem('counter');
if(counter == null) {
localStorage.setItem("counter", 0);
localStorage.setItem("images",'["assets/advert1.png","assets/advert2.png","assets/advert3.png"]');
$('#advert').html(JSON.parse(localStorage.getItem('images'))[0]);
}
else {
$('#advert').html(JSON.parse(localStorage.getItem('images'))[counter]);
counter++;
if(counter > 2) {
counter = 0;
}
localStorage.setItem("counter", counter);
}
(注意这是在document.ready函数中)
答案 0 :(得分:0)
是。这是可能的。
首先,在画布上绘制图像:
https://www.w3schools.com/tags/canvas_drawimage.asp
您也可以直接从链接下载。然后将画布上下文保存到本地存储中。
答案 1 :(得分:0)
您所要做的就是使用两个变量,一个用于存储图像数组,另一个用于存储当前显示的索引。
$(document).ready(function(){
var counter = localStorage.getItem('counter');
if(counter == null)
{
localStorage.setItem("counter",0);
localStorage.setItem("images",'["1.png","2.png","3.png"]');
$('#displayArea').attr("src",JSON.parse(localStorage.getItem('images'))[0]);
}
else
{
$('#displayArea').attr("src",JSON.parse(localStorage.getItem('images'))[counter]);
counter++;
if(counter > 2)
{
counter = 0;
}
localStorage.setItem("counter",counter);
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img id="displayArea"></img>
&#13;
<强>更新强>
此代码将在堆栈代码段中生成错误,因为它是沙盒环境。此代码段在网页上完美运行。
答案 2 :(得分:0)
您可以使用localStorage
或WebSQL来解决此问题
Base64
,然后使用计数器1,2,3选择要使用的图像JavaScript
,因此它将在客户端Base64
,您可以使用此website 您可以查看question
答案 3 :(得分:0)
随机使用:
Math.floor((Math.random() * 3) + 1);