- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为将用作心理实验(用于收集用户数据)的网站构建网页。
页面应按以下顺序操作:
1. 显示加图 250 毫秒。
2. 显示一组图像中的图像 750 毫秒。
3. 显示一个包含用户应该回答的问题的表单,等等。
我需要在我还没有完成显示阵列中的所有图像时重复这些步骤。
我有 HTML 代码:
<img src="http://brain.netii.net/images/Blank.png" id="pictures" name="pictures"/>
<form id="inputs" action="#" class="validate" method="post">
<label class="quesLabel" for="assoInput1">First association:</label>
<div>
<input required pattern="([a-z]*|[A-Z]*|[ \t]*)*" type="text" id="assoInput1" name="asso1" title="please enter first association" autocomplete="off" value="">
</div>
<br>
<input type="submit" value="Submit">
</form>
我的 CSS 代码:
#container
{
width: 960px;
padding: 0;
margin: 0 auto;
}
#pictures
{
width: 960px;
height: 720px;
padding: 0;
}
#inputs
{
width: 960px;
height: 720px;
margin: 100px 50px;
display: none;
}
我有的JS代码:
window.onload = function()
{
preloader();
pictureImg = document.getElementById("pictures");
inputForm = document.getElementById("inputs");
inputForm.onsubmit = function()
{
//alert('Form: onsubmit func');
LoadPlus();
};
LoadPlus();
//LoadImage();
};
function LoadPlus()
{
inputForm.style.display="none";
//stop condition:
if (imagesArr.length <= 0) //hope that here is no error here
{
//alert("All images loaded");
window.location.href = "start_experiment.html";
}
var url = plus;
var img = new Image();
img.src = url;
img.onload = function()
{
//alert("Plus loaded.");
setTimeout(LoadImage, 250);
};
pictureImg.src = img.src;
pictureImg.style.display="block";
}
function LoadImage()
{
var randomNum;
if (imagesArr.length > 0)
{
randomNum = Math.floor(Math.random() * imagesArr.length);
console.log(imagesArr[randomNum]);
}
else
{
alert ("ERROR: out of array boundaries!");
}
var url = "http://brain.netii.net/images/Practice" + imagesArr[randomNum] +".png";
imagesArr.splice(randomNum, 1);
var img = new Image();
img.src = url;
img.onload = function()
{
//alert("image #" + randomNum + " loaded, loading next..");
setTimeout(LoadForm, 750);
};
pictureImg.src = img.src;
}
function LoadForm()
{
//blank only pictures div
inputForm.reset();
inputForm.style.display="block";
pictureImg.style.display="none";
//alert('Form loaded');
}
在这里你可以看到 page .
我的问题从提交表单开始,onload 触发器加载加号图像两次而不是一次(有时第一个加号显示很短的时间,有时它甚至显示应该在加号之后看到的图片)。
还有其他方法可以实现吗?谁能帮帮我?
谢谢你,马克斯。
最佳答案
我在这里的建议旨在以编程方式表达您的每个请求。标记、样式和脚本一直保持简单。它不是为优化或速度而编写的,而是作为现有代码的替代产品。请找到对您的用例有帮助和适用的内容。
通过将所有图像(包括加号图像)放在标记中,您可以根据需要轻松引用它们,而无需在 LoadImage()< 中重复不必要的
和 .onload()
调用LoadPlus()
。
onload 触发器不应该加载更多图像,因为它发生...
<!-- index.html -->
<!-- Loads but hides all images from appearing onload. -->
<head>
<style> img { display: none; } </style>
</head>
<body>
<img id="plus" src="http://brain.netii.net/images/Plus.png">
<img id="picture" src="http://brain.netii.net/images/Practice7.png">
<form id="superform">
<label for="first">First association:</label>
<input type="text" name="name">
<label for="second">Second association:</label>
<input type="text" name="name">
<label for="third">Third association:</label>
<input type="text" name="name">
<input type="submit" value="Submit" id="submit">
</form>
<script>
// `window.onload` only runs when all content from the DOM (example: images) has been loaded
window.onload = function () {
var submit = document.getElementById('submit');
// Set an event listener anytime the submit is clicked
submit.addEventListener('click', function (event) {
// Assuming the method is defined, this prevents an actual "submission" from occuring
if (event.preventDefault) {
event.preventDefault();
}
// Immediately hide the form and show the plus symbol
document.getElementById('superform').style.display = 'none';
document.getElementById('plus').style.display = 'block';
// Run this timer 250ms after the click event occurs
window.setTimeout(function () {
// Immediately hide the plus but show the picture
document.getElementById('plus').style.display = 'none';
document.getElementById('picture').style.display = 'block';
// Run this timer 1000ms (1 second) after the click event occurs
window.setTimeout(function () {
// Immediately hide the picture but show the form again.
document.getElementById('picture').style.display = 'block';
document.getElementById('superform').style.display = 'block';
}, 1000); // 2nd timer ends.
}, 250); // 1st timer ends.
}, false); // end of `submit` event listener.
} // end of `onload` callback definition.
</script>
</body>
关于javascript - 使用 Javascript 的图像加载触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26572402/
概述 触发器是 MySQL 的数据库对象之一,不需要程序调用或手工启动,而是由事件来触发、激活,从而实现执行,包括 INSERT 语句、UPDATE 语句和 DELETE 语句 创建触发器 1. 创建
当我为单元格获得的值是某种类型时,我试图设置一个触发器来显示文本块。 我已经成功地设法在相同的情况下显示图像,但在这种情况下我不需要图像,而是一些文本。 已注释掉行以进行测试。尝试使其工作。注释掉的代
我需要在 phpmyadmin 中为 2 个表创建一个触发器。 所以有表 stores 和 tbl_storefinder_stores。 我想从 stores 表中插入 4 个东西(名称、地址、经度
阅读目录 1、触发器 2、触发器类型 3、触发器语法 4、插入数据触发器案例 5、修改数据触发器案例
SQLite 触发器(Trigger) SQLite 的触发器是数据库的回调函数,它会在指定的数据库事件发生时自动执行/调用。以下是关于SQLite的触发器的要点:SQLite **触发器(Trig
请帮我写一个向表中添加新行的触发器。 我的数据库中有 3 个表: 地区(id,名字); id - 主要; 技术人员(身份证、姓名); id - 主要; 可用性(id、区域、技术、计数); id - p
我正在编写一个触发器来审核表中的更新和删除。我正在使用 SQL Server 2008 我的问题是, 有没有办法在不经过删除和插入表的选择阶段的情况下找出对记录采取的操作? 另一个问题是,如果记录被删
我的表: TableA (id number, state number) TableB (id number, tableAId number, state number) TableC (id n
我很少写触发器。我可以帮助设置这件事。 CREATE TRIGGER audit_tableName ON dbo.tableNameAudit AFTER CREATE, UPDATE, DELET
我之前从未在 Oracle 中创建过触发器,所以我正在寻找一些方向。 如果 ID 不在插入语句中,我想创建一个将 ID 增加 1 的触发器。 ID 应该从 10000 开始,当插入一条记录时,下一个
考虑以下两个(假设的)表 温度 * day * time * lake_name * station * temperature_f 温度_总结 * day * lake_name * station
如何在 SQL 触发器中获取更新记录的值 - 如下所示: CREATE TRIGGER TR_UpdateNew ON Users AFTER UPDATE AS BEGIN S
我是 Cassandra 新手,使用 Cassandra 3.10 并有类似的表格 create table db1.table1 (id text, trip_id text, event_time
在 MSSQL 中执行 TRUNCATE(而不是删除)时如何触发触发器 最佳答案 来自msdn : TRUNCATE TABLE cannot activate a trigger because t
我正在尝试在 sql developer 中创建一个简单的触发器,以在工资发生变化时显示工资的变化 CREATE OR REPLACE TRIGGER salary_changes BEFORE DE
我有三个表: Table1: Customers (CustomerId, Name, CustomerAddress) Table2: AccountManagers(ManagerId, Name
在 Sql Server 2005 触发器中有没有办法在执行期间获取触发器附加到的表的名称和架构? 最佳答案 SELECT OBJECT_NAME(parent_id) AS [Table],
使用 MySQL 5.5,以下触发器因错误而被拒绝: create trigger nodups before insert on `category-category` for each row b
我使用 fancybox 打开一个带有表单的弹出窗口。目前,当鼠标离开主页时,弹出窗口就会出现。为了完成这项工作,我有一个隐藏的链接标签,我用trigger()函数模拟它,单击该函数,以便该链接的hr
我的触发器触发 INSERT, UPDATE and DELETE .我需要根据触发触发器的操作从适当的内存表( inserted, deleted )插入。由于只有 inserted位于 INSER
我是一名优秀的程序员,十分优秀!