问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

asp中背景图片的切换

发布网友 发布时间:2022-05-17 01:47

我来回答

4个回答

懂视网 时间:2022-05-17 06:08

学习过程中多分析别人的代码实现是个好的习惯,哪怕不是很明白,跟着多敲几遍代码也是很培养感觉的事情。下面是实际的效果(一般我只在firefox中测试):

  

鼠标滑过上面的导航链接时 下面框中图片进行流畅的切换,左右移动的效果

html结构如下:
代码如下:

Web Design


These are the things you should know.





实在是很简单啊。下面我们直接来看js代码,先给出两个辅助函数:
addLoadEvent
代码如下:
function addLoadEvent(func) {
var oldonload = window.onload;
if(typeof window.onload != "function") {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}

这个函数顾名思义就是加载window的onload事件所要处理的方法
insertAfter
代码如下:
function insertAfter(newElement, targetElement) {
var parent = targetElement.parentNode;
if(parent.lastChild == targetElement) {
parent.appendChild(newElement);
} else {
parent.insertBefore(newElement, targetElement.nextSibling);
}
}

在DOM API中有个insertBefore但是没有insertAfter,所以这里自定义一个insertAfter方法,只要清楚appendChild和insertBefore这个函数很好理解,把newElement插入到targetElement之前。
接下来moveElement函数很核心:
moveElement
代码如下:
function moveElement(elementID, final_x, final_y, interval) {
if(!document.getElementById) return false;
if(!document.getElementById(elementID)) return false;
var elem = document.getElementById(elementID);
if(elem.movement) {
clearTimeout(elem.movement);
}
if(!elem.style.left) {
elem.style.left = "0px";
}
if(!elem.style.top) {
elem.style.top = "0px";
}
var xpos = parseInt(elem.style.left);
var ypos = parseInt(elem.style.top);
if(xpos == final_x && ypos == final_y) {
return true;
}
if(xpos < final_x) {
var dist = Math.ceil((final_x - xpos)/10);
xpos = xpos + dist;
}
if(xpos > final_x) {
var dist = Math.ceil((xpos - final_x)/10);
xpos = xpos - dist;
}
if(ypos < final_y) {
var dist = Math.ceil((final_y - ypos)/10);
ypos = ypos + dist;
}
if(ypos > final_y) {
var dist = Math.ceil((ypos - final_y)/10);
ypos = ypos - dist;
}
elem.style.left = xpos + "px";
elem.style.top = ypos + "px";
var repeat = "moveElement( + elementID + ," + final_x + "," + final_y + "," + interval + ")";
elem.movement = setTimeout(repeat, interval);
}

final_x, final_y 分别为元素移动终止的left和top值,所以被移动元素要设置position属性("relative"或是"position"),这样它的left,top属性才会起作用,这个函数也不难,就是取得元素当前的left和top值然后和final_x,final_y做比较,接着对其left和top按照一定的步长改变,每次的步长就是每个if中的dist变量,因为每次dist都会根据被移动元素的最新left,top计算,所以有一种先加速后减速的移动效果,参数interval,和setTimeout配合让moveElement自我调用,直到元素移动到final_x和final_y.
接着是pepareSlideshow函数,动态的创建所需的dom元素:
prepareSlideshow
代码如下:
function prepareSlideshow() {
//确保浏览器能理解DOM API
if(!document.getElementsByTagName) return false;
if(!document.getElementById) return false;
//确保该元素已存在
if(!document.getElementById("linklist")) return false;
var slideshow = document.createElement("div");
/*如果在css中设置这些属性,此处可省
slideshow.style.position = "relative";
slideshow.style.overflow = "hidden";
slideshow.style.width = "100px";
slideshow.style.height = "100px";
*/
slideshow.setAttribute("id", "slideshow");
var preview = document.createElement("img");
/*如果在css中设置,此处可省
preview.style.position = "absolute";
*/
preview.setAttribute("src", "slideshow/topics.gif");
preview.setAttribute("alt", "building blocks of web design");
preview.setAttribute("id", "preview");
slideshow.appendChild(preview);
var list = document.getElementById("linklist");
insertAfter(slideshow, list);
//获得ol中所有的a元素
var links = list.getElementsByTagName("a");
//给每个a的mouseover事件附加上moveElement方法
links[0].onmouseover = function() {
moveElement("preview",-100, 0, 10);
}
links[1].onmouseover = function() {
moveElement("preview",-200, 0, 10);
}
links[2].onmouseover = function() {
moveElement("preview",-300, 0, 10);
}
}

这里也就涉及到一些元素的创建,元素属性的设置等基本的DOM API运用,然后给ol[id="linklist"]中的a元素附加鼠标moveover事件对应的moveElement方法,最后用addLoadEvent(prepareSlideshow)就行了,结合html和效果图看,这个函数也是很好理解的。
代码打包下载 http://www.gxlcms.com/jiaoben/27501.html

热心网友 时间:2022-05-17 03:16

比分我啊 ~把如下代码加入<body>区域中
<center>
<script language="JavaScript1.2">var slideshow_width=140 //SET IMAGE WIDTH
var slideshow_height=225 //SET IMAGE HEIGHT
var pause=3000 //SET PAUSE BETWEEN SLIDE (3000=3 seconds)var fadeimages=new Array()
//SET IMAGE PATHS. Extend or contract array as needed
fadeimages[0]="photo/photo1.jpg"
fadeimages[1]="photo/photo2.jpg"
fadeimages[2]="photo/photo3.jpg"////NO need to edit beyond here/////////////var preloadedimages=new Array()
for (p=0;p<fadeimages.length;p++){
preloadedimages[p]=new Image()
preloadedimages[p].src=fadeimages[p]
}var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1if (ie4||dom)
document.write('<div style="position:relative;width:'+slideshow_width+';height:'+slideshow_height+';overflow:hidden"><div id="canvas0" style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;filter:alpha(opacity=10);-moz-opacity:10"></div><div id="canvas1" style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;filter:alpha(opacity=10);-moz-opacity:10"></div></div>')
else
document.write('<img name="defaultslide" src="'+fadeimages[0]+'">')var curpos=10
var degree=10
var curcanvas="canvas0"
var curimageindex=0
var nextimageindex=1
function fadepic(){
if (curpos<100){
curpos+=10
if (tempobj.filters)
tempobj.filters.alpha.opacity=curpos
else if (tempobj.style.MozOpacity)
tempobj.style.MozOpacity=curpos/100
}
else{
clearInterval(dropslide)
nextcanvas=(curcanvas=="canvas0")? "canvas0" : "canvas1"
tempobj=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas)
tempobj.innerHTML='<img src="'+fadeimages[nextimageindex]+'">'
nextimageindex=(nextimageindex<fadeimages.length-1)? nextimageindex+1 : 0
setTimeout("rotateimage()",pause)
}
}function rotateimage(){
if (ie4||dom){
resetit(curcanvas)
var crossobj=tempobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.style.zIndex++
var temp='setInterval("fadepic()",50)'
dropslide=eval(temp)
curcanvas=(curcanvas=="canvas0")? "canvas1" : "canvas0"
}
else
document.images.defaultslide.src=fadeimages[curimageindex]
curimageindex=(curimageindex<fadeimages.length-1)? curimageindex+1 : 0
}function resetit(what){
curpos=10
var crossobj=ie4? eval("document.all."+what) : document.getElementById(what)
if (crossobj.filters)
crossobj.filters.alpha.opacity=curpos
else if (crossobj.style.MozOpacity)
crossobj.style.MozOpacity=curpos/100
}function startit(){
var crossobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.innerHTML='<img src="'+fadeimages[curimageindex]+'">'
rotateimage()
}if (ie4||dom)
window.onload=startit
else
setInterval("rotateimage()",pause)</script>

热心网友 时间:2022-05-17 04:34

没有讲清楚;不知道你要怎么切换局部背景css中可以切换整体背景asp脚本也可以,一般用Js

热心网友 时间:2022-05-17 06:09

javascript可以:img.src属性就是
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
荣耀MagicVs2怎么使用更省电荣耀MagicVs2使用更省电方法【详解】_百度... 荣耀MagicV2怎么开启应用通知荣耀MagicV2开启应用通知方法【步骤... 面部脂溢性皮炎能根治吗 脸部皮炎能根治吗 清蒸螃蟹蒸多长时间 清蒸螃蟹做法英语介绍过程 关于退档问题。我是湖南文科生,今年分数583,正好压一本线。 ...背上有很多痘痘,用了很多药,也没感觉有什么效果,怎么才可以去掉啊... ...好多年了,还有好多痘印,用了很多药物均没有效果,怎么办哦?_百度知 ... 脸上总是起痘痘,起了几年了,在医院也开过药,也用过祛痘的洗面奶,可是... 2757爱情代表什么意思啊? 2201295代表爱什么意思 2071代表爱情什么意思 NO.2207代表的是什么单位 2207的奋斗 弱电工程要求施工人员持有那些证件上岗? vivox21刚刚丢失了怎么办 iPhone5新换的电池充电很慢怎么办, WIN7家庭中两个电脑局域网共享,怎么都无法设置成功 为什么新的没有漂流瓶 已经过时但是拍照好看的苹果手机 支付宝余额里面有钱花不出去怎么办?本人未满十六岁 人脸识别不了 刷脸认证怎么显示用户未登录 本地的用了好几个辅助解封,还是提示不是同一地区 封了怎么解封,已经不能登录 封了怎么解封,已经不能登录 被封了,解封显示不在同一个区域,这个要怎么搞啊 怎么解封?显示手机号与不在同一个地区?因为当初申请填写的新加坡,现在微信封了,又没绑定 Microsoft Office Excel 2003中,怎样建立目录? office2003的原文件在电脑哪个磁盘啊? 还没开户可以用什么软件学炒股 有没有不用开户就能买卖的股票比如就像彩票合买一样 如何参加成人高考?报名了有复习资料吗?考哪些科目? 三只熊加盟是坑爹货 加盟公司没有特许经营可以退加盟费 智能锁防盗吗?现在智能锁的一个防盗功能怎么样?想买一把民熔的智能锁可以入手吧? 民熔智能锁防盗吗?有人知道的吗?好多人都说智能锁不安全是真的吗?能说下吗? 三菱plc在硬件正常的情况下通讯不上是什么问题? 嘉诚PLC故障 挡风玻璃起雾怎么办? 信用卡结清证明在哪里看 云南农村信用社信用卡怎么开结清证明 固态硬盘便宜又好用 兴业银行信用卡欠款全部还清,结清证明怎么开? 长沙的招商银行信用卡中心可以开逾期证明吗? 2020年8月15日台风叫什么 巴威中心直径多少? 健身之后吃什么可以瘦身 好看都市言情,要he的 最好表太虐。平平淡淡没有太大起伏最好,像《你是我学生又怎样》或《何以笙萧默》 求最近超好看的言情小说