一款基于js的幻灯图片代码
2007-03-19 16:26
483 查看
一款基于js的幻灯图片代码for3.1正式版[已经编辑完整,可使用]
请注意,第一帖是代码部分,第二帖是css样式部分。
布局构成是div+css控制样式,所以一定不要忘了把css部分也复制到你的css文件里。
新接触dedecms,对标签不太熟悉,不知道我使用att=3这样对不对,反正我在本地测试时,显示的是正确的,只是有个问题,就是dede所生成的缩略图,并没有按照标签上规定的大小生成,不知道是我的系统环境不对,还是怎么。
使用js的幻灯效果,好处在于被抓页面缩略图时,flash会显示成空白,而这个效果会正常显示图片,还有在多浏览器下兼容性也好,falsh虽然漂亮,却只能在IE下使用了,其他浏览器因为对播放器版本支持不同,会有不显示而导致页面布局变形的问题。
我本人并没有使用dedecms建站,所以目前想看演示,可以看我现在的站http://www.25525.com
幻灯效果是一样的,系统不是dedecms,我学习dedecms只是想研究一下,将来做其他站时想用它,现在看对标签的拆解支持还是很好的,只是官方都不使用div+css布局,让我有点迷惑,理论上标签如果可以拆解开来,应该能使用标准布局的,使用表格布局让我有点不敢恭维。
想修改样式,要修改css部分,已经是标准布局了,建议使用的朋友不要再改为table布局
CODE:
<div id="fshow" class="sysBd">
<div id="f_div">
<!--图片区域-->
<div id="f_imgDiv"></div>
<div id="f_infoDiv">
<!--数字按钮区域-->
<div id="f_buttonDiv"></div>
</div>
</div>
<!--焦点文字区域-->
<div id="f_text" class="f12b"></div>
<script>
//可修改区域
var imgWidth=410;
var imgHeight=200;
var _timeOut_=5000;
var show_text = true; //是否显示焦点文字
var timeOut=_timeOut_;
var timeOut2=_timeOut_/2;//onmouseout img后需要切换的时间
var now=0; //第一张图
var target="_blank"; //打开方式
var button_on ='on'; //当前焦点对应按钮的样式名
var button_off ='';//非当前焦点对应按钮的样式名
//不可修改区域
var imgUrl = new Array();
var imgText = new Array();
var imgLink = new Array();
var imgAlt= new Array();
//var menuList = new Array();//菜单menu
var ver=2; //兼容浏览器版本 默认2 为非ie
var firstTime=true;
var n =-1;
{dede:arclist type='image' typeid=0 row='3' att=3}
imgUrl[++n]='[field:picname/]';
imgText
='<a href="[field:arcurl/]" target="_blank" class=linkblack>[field:title/]</a>';
imgLink
='[field:arcurl/]';
imgAlt
='[field:title/]';
{/dede:arclist}
var count=0;
for (i=0;i<imgUrl.length;i++) {
if( (imgUrl[i]!="") && (imgText[i]!="")&& (imgLink[i]!="")&& (imgAlt[i]!="")) {
count++;
} else {
break;
}
}
function p$(string){
document.write(string);
}
function $(id){
return document.getElementById(id);
}
//固定图片size
p$("<style> #f_img { width:"+imgWidth+"px;height:"+imgHeight+"px;</style>");
function change(){
if (ver==1){
with($('f_img').filters[0]){
Transition=1;
apply();
play();
}
}
if (firstTime){ firstTime=false;timeOut=_timeOut_/1000;}
else{
$('f_img').src=imgUrl[now];
$('f_img').alt=imgAlt[now];
$('f_imgLink').href=imgLink[now];
if (show_text) $('f_text').innerHTML=imgText[now];
for (var i=0;i<count;i++) {
$('b'+i).className="button";
//$('f_menu'+i).className="";
}
$('b'+now).className="on";
//$('f_menu'+now).className="on";
now=(now>=imgUrl.length-1)?0:now+1;
timeOut=_timeOut_;
}
theTimer=setTimeout("change()", timeOut);
}
function b_change(num){
window.clearInterval(theTimer);
now=num;
firstTime=false;
change();
}
//draw 渐变line (即css:f_line)
function draw_line(){
var div = document.createElement("div");
div.id = 'f_line';
$('f_infoDiv').insertBefore(div,$('f_infoDiv').childNodes.item(0));
}
//表现层 start
//图片
var a = document.createElement("a");
a.id="f_imgLink";
a.target=target;
a.href=imgLink[now];
$('f_imgDiv').appendChild(a);
var img = document.createElement("img");
img.id="f_img";
img.width=imgWidth;
img.height=imgHeight;
img.src=imgUrl[now];
img.alt=imgAlt[now];
a.appendChild(img);
//数字按钮
for (var i=count-1;i>=0;i--){
var div_bg = document.createElement("div");
div_bg.id = 'div_bg'+i;
div_bg.className='bg';
$('f_buttonDiv').appendChild(div_bg);
var a = document.createElement("a");
a.id = 'b'+i;
a.className = (i==now+1)?"button_on":"button_off";
a.title=imgAlt[i];
a.innerHTML=i+1;
a.href='javascript:b_change('+i+')';
$('div_bg'+i).appendChild(a);
var div= document.createElement("div");
$('f_buttonDiv').appendChild(div);
}
if (show_text) $('f_text').innerHTML = imgText[now];
//表现层 end
$('f_img').onmouseover=function(){window.clearInterval(theTimer);}
$('f_img').onmouseout=function(){theTimer=setTimeout("change()", timeOut2);}
try{ //滤镜版本
new ActiveXObject("DXImageTransform.Microsoft.Fade");
$('f_img').filters[0].play();
ver=1;
draw_line();
}
catch (e){ver=2;}
var theTimer = setTimeout("change()", _timeOut_/1000);
</script>
</div>
#f_menu{width:410px;height:20px; margin:0 auto; overflow:hidden;}
#f_menu a{height:20px; line-height:20px; float:left; margin-right:1px; border-bottom:1px #fff solid; background:#393939; display:block; text-align:center; color:#fff; overflow:hidden;}
#f_menu a:hover{background:#FF8500;}
#f_menu a.on{background:#FF8500;}
#f_div{width:410px; height:200px; margin:0 auto; overflow:hidden;}
#f_adDiv{width:100%; height:25px; overflow:hidden;}
#f_imgDiv{width:100%; height:200px; overflow:hidden;}
#f_img{filter:progid:DXImageTransform.Microsoft.Fade(Overlap=1.00); border:0;}
#f_infoDiv{width:100%;top:-14px !important;top:-14px; position:relative;}
#f_buttonDiv{width:100%; margin-right:1px; height:14px; overflow:hidden; text-align:left;}
#f_line{margin-left:280px; width:130px;height:1px;background:#fff; overflow:hidden;filter:progid:DXImageTransform.Microsoft.Alpha(startX=0, startY=0, finishX=50, finishY=100,style=1,opacity=0,finishOpacity=100)}
#f_buttonDiv div{width:1px;height:14px; background:#fff; float:right;}
#f_buttonDiv .bg{width:14px; height:14px; background:#fff; float:right; filter:Alpha(Opacity=40);}
#f_buttonDiv a{width:14px;height:14px !important;height:14px;float:right; color:#fff;padding-top:2px !important; padding-top:0;font-family:Arial, Helvetica, sans-serif;font-size:10px;text-align:center;display:block;overflow:hidden;text-decoration:none;position:absolute;}
#f_buttonDiv a:link,#f_buttonDiv a:visited,#f_buttonDiv a:active{color:#000;}
#f_buttonDiv a:hover{background:#FF840C;color:#fff;}
#f_buttonDiv a.on:link,#f_buttonDiv a.on:visited,#f_buttonDiv a.on:active,#f_buttonDiv a.on:hover{background:#FF840C;color:#fff;}
#f_buttonDiv a.on:hover{background:#FF6600;}
#f_text{
height:26px;
line-height:26px;
overflow:hidden;
text-align:center;
font-weight: bold;
}
#f_text a:link,#f_text a:visited,#f_text a:active{color:#000;text-decoration: none;}
#f_text a:hover{color:#FF6600;text-decoration: none;}
http://bbs.dedecms.com/read.php?tid=10021&keyword=%BB%C3%B5%C6
请注意,第一帖是代码部分,第二帖是css样式部分。
布局构成是div+css控制样式,所以一定不要忘了把css部分也复制到你的css文件里。
新接触dedecms,对标签不太熟悉,不知道我使用att=3这样对不对,反正我在本地测试时,显示的是正确的,只是有个问题,就是dede所生成的缩略图,并没有按照标签上规定的大小生成,不知道是我的系统环境不对,还是怎么。
使用js的幻灯效果,好处在于被抓页面缩略图时,flash会显示成空白,而这个效果会正常显示图片,还有在多浏览器下兼容性也好,falsh虽然漂亮,却只能在IE下使用了,其他浏览器因为对播放器版本支持不同,会有不显示而导致页面布局变形的问题。
我本人并没有使用dedecms建站,所以目前想看演示,可以看我现在的站http://www.25525.com
幻灯效果是一样的,系统不是dedecms,我学习dedecms只是想研究一下,将来做其他站时想用它,现在看对标签的拆解支持还是很好的,只是官方都不使用div+css布局,让我有点迷惑,理论上标签如果可以拆解开来,应该能使用标准布局的,使用表格布局让我有点不敢恭维。
想修改样式,要修改css部分,已经是标准布局了,建议使用的朋友不要再改为table布局
CODE:
<div id="fshow" class="sysBd">
<div id="f_div">
<!--图片区域-->
<div id="f_imgDiv"></div>
<div id="f_infoDiv">
<!--数字按钮区域-->
<div id="f_buttonDiv"></div>
</div>
</div>
<!--焦点文字区域-->
<div id="f_text" class="f12b"></div>
<script>
//可修改区域
var imgWidth=410;
var imgHeight=200;
var _timeOut_=5000;
var show_text = true; //是否显示焦点文字
var timeOut=_timeOut_;
var timeOut2=_timeOut_/2;//onmouseout img后需要切换的时间
var now=0; //第一张图
var target="_blank"; //打开方式
var button_on ='on'; //当前焦点对应按钮的样式名
var button_off ='';//非当前焦点对应按钮的样式名
//不可修改区域
var imgUrl = new Array();
var imgText = new Array();
var imgLink = new Array();
var imgAlt= new Array();
//var menuList = new Array();//菜单menu
var ver=2; //兼容浏览器版本 默认2 为非ie
var firstTime=true;
var n =-1;
{dede:arclist type='image' typeid=0 row='3' att=3}
imgUrl[++n]='[field:picname/]';
imgText
='<a href="[field:arcurl/]" target="_blank" class=linkblack>[field:title/]</a>';
imgLink
='[field:arcurl/]';
imgAlt
='[field:title/]';
{/dede:arclist}
var count=0;
for (i=0;i<imgUrl.length;i++) {
if( (imgUrl[i]!="") && (imgText[i]!="")&& (imgLink[i]!="")&& (imgAlt[i]!="")) {
count++;
} else {
break;
}
}
function p$(string){
document.write(string);
}
function $(id){
return document.getElementById(id);
}
//固定图片size
p$("<style> #f_img { width:"+imgWidth+"px;height:"+imgHeight+"px;</style>");
function change(){
if (ver==1){
with($('f_img').filters[0]){
Transition=1;
apply();
play();
}
}
if (firstTime){ firstTime=false;timeOut=_timeOut_/1000;}
else{
$('f_img').src=imgUrl[now];
$('f_img').alt=imgAlt[now];
$('f_imgLink').href=imgLink[now];
if (show_text) $('f_text').innerHTML=imgText[now];
for (var i=0;i<count;i++) {
$('b'+i).className="button";
//$('f_menu'+i).className="";
}
$('b'+now).className="on";
//$('f_menu'+now).className="on";
now=(now>=imgUrl.length-1)?0:now+1;
timeOut=_timeOut_;
}
theTimer=setTimeout("change()", timeOut);
}
function b_change(num){
window.clearInterval(theTimer);
now=num;
firstTime=false;
change();
}
//draw 渐变line (即css:f_line)
function draw_line(){
var div = document.createElement("div");
div.id = 'f_line';
$('f_infoDiv').insertBefore(div,$('f_infoDiv').childNodes.item(0));
}
//表现层 start
//图片
var a = document.createElement("a");
a.id="f_imgLink";
a.target=target;
a.href=imgLink[now];
$('f_imgDiv').appendChild(a);
var img = document.createElement("img");
img.id="f_img";
img.width=imgWidth;
img.height=imgHeight;
img.src=imgUrl[now];
img.alt=imgAlt[now];
a.appendChild(img);
//数字按钮
for (var i=count-1;i>=0;i--){
var div_bg = document.createElement("div");
div_bg.id = 'div_bg'+i;
div_bg.className='bg';
$('f_buttonDiv').appendChild(div_bg);
var a = document.createElement("a");
a.id = 'b'+i;
a.className = (i==now+1)?"button_on":"button_off";
a.title=imgAlt[i];
a.innerHTML=i+1;
a.href='javascript:b_change('+i+')';
$('div_bg'+i).appendChild(a);
var div= document.createElement("div");
$('f_buttonDiv').appendChild(div);
}
if (show_text) $('f_text').innerHTML = imgText[now];
//表现层 end
$('f_img').onmouseover=function(){window.clearInterval(theTimer);}
$('f_img').onmouseout=function(){theTimer=setTimeout("change()", timeOut2);}
try{ //滤镜版本
new ActiveXObject("DXImageTransform.Microsoft.Fade");
$('f_img').filters[0].play();
ver=1;
draw_line();
}
catch (e){ver=2;}
var theTimer = setTimeout("change()", _timeOut_/1000);
</script>
</div>
#f_menu{width:410px;height:20px; margin:0 auto; overflow:hidden;}
#f_menu a{height:20px; line-height:20px; float:left; margin-right:1px; border-bottom:1px #fff solid; background:#393939; display:block; text-align:center; color:#fff; overflow:hidden;}
#f_menu a:hover{background:#FF8500;}
#f_menu a.on{background:#FF8500;}
#f_div{width:410px; height:200px; margin:0 auto; overflow:hidden;}
#f_adDiv{width:100%; height:25px; overflow:hidden;}
#f_imgDiv{width:100%; height:200px; overflow:hidden;}
#f_img{filter:progid:DXImageTransform.Microsoft.Fade(Overlap=1.00); border:0;}
#f_infoDiv{width:100%;top:-14px !important;top:-14px; position:relative;}
#f_buttonDiv{width:100%; margin-right:1px; height:14px; overflow:hidden; text-align:left;}
#f_line{margin-left:280px; width:130px;height:1px;background:#fff; overflow:hidden;filter:progid:DXImageTransform.Microsoft.Alpha(startX=0, startY=0, finishX=50, finishY=100,style=1,opacity=0,finishOpacity=100)}
#f_buttonDiv div{width:1px;height:14px; background:#fff; float:right;}
#f_buttonDiv .bg{width:14px; height:14px; background:#fff; float:right; filter:Alpha(Opacity=40);}
#f_buttonDiv a{width:14px;height:14px !important;height:14px;float:right; color:#fff;padding-top:2px !important; padding-top:0;font-family:Arial, Helvetica, sans-serif;font-size:10px;text-align:center;display:block;overflow:hidden;text-decoration:none;position:absolute;}
#f_buttonDiv a:link,#f_buttonDiv a:visited,#f_buttonDiv a:active{color:#000;}
#f_buttonDiv a:hover{background:#FF840C;color:#fff;}
#f_buttonDiv a.on:link,#f_buttonDiv a.on:visited,#f_buttonDiv a.on:active,#f_buttonDiv a.on:hover{background:#FF840C;color:#fff;}
#f_buttonDiv a.on:hover{background:#FF6600;}
#f_text{
height:26px;
line-height:26px;
overflow:hidden;
text-align:center;
font-weight: bold;
}
#f_text a:link,#f_text a:visited,#f_text a:active{color:#000;text-decoration: none;}
#f_text a:hover{color:#FF6600;text-decoration: none;}
http://bbs.dedecms.com/read.php?tid=10021&keyword=%BB%C3%B5%C6
相关文章推荐
- 前后轮翻的JS图片幻灯切换代码
- 基于jQuery焦点图片新闻代码(JS+CSS)
- cropper js基于vue的图片裁剪上传功能的实现代码
- JS打造的一款响应鼠标变化很炫的图片特效代码
- jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
- 基于html5背景图片自适应代码是一款背景不随滚动条滚动,会根据分辨率不同自动匹配对应的背景图片
- Js+css实现的一款漂亮宽屏图片切换代码
- 一款JS+CSS实现的无缝平滑图片滚动代码
- 一款基于css3的3D图片翻页切换特效
- 基于mootools 1.3框架下的图片滑动效果代码
- 上下左右连续滚动图片的JS代码
- 牛掰的图片等比缩放js代码
- js实现网页图片延时加载的原理和代码
- 原生JS写的一个书架式的图片缩放滚动展示特效代码
- [置顶] 基于zigbee+arm+nodejs+html环境信息采集代码
- js图片向右一张张滚动效果实例代码
- 刷新网页每次显示不同图片的JS代码
- js实现网页图片延时加载的原理和代码 提高网站打开速度
- js图片翻书效果代码分享
- JS图片切换代码合集