A. js幻燈片是怎麼實現
1.圖片放置:你需要把所有圖片放入一個div(這里就把它的class叫做pics吧)中,再把pics放入一個更大的div(就命名為container吧)中,然後把container的寬度設為一張圖片的寬度,再給它設置overflow:hidden。然後把pics的寬度設置為所有圖片的總寬度。這樣方便後面從左向右切換。如下圖所示:
2.圖片輪播。基本要領是,當點擊next按鈕的時候,將pics容器的left屬性定義到下一張圖片的位置,從而移動到下一張圖片,例如,假設當前是第二張圖片,那麼點擊按鈕的時候應該把pics的left值設為-640*2 + 'px'(因為我這里用的圖片都是-640px的)(當然這里還要加入一個計數器,當點到最後一張圖片的時候,計數器置0)。
如果你不打算加入平滑移動的動畫,那到這里就可以結束了。但是如果你打算加入動畫,這里就有一個問題:當移動到最後一張圖片的時候,繼續點擊,圖片組會由最後一張長途跋涉回滾到第一張,這樣用戶體驗很不好。理想的狀態應當是,當你滾動到最後一張繼續滾動的時候,應當像之前滾向下一張一樣無縫滾動。不知道我說的清不清楚,大致就是:像手機屏幕一樣,當你滑動到最後一屏的時候接著滑動,會直接滑回一屏,也就是循環滑動。
它的基本原理是,你要在正常的圖片組的最後面加入一張緩沖圖片(src和第一張圖片相同),當幻燈片正處於最後一張圖片的時候,點擊滑動按鈕,平滑滑動到這張緩沖圖片,當用戶下一次點擊的時候,再悄悄地把圖片置換回真正的第一張圖片,然後再執行動畫。由於置換回第一張圖片的時候是立即執行的,所以用戶不會發現圖片已經回到了真正的第一張,這就實現了循環滑動。
B. js如何實現新聞輪播
編寫基本的樣
<div class="slide" id="slide">
<div class="img-div">
<img src="img/banner1.png" title="圖片1"/>
<img src="img/banner2.png" title="圖片2"/>
<img src="img/banner3.png" title="圖片3"/>
</div>
<div class="slide-btn">
<a href="#" class="hover">●</a>
<a href="#">●</a>
<a href="#">●</a>
</div>
</div>
獲取文檔對象
以id獲取文檔對象
$id:function(id){return document.getElementById(id);},
//以標簽名獲取文檔對象
$tag:function(tagName,obj){return (obj ?obj : document).getElementsByTagName(tagName); },
以class獲取文檔對象
$c:function (claN,obj){
var tag = $tag('*'),reg = new RegExp('(^|\\s)'+claN+'(\\s|$)'),arr=[];
for(var i=0;i<tag.length;i++){
if (reg.test(tag[i].className)){
arr.push(tag[i]);
}
}
return arr;
}
添加和移除class
$add:function(obj,claN){
reg = new RegExp('(^|\\s)'+claN+'(\\s|$)');
if (!reg.test(obj.className)){
obj.className += ' '+claN;
}
},
//移除classs
$remve:function(obj,claN){var cla=obj.className,reg="/\\s*"+claN+"\\b/g";obj.className=cla?cla.replace(eval(reg),''):''},
css獲取方法
css:function(obj,attr,value){
if(value){
obj.style[attr] = value;
}else{
return typeof window.getComputedStyle != 'undefined' ? window.getComputedStyle(obj,null)[attr] : obj.currentStyle[attr];
}
},
常用的easing方法
easing ={
linear:function(t,b,c,d){return c*t/d + b;},
swing:function(t,b,c,d) {return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;},
easeIn:function(t,b,c,d){return c*(t/=d)*t*t*t + b;},
easeOut:function(t,b,c,d){return -c*((t=t/d-1)*t*t*t - 1) + b;},
easeInOut:function(t,b,c,d){return ((t/=d/2) < 1)?(c/2*t*t*t*t + b):(-c/2*((t-=2)*t*t*t - 2) + b);}
}
初始化
config:{
index:0,
auto:true,
direct:'left' //滾動方向,left,top,
},
init:function(){
this.slide = this.$id('slide');
this.img_div = this.$c('img-div')[0],
this.slide_btn = this.$tag('a',this.$c('slide-btn')[0]);
this.img_arr = this.$tag('img',this.img_div);
if(this.config.auto) this.play();//是否自動播放
this.hover();//綁定導航懸停切換。即mouseover,mouseout事件
},
動畫效果
animate:function(obj,attr,val){
var d = 1000;//動畫時間一秒完成。
if(obj[attr+'timer']) clearInterval(obj[attr+'timer']);
var start = parseInt(zBase.css(obj,attr));//動畫開始位置
//space = 動畫結束位置-動畫開始位置,即動畫要運動的距離。
var space = val- start,st=(new Date).getTime(),m=space>0? 'ceil':'floor';
obj[attr+'timer'] = setInterval(function(){
var t=(new Date).getTime()-st;//表示運行了多少時間,
if (t < d){//如果運行時間小於動畫時間
zBase.css(obj,attr,Math[m](zBase.easing['easeOut'](t,start,space,d)) +'px');
}else{
clearInterval(obj[attr+'timer']);
zBase.css(obj,attr,top+space+'px');
}
},20);
},
導航切換
hover:function(){
for(var i=0;i<this.slide_btn.length;i++){
this.slide_btn[i].index = i;
this.slide_btn[i].onmouseover = function(){
if(zBase.slide.timer) clearInterval(zBase.slide.timer);
zBase.config.index =this.index;
for(var j=0;j<zBase.slide_btn.length;j++){
zBase.$remve(zBase.slide_btn[j],'hover') ;
}
zBase.$add(zBase.slide_btn[zBase.config.index],'hover');
zBase.animate(zBase.img_div,zBase.config.direct,-zBase.config.index*500);//500是輪播器的大小,當前索引乘以500,再取負,就是輪播器要滾動f到的位置。
}
this.slide_btn[i].onmouseout = function(){
zBase.play();
}
}
},
自動播放
play:function(){
this.slide.timer = setInterval(function(){
zBase.config.index++;
if(zBase.config.index>=zBase.img_arr.length) zBase.config.index=0;
zBase.animate(zBase.img_div,zBase.config.direct,-zBase.config.index*500);
for(var j=0;j<zBase.slide_btn.length;j++){
zBase.$remve(zBase.slide_btn[j],'hover') ;
}
zBase.$add(zBase.slide_btn[zBase.config.index],'hover');
},3000)
},
調用代碼
zBase.init();
C. 用HTML+CSS+JS製作出幻燈片效果
如果是復mac的用戶,會有一個更快的方制式來製作,在AppStore下載iWork中的Keynote,打開ppt或製作ppt後可以導出為HTML文稿,所有特效所有細節全部保留,如果需要可以吧PPT發給我,幫你轉換
D. js自動播放幻燈片函數
js自動播放幻燈片函數用法:
1、用setInterval() 每個幾秒給<li></li>;
2、用attr()添加一個class;
3、用if()判斷版li的索引 , 用eq(i)確定;權
4、讀到的索引..用show() 顯示 用級siblings 的img 用 hide()隱藏 。
E. asp調用新聞圖片實現幻燈片效果
首先,你在添加新聞的時候,要記錄新聞圖片。
然後,在頁面輸出的時候,讀出圖片地址。
用JS/JQ/JS+FLASH(網上有很多,可以搜索下載:焦點圖),至於如何拼參數,
不同程序不盡相同,一般下來的程序都有範例,參考一下即可。
F. JS幻燈片,請看代碼!
slideList = ['./images/slide/zc/m1.jpg'];這是一個數組的寫法,
slideList = ['./images/slide/zc/m1.jpg','./images/slide/zc/m1.jpg','./images/slide/zc/m1.jpg'];
多張就加多個路徑,中間版用逗號隔權開
G. 網站常用的一種JS幻燈片代碼問題
這個寫得太復雜了,我發你一個自己寫得
<!doctype html>
<html lang="en">
<head>
<title>圖片切換</title>
<style>
li{
list-style-type:none;
}
#ad{
width:524px;
text-align:center;
}
#ad_screen{
width:524px;
height:190px;
float:left;
}
.ad_page{
float:left;
margin-top:-30px;
margin-left:210px;
}
.ad_page li{
float:left;
background-color:#999;
width:20px;
height:20px;
margin-left:3px;
}
.ad_page li a{
color:#fff;
}
</style>
<script>
function changead(num,refre)
{
if(num == 5)
num = 1;
var sc = document.getElementById("screens");
sc.src="images/ad-0" + num+ ".jpg";
}
</script>
</head>
<body>
<div class="middle">
<div id="ad">
<div id="ad_screen">
<img id="screens" src="images/ad-01.jpg" width="524" height="190">
</div>
<ul class="ad_page">
<li><a href="#" id="p1" onclick="changead(1);">1</a></li>
<li><a href="#" id="p2" onclick="changead(2);">2</a></li>
<li><a href="#" id="p3" onclick="changead(3);">3</a></li>
<li><a href="#" id="p4" onclick="changead(4);">4</a></li>
</ul>
</div>
</div>
</body>
</html>
<style>裡面是樣式,圖片路徑因為我的圖片是連續的1,2,3,4,所以就可以直接這樣寫方法
H. 用js製作個最為簡單的幻燈片思路,初學者,步驟加代碼,詳細點,謝謝
div+css你至少得會吧?來
首先定義一個源輪播器大盒子。設置overflow為hidden。設置其寬度,高度、position設置為相對
再在裡面套一個圖片盒子,裡面加多個img標簽。float設置為left。每張照片的大小就是輪播器的大小。那麼在輪播器范圍內的img'就會顯示出來。其他的img就因為上面設置的overflow屬性而被隱藏了。position設置為絕對定位。
js代碼方面你在窗口window.onload=function(){
寫上一個定時器
設置定時器執行的方法,就是每隔多少秒就把圖片盒子里的left屬性設置為輪播器大小的--、基本的就出來了。
其他的代碼bug自己完善。
}
你提問前問題因為更具體點。代碼自己網路,思路給你說了,要是你還要代碼只能說明至少你現在不適合干程序設計。自己不敲代碼,光想網路復制粘貼運行沒多大用
I. javascript 原先有三個幻燈片,現在想增加兩個幻燈片,請問哪裡修改
第一種方法,點擊小「+」號添加。當我們把游標指向小「+」號時,出現「新建下一張幻燈片」。
J. js幻燈片效果但是不顯示幻燈片,是什麼原因啊,如何改代碼,圖片鏈接是正確的,請幫我看看代碼,謝謝啦
在你的css里加來入如下代碼:源
.img {
width: expression(this.width > 130)this.width=120;
height: expression(this.height > 86)this.height=76;
}
//代碼中數字為你要顯示圖片的寬和高
在body的圖片標簽中調用