高分请高手用HTML编写图片流动效果代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高分请高手用HTML编写图片流动效果代码相关的知识,希望对你有一定的参考价值。
我想要在网页中做一个图片流动效果,具体效果点下面这个网页看看,http://flash.jninfo.net 在前面这个网页的中部就有一个图片流动的效果,具体的html代码怎么编写? 做出来的效果最好宽度在430PX左右,高度就前面网页中的高度差不多就可以,最好告诉我在代码中怎么加图片是张数,图片地址放在那,然后设置整体效果是高和宽.请高手指教.
晕死.忘记说了,图片还要有连接网页啊.怎么弄
imgArr=new Array()
imgArr[0]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://image0.sina.com.cn/images/bizsite/promote/l/lisababy6617.gif border=0></a>"
imgArr[1]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://image0.sina.com.cn/images/bizsite/promote/t/testool4434.gif border=0></a>"
imgArr[2]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://image0.sina.com.cn/images/bizsite/promote/s/sxyuda6549.gif border=0></a>"
imgArr[3]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://image0.sina.com.cn/images/bizsite/promote/q/qeji4041.gif border=0></a>"
imgArr[4]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://image0.sina.com.cn/images/bizsite/promote/i/ieasytraining3984.gif border=0></a>"
imgArr[5]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://image0.sina.com.cn/images/bizsite/promote/t/trainings1442.gif border=0></a>"
imgArr[6]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://image0.sina.com.cn/images/bizsite/promote/r/renhebj002indexasp2486.gif border=0></a>"
imgArr[7]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://image0.sina.com.cn/images/bizsite/promote/e/efeedlink6085.gif border=0></a>"
imgArr[8]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://image0.sina.com.cn/images/bizsite/promote/k/kaixingou5811.gif border=0></a>"
imgArr[9]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://image0.sina.com.cn/images/bizsite/promote/h/9happyindex8htm5912.gif border=0></a>"
imgArr[10]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://image0.sina.com.cn/images/bizsite/promote/c/chinaroom6034.gif border=0></a>"
var moveStep=4 //步长,单位:pixel
var moveRelax=100 //移动时间间隔,单位:ms
ns4=(document.layers)?true:false
var displayImgAmount=4 //视区窗口可显示个数
var divWidth=125 //每块图片占位宽
var divHeight=60 //每块图片占位高
var startDnum=0
var nextDnum=startDnum+displayImgAmount
var timeID
var outHover=false
var startDivClipLeft
var nextDivClipRight
function initDivPlace()
if (ns4)
for (i=0;i<displayImgAmount;i++)
eval("document.divOuter.document.divAds"+i+".left="+divWidth*i)
for (i=displayImgAmount;i<imgArr.length;i++)
eval("document.divOuter.document.divAds"+i+".left="+divWidth*displayImgAmount)
else
for (i=0;i<displayImgAmount;i++)
eval("document.all.divAds"+i+".style.left="+divWidth*i)
for (i=displayImgAmount;i<imgArr.length;i++)
eval("document.all.divAds"+i+".style.left="+divWidth*displayImgAmount)
function mvStart()
timeID=setTimeout(moveLeftDiv,moveRelax)
function mvStop()
clearTimeout(timeID)
function moveLeftDiv()
if (ns4)
for (i=0;i<=displayImgAmount;i++)
eval("document.divOuter.document.divAds"+parseInt((startDnum+i)%imgArr.length)+".left=document.divOuter.document.divAds"+parseInt((startDnum+i)%imgArr.length)+".left-moveStep")
startDivClipLeft=parseInt(eval("document.divOuter.document.divAds"+startDnum+".clip.left"))
nextDivClipRight=parseInt(eval("document.divOuter.document.divAds"+nextDnum+".clip.right"))
if (startDivClipLeft+moveStep>divWidth)
eval("document.divOuter.document.divAds"+nextDnum+".clip.right="+divWidth)
eval("document.divOuter.document.divAds"+startDnum+".left="+divWidth*displayImgAmount)
eval("document.divOuter.document.divAds"+parseInt((nextDnum+1)%imgArr.length)+".left=document.divOuter.document.divAds"+nextDnum+".left+"+divWidth)
eval("document.divOuter.document.divAds"+parseInt((nextDnum+1)%imgArr.length)+".clip.left=0")
startDnum=(++startDnum)%imgArr.length
nextDnum=(startDnum+displayImgAmount)%imgArr.length
startDivClipLeft=moveStep-(divWidth-startDivClipLeft)
nextDivClipRight=moveStep-(divWidth-nextDivClipRight)
else
eval("document.divOuter.document.divAds"+nextDnum+".clip.left=0")
startDivClipLeft+=moveStep
nextDivClipRight+=moveStep
eval("document.divOuter.document.divAds"+startDnum+".clip.left="+startDivClipLeft)
eval("document.divOuter.document.divAds"+nextDnum+".clip.right="+nextDivClipRight)
else
for (i=0;i<=displayImgAmount;i++)
eval("document.all.divAds"+parseInt((startDnum+i)%imgArr.length)+".style.left=document.all.divAds"+parseInt((startDnum+i)%imgArr.length)+".style.pixelLeft-moveStep")
startDivClipLeft=parseInt(eval("document.all.divAds"+startDnum+".currentStyle.clipLeft"))
nextDivClipRight=parseInt(eval("document.all.divAds"+nextDnum+".currentStyle.clipRight"))
if (startDivClipLeft+moveStep>divWidth)
eval("document.all.divAds"+nextDnum+".style.clip='rect(0,"+divWidth+","+divHeight+",0"+")'")
eval("document.all.divAds"+startDnum+".style.left="+divWidth*displayImgAmount)
eval("document.all.divAds"+parseInt((nextDnum+1)%imgArr.length)+".style.left=document.all.divAds"+nextDnum+".style.pixelLeft+"+divWidth)
startDnum=(++startDnum)%imgArr.length
nextDnum=(startDnum+displayImgAmount)%imgArr.length
startDivClipLeft=moveStep-(divWidth-startDivClipLeft)
nextDivClipRight=moveStep-(divWidth-nextDivClipRight)
else
startDivClipLeft+=moveStep
nextDivClipRight+=moveStep
eval("document.all.divAds"+startDnum+".style.clip='rect(0,"+divWidth+","+divHeight+","+startDivClipLeft+")'")
eval("document.all.divAds"+nextDnum+".style.clip='rect(0,"+nextDivClipRight+","+divHeight+",0)'")
if (outHover)
mvStop()
else
mvStart()
function writeDivs()
if (ns4)
document.write("<ilayer name=divOuter width=750 height="+divHeight+">")
for (i=0;i<imgArr.length;i++)
document.write("<layer name=divAds"+i+">")
document.write(imgArr[i]+" ")
document.write("</layer>")
document.write("</ilayer>")
document.close()
for (i=displayImgAmount;i<imgArr.length;i++)
eval("document.divOuter.document.divAds"+i+".clip.right=0")
else
document.write("<div id=divOuter style='position:relative' width=750 height="+divHeight+">")
for (i=0;i<imgArr.length;i++)
document.write("<div id=divAds"+i+" style='position:absolute;clip:rect(0,"+divWidth+","+divHeight+",0)'>")
document.write(imgArr[i]+" ")
document.write("</div>")
document.write("</div>")
for (i=displayImgAmount;i<imgArr.length;i++)
eval("document.all.divAds"+i+".style.clip='rect(0,0,"+divHeight+",0)'")
</script>
<BODY onload=javascript:mvStart()>
<SCRIPT language=JavaScript>writeDivs();initDivPlace();</SCRIPT>
参考资料:http://bbs.51js.com/viewthread.php?tid=945
参考技术A 厉害啊怎么刷色弱测试高分(我可能是有病才会写这个)
文章目录
色弱测试链接
https://xingye.me/game/colortest/index.html色弱测试链接
代码刷高分
鼠标点击法
色弱测试即是n*n的方块里面有一个方块和其他的方块颜色不同,我们找出这个方块并点击,就会跳到下张图片并获得1分。
我首先想到的是利用鼠标依次点击每个方块,只要鼠标点击的够快,我们就能快速得分。
方块的总体区域没有变化,一开始是4*4,最后会变成9*9,那我们直接设计81个点击区域,让鼠标依次点击即可。
效果演示
色弱测试click
运行代码前需要先获取第一个方块和最后一个方块的位置,然后生成81个方块的位置。
然而鼠标点击和移动的速度是有限制的,不可能一瞬间点击81个地方,因此这种方法虽然有效,但只能刷到60分左右
selenium识别元素法
既然鼠标点击速度有限制,我们不妨直接获取方块的颜色,选中所需的方块直接点击就行了。我们直接使用python的selenium模块获取元素的属性(右键元素,点击检查,既可以看到相应元素)。
可以看到方块的style属性即包含了元素的RGB值。
右键copy xpath,再利用下面这行代码即可以得到元素的style属性
(不会用selenium的建议搜一下怎么配置和使用,我这里用的是selenium2.x,不同版本代码有差异)
xpath = '//*[@id="box"]/span[1]'
color = driver.find_element_by_xpath(xpath).get_attribute("style")
然后既是依次获取每个方块的颜色,找到颜色不同的方块直接点击就行,这样每张图片相当于识别n次(n>=3,因为至少要识别三个方块才能判断哪个方块是应该点击的),点击1次
效果演示
chrome_click
识别元素和网站反应都需要时间,所以分数也是有上限的,经过我测试,能过达到130+
相关代码
position.py,用来确定第一个方块和最后一个方块的位置,得到位置后在click.py代码中修改
import os, time
import pyautogui as pag
while 1:
try:
print("Press Ctrl-C to end")
x, y = pag.position() # 返回鼠标的坐标
posStr = "Position(x,y):" + str(x).rjust(4) + ',' + str(y).rjust(4)
print(posStr) # 打印坐标
pix = pag.screenshot().getpixel((x, y))
print(pix)
time.sleep(0.5)
except Exception as e:
print('end....%s' % e)
finally:
pass
click.py,依次点击81个方块的位置(注意修改xs和ys,需要用positipn.py获取位置)
import pyautogui
import time
import sys
def make(start, end, nums):
interval = (end - start) / (nums - 1)
ans = [int(start + interval * i) for i in range(nums)]
return ans
print("屏幕分辨率:", pyautogui.size())
print("鼠标位置:", pyautogui.position())
pyautogui.PAUSE = 0.0001 # 设置每次执行暂停时间
xs = make(860, 1305, 9)
ys = make(267, 707, 9)
xs = xs[::2]+xs[1::2]
ys = ys[::2]+ys[1::2]
start = time.time()
# time.sleep(1)
num = 0
num_seconds = 0.0001 # 将鼠标移动到指定坐标的间隔时间
while 1:
for x in xs:
for y in ys:
pyautogui.moveTo(x, y) # 把鼠标移动到(500,500)
pyautogui.click() # 在原地按鼠标左键
if time.time() - start > 61:
sys.exit()
chrome_rgb.py,识别颜色并点击方块的代码,需要配置selenium和chrome驱动
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait # WebDriverWait 库,负责循环等待
from selenium.webdriver.support import expected_conditions as EC # expected_conditions 类,负责条件出发
import time
driver = webdriver.Chrome()
driver.get('https://xingye.me/game/colortest/index.html')
# element = WebDriverWait(driver, 5, 0.5).until(EC.presence_of_element_located((By.XPATH, '//*[@id="index"]/div[2]/button')))
driver.find_element_by_xpath('//*[@id="index"]/div[2]/button').click()
start = time.time()
all = 0
while True:
try:
index = [1]
nums = [1]
colors = [driver.find_element_by_xpath('//*[@id="box"]/span[1]').get_attribute("style")]
for j in range(2, 82):
xpath = '//*[@id="box"]/span[%d]' % j
color = driver.find_element_by_xpath(xpath).get_attribute("style")
if color not in colors:
colors.append(color)
nums.append(1)
index.append(j)
else:
if color == colors[0]:
nums[0] += 1
else:
nums[1] += 1
if len(nums) == 2:
if nums[0] == 1 and nums[1] == 1:
continue
else:
all += 1
if nums[0] == 1:
xpath = '//*[@id="box"]/span[%d]' % index[0]
driver.find_element_by_xpath(xpath).click()
else:
xpath = '//*[@id="box"]/span[%d]' % index[1]
driver.find_element_by_xpath(xpath).click()
break
finally:
if time.time() - start > 61:
print(all)
break
else:
continue
以上是关于高分请高手用HTML编写图片流动效果代码的主要内容,如果未能解决你的问题,请参考以下文章
250分最高分,请高手解答VB6程序读取网页文本及其链接的方法